java基础面试题总结

1、String ss1=session.getAttrbute(“log_id”).toString(); 出现异常,空指针,如果没有toString()则会显示null,而不是出现异常
2、int login_id=Integer.parseInt(ss1); 出现java.lang.NumberFormatException:
3、String admin_name=ss1.substring(0,28); 出现java.lang.StringIndexOutOfBoundsException
4、类的内部:非静态的可以操作静态的,静态的不允许操作非静态的。

5、String,Stringbuffer,StringBuild的区别:
String是不可变字符串,后两者是可变字符串。执行速度上来说,String最慢,StringBuild最快。String慢的原因就是:对String的操作就是一个不断创建新的对象并且回收旧的对象的过程。
String是常量,不存在线程安全不安全,StringBuffer是线程安全的,StringBuild是线程不安全的

6、通过源码来看,==和equals()的功能是相同的,都是比较值地址是否相同。不同的是有些类重写了equals()方法,**比如String 和包装类。**所以

		Integer s = new Integer(9);
		Integer t = new Integer(9);
		Long u = new Long(9);

		System.out.println(s==t);  //false
		System.out.println(s.equals(t));  //true
		System.out.println(s.equals(u));  //false
		System.out.println(s.equals(9));  //true
		System.out.println(s.equals(new Integer(9)));  //true
		System.out.println(s==u);  //类型不同,不能比较

7、线性表采用的链式存储时,结点的存储地址连续与否均可
链式存储采用动态存储的方法,其存储的单元不受限制,既可以是连续的存储地址,又可以是不连续的存储地址,但与此同时对于每个数据的节点都需要一个指针域来指向下一个节点,来实现数据逻辑上的连续。
8、java中被声明为静态全局变量的值是否可以改变:可以改变。
9、boolean b=true; Boolean b2=true; System.out.println(b==b2); 结果是true,应该是自动拆装箱的结果。
10、下面会出现编译出错

		int i=0;
		if(i){//必须要是boolean值
			System.out.println("hello");
		}

11、Junit测试类的命名规范:被测试的类+Test,被测试的接口+Test,被测试的业务+Test
Junit测试方法的命名规范:test+具体方法名称(+所用方法),首字母大写

你可能感兴趣的:(习题详解)