总结了一些java基本的一些陷阱

package ray.main;

import java.util.Random;

public class TestU {
	public static void main(String[] args) {
		// Unicode问题
		// \u0022表示16进制unicode的编码(对应unicode的第34个)即"
		System.out.println("a\u0022.length() + \u0022b".length());
		System.out.println("a+b".length());
		System.out.println("a\u0022);
		System.out.println(\u0022b");

		// 正则里面转义字符问题 * . ? + $ ^ [ ] ( ) { } | \ /
		System.out.println(TestU.class.getName().replaceAll(".", "/") + ".class");
		System.out.println(TestU.class.getName().replaceAll("[.]", "/") + ".class");
		System.out.println(TestU.class.getName().replaceAll("\\.", "/") + ".class");
		// case中break问题
		Random random = new Random();
		StringBuffer sbBuffer = null;
		int i = random.nextInt(2);
		System.out.println(i);
		switch (i) {
		case 1:
			sbBuffer = new StringBuffer("R");
			// break; //注意这里break不要忘记写,否则一直会执行default
		case 2:
			sbBuffer = new StringBuffer("G");
		default:
			sbBuffer = new StringBuffer("B");
		}
		sbBuffer.append('a');
		sbBuffer.append('i');
		sbBuffer.append('n');
		System.out.println(sbBuffer);
		// j=j++问题
		// 这个就有意思了,自己跑下,效果意想不到,其实就是JVM的缓存搞的鬼
		/**
		 * temp = j; j = j + 1; j = temp;
		 */
		int j = 0;
		for (int t = 0; t < 100; t++) {
			j = j++;
		}
		System.out.println("j = j++	" + j);

		/**
		 * temp = j; j = j + 1; j = temp;
		 */
		int n = 0;
		for (int t = 0; t < 100; t++) {
			n = ++n;
		}
		System.out.println(" n = ++n	" + n);
		// 值越界问题
		int end = Integer.MAX_VALUE;
		int start = end - 100;
		int count = 0;
/*		for (int t = start; t <= end; t++) {
			count++;
		}
		System.out.println(count);*/
		// try finally问题
		try {
			System.out.println("try ……");
			System.exit(0);
		} finally {
			/*
			 * 在以下4种特殊情况下,finally块不会被执行:
				1)在finally语句块中发生了异常。
				2)在前面的代码中用了System.exit()退出程序。
				3)程序所在的线程死亡。
				4)关闭CPU。(计算机断电、失火、或遭遇病毒攻击)。
			 */
			System.out.println("finally ……");
		}
	}
}


输出结果:

2
3
a
b
//.class
ray/main/TestU.class
ray/main/TestU.class
1
Bain
j = j++	0
 n = ++n	100
try ……


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值