最近才开通的博客~与大家一起分享之前总结的一些学习经验~~~Java陷阱小结
2017-08-17 10:00
911 查看
之前学习一直都是自己做笔记 没有在网上发表任何内容 这次把自己以前学习碰到的值得收藏的内容拿出来与大家一起分享~
1、
求奇数 i%2 ==1 X
i%2 == 0
3、
浮点数相加减
2.2-1.1=0.9 X
双精度浮点小数不是一个确定值
可以使用bogdecimal("2.2").sub......
如果只用于输出 也可以使用pringtf("%.2f",2.2-1.1);
3、
长整形计算
float a=24*60*60*1000*1000;
float b=24*60*60*1000;
a/b=1000? X
在java中进行运算的 时候默认是int 型,溢出后再强转 数值已经变了
正确写法:
float a=24L*60*60*1000*1000;
4、
互换内容
int a=1000;
int b=2000;
y=(x^=(y^=x))^y;
5、
字符串和字符
"h"+"a" = "ha"
'h'+'a' = 201
6、
字符数组
直接打印 就是数组里面的内容 print()默认参数是 char[]
而进行字符串的拼接时 print( ) 参数则为 String
7、
转义字符
\u0022 是双引号的Unicode转义字符
System.out.println("a\u0022.length()
+\u0022b".length());
System.out.println("a".length()
+"b".length());
2
2
8、
打印输出类名
[align=left] System.out.println([/align]
[align=left] MyClass.class.getName().[/align]
replaceAll(".","/")
+
".class");
[align=left] }[/align]
//////////.class
[align=left] System.out.println([/align]
<
4000
div align="left" style="min-height:10pt;"> MyClass.class.getName().
replaceAll(".","/")
+
".class");
[align=left] }[/align]
no8/MyClass.class
9、
随机数的问题
[align=left] StringBufferword=null;[/align]
switch(rnd.nextInt(3))
{
[align=left] case1: word=newStringBuffer("P");break;[/align]
[align=left] case2: word=newStringBuffer("G");break;[/align]
[align=left] default:word=newStringBuffer("M");[/align]
[align=left] }[/align]
[align=left] word.append('a');[/align]
[align=left] word.append('i');[/align]
[align=left] word.append('n');[/align]
System.out.println(word);
注意点:rnd.next(n); 是0-n 但是不取到n
switch 每次case 要break
stringBuffer 里面的参数和传入的值有关 int/string ...
10、
优柔寡断的返回值
publicstaticvoidmain(String[]args)
{
[align=left] System.out.println(decision());[/align]
[align=left] }[/align]
[align=left] [/align]
publicstaticbooleandecision()
{
[align=left] try{[/align]
[align=left] returntrue;[/align]
[align=left] }finally{[/align]
[align=left] returnfalse;[/align]
[align=left] }[/align]
}
返回值:false 尽量避免在try catch 里面有返回
11、
无情的增量操作
intj=
0;
for(i
118f8
nti=
0;i< 100;i++){
j=j++;
//j++ j=++j
[align=left] }[/align]
[align=left] System.out.println(j);[/align]
结果:0 j=j++; j=j ++ 只有自增 没有再次赋值
12、
整数的边界问题
publicstaticfinalintEND=
Integer.MAX_VALUE;
publicstaticfinalintSTART=END-
100;
publicstaticvoidmain(String[]args)
{
intcount=
0;
[align=left] for(inti=START;i<END;i++)[/align]
[align=left] count++;[/align]
[align=left] System.out.println(count);[/align]
[align=left] }[/align]
无限循环 整数有边界 但是类似于一个环 上届和下届“差1”
13、
计数器问题
intminutes=
0;
for(intms=
0;ms< 60*60*1000;ms++)
if(ms%(60*1000)
== 0) //加括号 运算符优先级
[align=left] minutes++;[/align]
[align=left] System.out.println(minutes);[/align]
14、
你好 再见
[align=left] try{[/align]
System.out.println("Hello
world");
[align=left] System.exit(0);[/align]
[align=left] }finally{[/align]
System.out.println("Goodbye
world");
}
finally 不一定会执行 程序中断之后 则不会执行
15、
到底关闭了么?
[align=left] InputStreamin=null;[/align]
[align=left] OutputStreamout=null;[/align]
[align=left] try{[/align]
[align=left] in=newFileInputStream(src);[/align]
[align=left] out=newFileOutputStream(dest);[/align]
[align=left] byte[]buf=newbyte[1024];[/align]
[align=left] intn;[/align]
while((n=in.read(buf))
> 0)
out.write(buf,
0,
n);
[align=left] }finally{[/align]
if(in!=null)in.close();
//in.close 也可能抛异常 也要try
[align=left] if(out!=null)out.close();[/align]
[align=left] } [/align]
1、
求奇数 i%2 ==1 X
i%2 == 0
3、
浮点数相加减
2.2-1.1=0.9 X
双精度浮点小数不是一个确定值
可以使用bogdecimal("2.2").sub......
如果只用于输出 也可以使用pringtf("%.2f",2.2-1.1);
3、
长整形计算
float a=24*60*60*1000*1000;
float b=24*60*60*1000;
a/b=1000? X
在java中进行运算的 时候默认是int 型,溢出后再强转 数值已经变了
正确写法:
float a=24L*60*60*1000*1000;
4、
互换内容
int a=1000;
int b=2000;
y=(x^=(y^=x))^y;
5、
字符串和字符
"h"+"a" = "ha"
'h'+'a' = 201
6、
字符数组
直接打印 就是数组里面的内容 print()默认参数是 char[]
而进行字符串的拼接时 print( ) 参数则为 String
7、
转义字符
\u0022 是双引号的Unicode转义字符
System.out.println("a\u0022.length()
+\u0022b".length());
System.out.println("a".length()
+"b".length());
2
2
8、
打印输出类名
[align=left] System.out.println([/align]
[align=left] MyClass.class.getName().[/align]
replaceAll(".","/")
+
".class");
[align=left] }[/align]
//////////.class
[align=left] System.out.println([/align]
<
4000
div align="left" style="min-height:10pt;"> MyClass.class.getName().
replaceAll(".","/")
+
".class");
[align=left] }[/align]
no8/MyClass.class
9、
随机数的问题
[align=left] StringBufferword=null;[/align]
switch(rnd.nextInt(3))
{
[align=left] case1: word=newStringBuffer("P");break;[/align]
[align=left] case2: word=newStringBuffer("G");break;[/align]
[align=left] default:word=newStringBuffer("M");[/align]
[align=left] }[/align]
[align=left] word.append('a');[/align]
[align=left] word.append('i');[/align]
[align=left] word.append('n');[/align]
System.out.println(word);
注意点:rnd.next(n); 是0-n 但是不取到n
switch 每次case 要break
stringBuffer 里面的参数和传入的值有关 int/string ...
10、
优柔寡断的返回值
publicstaticvoidmain(String[]args)
{
[align=left] System.out.println(decision());[/align]
[align=left] }[/align]
[align=left] [/align]
publicstaticbooleandecision()
{
[align=left] try{[/align]
[align=left] returntrue;[/align]
[align=left] }finally{[/align]
[align=left] returnfalse;[/align]
[align=left] }[/align]
}
返回值:false 尽量避免在try catch 里面有返回
11、
无情的增量操作
intj=
0;
for(i
118f8
nti=
0;i< 100;i++){
j=j++;
//j++ j=++j
[align=left] }[/align]
[align=left] System.out.println(j);[/align]
结果:0 j=j++; j=j ++ 只有自增 没有再次赋值
12、
整数的边界问题
publicstaticfinalintEND=
Integer.MAX_VALUE;
publicstaticfinalintSTART=END-
100;
publicstaticvoidmain(String[]args)
{
intcount=
0;
[align=left] for(inti=START;i<END;i++)[/align]
[align=left] count++;[/align]
[align=left] System.out.println(count);[/align]
[align=left] }[/align]
无限循环 整数有边界 但是类似于一个环 上届和下届“差1”
13、
计数器问题
intminutes=
0;
for(intms=
0;ms< 60*60*1000;ms++)
if(ms%(60*1000)
== 0) //加括号 运算符优先级
[align=left] minutes++;[/align]
[align=left] System.out.println(minutes);[/align]
14、
你好 再见
[align=left] try{[/align]
System.out.println("Hello
world");
[align=left] System.exit(0);[/align]
[align=left] }finally{[/align]
System.out.println("Goodbye
world");
}
finally 不一定会执行 程序中断之后 则不会执行
15、
到底关闭了么?
[align=left] InputStreamin=null;[/align]
[align=left] OutputStreamout=null;[/align]
[align=left] try{[/align]
[align=left] in=newFileInputStream(src);[/align]
[align=left] out=newFileOutputStream(dest);[/align]
[align=left] byte[]buf=newbyte[1024];[/align]
[align=left] intn;[/align]
while((n=in.read(buf))
> 0)
out.write(buf,
0,
n);
[align=left] }finally{[/align]
if(in!=null)in.close();
//in.close 也可能抛异常 也要try
[align=left] if(out!=null)out.close();[/align]
[align=left] } [/align]
相关文章推荐
- 最近本人每天会花5分钟把前5年的工作内容做一个总结,并分享成多篇博客,让大家可以学习,交流。
- 关于java初学的一些笔记总结(收集+总结)与大家分享,关于自学java,有好的建议可以回帖。
- Java学习心得(看到后觉得很好,在博客上分享一下,希望对大家有启发)
- 好东西大家分享: JAVA学习的一些重点
- 新人刚开始学习java总结一下StringBuffer和StringBuilder的区别及一些知识,不对的地方还望大家指出让我早日改正
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 【Java学习】eclipse,javaWeb项目的一些技巧,经验总结,持续更新
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- java学习-【转】【经验总结】NIO常见的陷阱解析
- 以前总结的JAVA学习之路与大家分享
- Hi,欢迎大家来到阿毛小猪的博客,分享自己学习中的经验,默默的前行,聆听心的声音
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 给大家分享一些Java基础学习资料,后续会不断的更新!
- 今天开通了CSDN博客,希望能结识更多的朋友,大家一起学习交流!
- 经过大二一个学期的c语言学习,我从中总结了一些c语言的优缺点心得~分享给大家。
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 关于java初学的一些笔记总结(收集+总结)与大家分享,关于自学java,有好的建议可以回帖。
- 好长时间上不了博客,我还以为因为我发表抗日言论账户被删了,编程中好多新经验新发现不能拿出来和朋友们分享,那个急呀。以下是我在工作中积累的一些经验和解决的一些问题,希望能对大家有一点帮助。
- Eclipse开发工具的一些小知识,Eclipse切换工作空间的办法!(记录下来,希望与大家一起分享,共同学习吧!)