1.用final关键字修饰一个对象时,是指引用变量不能变,而引用变量引用的内容是可以改变的。
2.静态变量和实例变量的区别:
- 实例对象属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
- 静态变量(+static)不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间。
(实例对象必须创建这个对象之后才能通过这个对象使用,静态变量可以直接通过类名来使用)
3.非ststic方法可以调用static方法。(因为非static方法是与对象关联在一起,必须在创建一个对象后,才可以在该对象上对方法进行调用。)
static方法不可以调用非static方法
4.equals
==
5.Integer是引用类型,默认值是null。
int是值类型,默认值是0。
作用域 | 当前类 | 同一包 | 子孙包 | 其它包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
无修饰符 | √ | √ | × | × |
private | √ | × | × | × |
7.重载:同一个类中,方法名称相同,但是参数或者个数不同,与返回值没有关系。
重写:在多个类中,产生继承关系,父类与子类的方法必须相同。
8:接口:关键字interface。抽象类:abstract。
接口中成员不能私有,而抽象类可以。
接口中定义的成员是final,public,static类型,抽象类没有。
接口中不能有普通方法,而抽象类可以。
9:final用于声明属性不可变,方法不可覆盖和类不可继承。(内部类想要访问局部变量,局部变量必须定义为final类型)
finally:异常处理结构的一部分,表示总是执行。
finalize:是object的一个方法,和垃圾回收有关。
10:String字符串常量。
StringBuffer字符串变量(线程安全)
StringBuilder字符串变量(非线程安全)
11:object的直接子类有哪些?
- clone:保护方法,实现对象的浅复制。
- getclass:获得运行时类型。
- tostring
- finalize:用于释放资源。
- equals
12:数组中没有length()这个方法,只有length这个属性。String有length()这个方法。
13:实现Runnable接口好,因为实现了接口还可以继续继承,如果继承了Thread后则不能再继承。
14:sleep()和wait()有什么区别?
sleep()是让当前线程指定休眠时间,然后继续工作。
wait()是让当前线程等待,直到有线程通知notify()时才继续工作。
15:
数组是相同类型的数据按照一定顺序排列的集合。存储区间是连续的,占用内存严重,空间复杂度很大。插入删除方便。
链表是一种物理结构上非连续,非顺序的存储结构,逻辑顺序是按照链表上的指针依次连接的。插入删除不方便。
16,Cookie
HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。
客户端请求服务器,使用response向客 户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,服务器检查该Cookie,以此来辨认用户状态。