1.数组有没有length()方法?String有没有length()方法?
数组没有length()方法,只有length属性。
String有length方法,JavaScript中,获取字符串长度的是通过length属性得到的。
2. 是否可以继承String类?
String类是final类,不可以被继承。
3.String和StringBuilder、StringBuffer的区别
String 字符串常量,不可变。
StringBuffer 字符串变量,可变,线程安全。
StringBuilder 字符串变量,可变,线程不安全。
4.重载(Overload)和重写(Override)的区别
方法的重载和重写都是实现多态的方式,区别在于重载实现的是编译时的多态,重写实现的是运行时的多态。
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同或者参数个数不同,或者都不同)这样的方法则被定义为重载。
重写发生在子类和父类之间,要求子类被重写的方法与父类的方法一致,有相同的返回类型;而且访问比父类更好访问。
5.构造器是否可以被重写
构造器不能被继承,从而不能被重写。但是可以被重载。
6.静态嵌套类和内部类的不同
静态嵌套类是被声明为静态的内部类,它可以不依赖外部类实例化被实例化。
内部类需要在外部实例化后才能被实例化。
7.int和Integer的区别,Integer的缓存范围
Integer是int提供的封装类,而int是java的基本数据类型;
Integer的默认值是null,而int的默认值是0;
声明为Intger的变量需要实例化,而声明为int的变量不需要实例化;
Intger是对象,用一个引用指向这个对象,而int是基本类型,直接储存数值。
8.序列化和反序列化,如何实现序列化,Serializable接口的作用
序列化:把java对象转化成字节序列的过程。
反序列化:把字节序列转换成java对象的过程。
要序列化就实现Serializble接口;
Serializable接口类是可序列化的;
9.创建线程的方式及实现
java中Thread类代表线程,所有线程对象都必须是Thread类或其子类的实例。
线程的实现:
1》继承Thread类创建线程
2》实现Runnable接口创建线程
3》使用Callable和Future创建线程
10. java中JDK8相交与JDK7有哪些新特性
1》jdk8允许我们给接口添加一个非抽象的方法实现,只需要使用default关键字即可
2》静态方法与构造函数的引用
3》反射的加强