java中的一些陷阱

1、判断不是否奇数: 不能i%2==1, 注意负数;应该是 i%2!=0;
2. 2.0-1.1 的值, 因为计算机无法表示double的1.1,
3、
long a = 24*60*60*1000*1000; //微秒
long b = 24*60*60*1000; //毫秒
a/b的值不是1000, 因为24*60*60*1000*1000是int*int*int*int*int,再把int值赋给long的a,但是int值越界。 更正:
long a = 24L*60*60*1000*1000; //微秒
long b = 24L*60*60*1000; //毫秒
计算long时要加L
4、 . 要用的转义字符 \\.
5. 慎用单引号,因为char有可能转为int
6、j=j++; j不会自增
7、注意运算符% *的优先级,实在不清楚就加括号
	public static void main(String[] args) {
		int minutes = 0;
		for(int ms = 0;ms<60*60*1000;ms++) {
			if(ms%60*1000==0) {
				minutes ++;
			}
		}
		System.out.println(minutes);
	}
先计算m%60,再计算*了,可能得不到预期的结果
8、finally不一定会执行,程序退出就不执行finally了(程序退出:system.exit(0))

9、遍历集合用Iterator, 不要用枚举element
10、response.getWriter(), response.getOutputStream()不能同时用

11. super()和this()区别:
this():当前类的无参构造方法, super():父类的无参构造方法。
12. Overload与Override的区别:
Overload是编译时多态,返回值可以相同也可以不相同;
Override是运行时多态, 作用域要大于等于父类
13. final类的特点: 不能再被继承, 里面的方法不能被重写;里面变量都是static
14. 得到Class的三种方法:1. 像 String.getClass(); 2.Class.forName("");3.有些类如Integer有特殊的就去得到
char型中可以保存中文汉字, 因为char型可以保存unicode, unicode包括汉字, 2个字节
15. sleep()和wait()区别: sleep()不会放弃对象锁,时间到了自动醒,接着执行;wait()会放弃对象锁, 要等同一个对象的notify方法才能醒。
16. include两种实现方式区别:
<%include%> 静态包含
<jsp:include ></jsp:indlude> 动态包含
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值