**
记录一些Java笔试,面试时遇到的不太确定的问题:
1,String,StringBuffer,StringBuilder的区别
2,Servlet是单实例还是多实例
3,HashMap<Integer,String>,请写出可能的一种输出结果:
测试发现,就按key的从小到大输出
4,Hibernate中,session的三种对象状态
5,javascript的闭包,js获取表单中<input id="test" type="name"/>,请描述一下怎么取
6,web中也有session,那sessionID是在哪里分配的,关闭浏览器后,session失效,而sessionID也存在客户端的cookie中,
那关闭时,客户端怎知该sessionID失效了呢,(失效期)
7,整型数组,知道最大值为20,请从小到大排列,算法复杂度为1
8,final修饰的变量可以改变值吗
9,对象分配的内存在哪里,堆,栈?
10,截取指定字节数的字符串,例如:“abc深圳”,按gb2312编码,字节数是7,即每个汉字的字节数是2,
如果指定字节数是3,则是abc,如果是5,则是abc深,如果是4,则是abc,而不能是abc+半个汉字
import java.io.UnsupportedEncodingException; public class TestStr{ public static void main(String[] args){ String str="abc深圳"; System.out.println(str.length());//5 try{ System.out.println("abc深圳-ISO8859-1:"+"abc深圳".getBytes("ISO8859-1").length);//5 System.out.println("abc深圳-GB2312:"+"abc深圳".getBytes("GB2312").length);//7 System.out.println("abc深圳-GBK:"+"abc深圳".getBytes("GBK").length);//7 System.out.println("abc深圳-UTF-8:"+"abc深圳".getBytes("UTF-8").length);//9 byte[] bs="abc深圳".getBytes("GB2312"); String[] strs="abc深圳".split(""); //4 int count=0; StringBuilder sb=new StringBuilder(); int objNum=6; for(String temp:strs){ //System.out.print(temp); if(count<=objNum){ if((count+temp.getBytes("GBK").length)<=objNum){ count=count+temp.getBytes("GBK").length; sb.append(temp); }else{ System.out.println("字节数:"+count); System.out.println("截取的字符串:"+sb.toString()); break; } } } //System.out.println("字节数:"+count); //System.out.println("截取的字符串**:"+sb.toString()); }catch(UnsupportedEncodingException e){ System.out.println("出错了"); e.printStackTrace(); } } }
11,Collection与Collections的区别
**