1.基本数据类型(八个):byte,int,char,long,float,double,boolean,short。
1.1.java标识符命名规则:以由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头。
2.int 和 Integer 有什么区别?(boolean,Boolean;long,Long...)
①、Integer 是 int 包装类,int 是八大基本数据类型(byte,char,short,int,long,float,double,boolean)
②、Integer 是类,默认值为null,int是基本数据类型,默认值为0;
③、Integer 表示的是对象,用一个引用指向这个对象,而int是基本数据类型,直接存储数值。
3.String 和StringBuffer的区别?
String:存储字符串,不可以修改字符串
StringBuffer:存储字符串,可以修改字符串,可以使用StringBuffers来动态构造字符数据。
4.运行时异常与编译时异常:
运行时异常:不处理也会编译,结果出现异常。
NullPointerException(空指针异常)
IndexOutOfBoundsException(下标越界异常)
ClassCastException(类转换异常)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
IO操作的BufferOverflowException异常
编译时异常:必须进行处理的异常,如果不处理,程序就不能编译通过。
5.Servlet的生命周期?
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
6.ArrayList(线程不安全),Vector(线程安全), LinkedList(线程不安全)的比较:
ArrayList,Vector:都是基于数组实现的。如果从指定的位置检索一个对象,或在集合的末尾插入、删除一个元素的时间是一样的,时间复杂度都是O(1)。但是如果在其他位置增加或者删除元素花费的时间是O(n)
LinkedList:是基于双向链表实现的(含有头结点)。在插入、删除任何位置的元素所花费的时间都是一样的,时间复杂度都为O(1),但是他在检索一个元素的时间复杂度为O(n)
如果只是查找特定位置的元素或只在集合的末端增加移动元素,那么使用ArrayList或Vector都是一样的,如果是在指定位置的插入、删除元素,最好选择LinkedList。
7.Collection 和 Collections的区别
Collection:是集合类的上级接口,继承与他的接口主要有Set 和List。
Collections:是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
8.&和&&的区别。
&是位运算符,表示按位与运算。
&&是逻辑运算符,表示逻辑与(and),如果第一个表达式为false,则不再计算第二个表达式。
9.HashMap和Hashtable的区别
两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全。Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步。
HashMap可以使用null作为key,而Hashtable则不允许null作为key。
HashMap和Hashtable的底层实现都是数组+链表结构实现。
HashMap的初始容量为16,Hashtable初始容量为11。
HashMap继承了AbstractMap,HashTable继承Dictionary抽象类。
10.final, finally, finalize的区别。
final :用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally:是异常处理语句结构的一部分,表示总是执行。
finalize:是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
11.sleep() 和 wait() 有什么区别?
sleep方法属于Thread类中的静态方法,wait属于Object的成员方法。
最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
wait只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用
sleep()等待一定的时间之后,自动醒来进入到可运行状态,一旦一个对象调用了wait方法,必须要采用notify()和notifyAll()方法唤醒该线程;如果线程拥有某个或某些对象的同步锁,那么在调用了wait()后,这个线程就会释放它持有的所有同步资源,而不限于这个被调用了wait()方法的对象。
12.html和jsp的区别?
HTML:文本标记语言,它是静态页面,不需要指定的编译工具,只需在TXT文档中写上HTML标记就OK。
JSP:Java服务端的页面,所以它是动态的,它是需要经过JDK编译后把内容发给客户端去显示。
1.最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开
2.定义上HTML页面是静态页面可以直接运行,JSP页面是动态页它运行时需要转换成servlet
3.他们的表头不同,这个是JSP的头“ <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表头中有编码格式和导入包等
4.也是很好区分的在jsp中用<%%>就可以写Java代码了,而html没有<%%>