厦门中控
1.java中如何获取数组的长度?
如果是数组的话就是:数组.length属性;
如果是字符串的话就是:字符串.length()方法;
如果是集合的话就是:集合.size()方法
2.int和integer的区别?
如:
int num = Integer.valueOf("12");
int num2 = Integer.parseInt("12");
通过基本数据类型的包装来的valueof和parseXX来实现String转为XX
泛型需要类。
1.int初值为 0 /// integer初值是null
2.int是基本类型,integer是int的包装类:用于数据类型转换
integer i =1;int ii = 1,两者会相等,因为会把integer自动拆箱为int,再去比较
如果两个都是新new出来的则不会相等。
3.string 和stringbuffer区别:
简单地说,就是一个变量和常量的关系。
StringBuffer对象的内容可以修改;适合经常插入 删除 修改的;StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。
String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。所以可以用来共享,
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.append(true);
http://blog.csdn.net/lclai/article/details/6141548
4.try有return的时候,finally还会执行吗?
finally不管有没有出现异常都会执行。
如关闭文件流,socket流等操作,finally会在return之前执行。
5. 3>>2 =0
换成2进制,取反加1
6.16进制换10进制:
16的一次方+16的二次方+16的三次方
10进制换16进制:
除以16取余数
商除以16取余数
倒着上
7.有一个5L的勺,一个6L的勺,弄出一个3L
A:5L
B:6L
(1)5L的装满,全倒向6L中;此时B中有5L水(空1L).
(2)5L的再装满,再倒向6L中,此时只能倒入1L;此时A剩有4L水.
(3)把B中的的水全倒掉,把A中的4L倒入B中;此时B中有4L水(空2L),A为空.
(4)把A装满,倒向B,只能倒入2L,A中还剩3L.
map的实现类是hashmap
8. arraylist和linklist的区别?
arraylist是采用数组形式来保存对象的,这种方式使对象放在连续的位置上,插入删除时麻烦
linklist把对象存放在独立的空间里面,并且每个空间中还保存下一个链接的索引 查找麻烦,从第一个索引开始查找
9.封装 继承 多态?
封装:
把一些功能包装集成起来,隐藏内部实现机制,可以在不影响使用的情况下改变类的内部结构
同时也保护了数据,暴露给外界的只有它的访问方法。
好处:具体实现改变不用调整用户级别的代码
继承:
儿子继承父亲的特性
好处:能够复用代码,继承他是利用已经存在的类创建新的类,在新创建的类已经包含了 非private的成员 和 方法,并且还可以添加 新的属性和方法。
如果一个父类默认没有 构造函数,则子类在继承的时候要默认用 super来显示调用父类的构造函数 ,向上转型
多态:
分为重写/重载
重写:子类去重新写父类的方法
重载:一个类里的一个方法去表示他的多种形态
好处:只有在程序运行调用方法时才确定具体的类,可以不用修改源程序就可以修改改变程序运行的代码。
六、打印星星
int size = 5; for(int i = 0; i < size; i++){ for(int x = 1; x <= size - i; x++){ System.out.print(" "); } for(int j = 1; j <= i*2+1; j++){ System.out.print("*"); } System.out.println(); }
int size = 5;
for(int i = 0; i < size; i++){
for(int x = 1; x <= size - i; x++){
System.out.print(" ");
}
for(int j = 1; j <= i*2+1; j++){
System.out.print("*");
}
System.out.println();
}
面试:
1.SSH的了解,介绍一下SSH
2.Servlet的生命周期
加载-->实例化-->服务-->销毁
加载:加载一般是在运行tomcat容器时来完成,将servlet类加载到tomcat中,或者是客户端发来请求时也可以。
实例化:一般是即读取配置信息、读取初始化参数等,这些基本上在整个生命周期中只需要执行一次。关于init()方法已经在积累GenericServlet中提供缺省实现,如果不需特殊处理则没有必要再进行定义,否则要重写。
服务一般是当容器接收到客户端请求时,Servlet引擎将创建一个ServletRequest请求对象和一个ServletResponse响应对象,然后把这两个对象作为参数传递给对应Servlet对象的service方法。(该方法是一个重点实现的方法,ServletRequest对象可以获得客户端发出请求的相关信息,如请求参数等,ServletResponse对象可以使得Servlet建立响应头和状态代码,并可以写入响应内容返回给客户端。在此说明一点,当Servlet中有doGet()或者doPost()方法时,那么service方法就可以省略,默认为调用这两个方法)
销毁:销毁一般是Servlet的卸载是由容器本身定义和实现,在卸载Servlet之前需要调用destroy()方法,以让Servlet自行释放占用的系统资源。虽然Java虚拟机提供了垃圾自动回收处理机制,但是有一部分资源却是该机制不能处理或延迟很久才能处理的,如关闭文件,释放数据库连接等。一般tomcat关闭,servlet就会被销毁,如果想提前销毁,可以写一个监听
3.servlet的方法
http://blog.csdn.net/besttaling/article/details/4734030
4.doget和dopost的方法区别?
1.所传文件大小不一样
doGet方法:通过get方式提交的数据有大小的限制,通常在1024字节左右。
dopoat方法:post方式没有数据大小的限制,理论上传送多少数据都可以。
2.传值方式不一样
doget方法:url以key value带在url后面传值
dopost方法:表单提交方式
如果不指定method属性,则会默认该属性为”get”方式。
dopost处理表单带过来的值
(3)doGet()方法
当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。
(4)doPost()方法
当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。
5.四大作用域分别在什么时候使用?(作用域就是信息共享的范围)
PageContext:最小,在当前 页面(jsp)中有效,跳到其他页面就失效了。
request:一次请求范围内有效
session:浏览器进程,只要当前页面没有被关闭,都是有效的,默认30min
application:服务器,只要服务器没有重启,或被强制清楚,数据就有效