1、Java中有没有多继承?
java中没有多继承,但是可以多实现,即一个类实现多个接口。
虽然没有多继承,但是java中接口可以近似的实现多继承,那就是接口;接口和接口之间可以进行多继承。
2、抽象类和接口的区别?
a.抽象类继承与object接口不继承object.
b.抽象类有构造器,接口中没有构造器。
c.抽象类中可以有普通成员变量和常量,接口中只能有常量,而且只能是
public static final 不写默认。
d.抽象类中可以有抽象方法,也可以由普通的方法,接口中只能有抽象的方法而且修饰符只能是public abstract 不写默认。
e.抽象类中可以有final的方法,接口中不能有final的方法。
f.抽象类只能是单继承,多实现,接口是可以多继承其他接口,但是不能实现接口,和不能继承其他类。
g.抽象类中可以有静态的方法,接口中不可以。
3、int和integer的区别?
int是java的基本数据类型,integer是1.4版本后提供的基本类型包装类,当两者作为成员变量时,初始值分别为;int是0;integer是null;其中integer提供了一些对整数操作的方法,还定义了integer型数值的最值,其他基本类型也有对应的包装类,基本类型包装类的出现,使得java完全面向对象。
4、String、StringBuffer与StringBuilder的相同点与区别--线程安全性体现
StringBuffer与StringBuilder相同点是它们都是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String每次操作会创建一些新的对象,所以速度快些。
不同点是StringBuilder是线程非安全的,StringBuffer是线程安全的, 当我们在字符串缓冲区被多个线程使用时,JVM不能保证StringBuilder的操作是安全的,虽然它的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下我们是在单线程下进行的操作,所以大多数情况下建议使用StringBuilder而不用StringBuffer的,就是速度的原因。对于三者使用的总结:
1.如果要操作少量的数据使用 String.
2.单线程操作字符串缓冲区,操作大量数据使用StringBuilder.
3.多线程操作字符串缓冲区,操作大量数据使用 StringBuffer.
特别注意:
StringBuffer是可变的,对StringBuffer中的内容修改都是当前这个对象。
String重写了equals和hashCode方法,StringBuffer没有重写equals方法。
String是final的类,StringBuffer不是。
String创建的字符串是在常量池中,创建的变量初始化一次,如果对该字符串修改,产生新的字符串地址值。
StringBuffeer是在堆中创建对象,当对该字符串修改时不产生新字符串地址值。频繁修改,建议StringBuffer
当不考虑并发问题时就用StringBuilder.
5、String s=new String(“xyz”);创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象。
以上就是潍坊培训学校给大家做的内容详解,更多关于编程课程的学习,请继续关注潍坊培训学校。