有些面试题各大网站都有,以下是我面试以来见到比较多的面试题.
什么是值传递,什么是引用传递?
值传递:是将对象的值作为形参参与方法,执行完方法后不改变原来值.
引用传递:也成为地址传递,方法执行时会修改内存中的实际参数,方法结束后值发生改变
能否再static环境中访问非static资源
不能,因为静态的资源属于类,随着类的加载而加载到内存区中,当类加载时,此时不一定有实例创建,没有实例就不能访问非静态资源
String,StringBuilder,StringBuffer
String是长度不可变字符串,当定义了一个String以后后续对该对象进行修改时,原来的对象不会消失,而是产生了一个新的对象,赋给了原来变量
StringBuilder,StringBuffer则是长度可变字符串,再修改时,只是再原值上进行修改
在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的
保存对象最好用哪个流
ObjectInputStream
对象必须实现Serializable接口
重写与重载的区别
重写与重载的方法名都必须相同,不同的是,重载的形参个数与类型不能与原方法一致,重载与否与返回值类型无关
方法重写形参必须与原来方法一致,返回值也必须一致
类加载的过程
1首先加载创建对象的直接与间接父类
2在类被加载时候,会将静态成员进行加载主要包括静态成员变量的初始化以及静态代码块
3在需要的类加载好以后加载非静态成员变量,非静态代码块
4执行构造器,构造器执行后生成对象
类的加载顺序
* 1.首先加载父类的静态代码块
* 2.在加载子类的静态代码块
* 3.加载父类的初始化代码块
* 4.加载父类的构造方法
* 5.加载子类的初始化代码块
* 6.加载子类的构造方法
* 7.调用子类的方法