黄小华的个人网站
熬过无人问津的日子才有诗和远方!
Java重点知识理解

1.&(按位与)和&&(逻辑与)的区别?

&&具有短路功能,当第一个表达式为false,则不执行第二个表达式。
&可以当位运算符,例如一个整数与15做&操作,可以获得该整数最后4个人bit位。

2.Integer 与 int 的区别?

int是Java提供的8种原始数据类型之一,Java为每个原始类型提供了封装类,Integer为的就是以对象的形式去更好地操作int类型的变量。Integer默认为null,int默认为0。

3.String是基本类型吗?

Java的基本类型有byte,short,int,long,char,float,double,boolean。
String类型是final修饰的类,不能被继承,不能被修改。

4.面向对象的特征

抽象:指将一类对象的共同特征总结出来构建类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,不关注这些行为的细节。
继承:指从已有类得到继承信息创建类的过程。 封装:指把数据和操作的方法绑定起来,对数据的访问只能通过已定义的接口。例如:Integer封装了整数int,ArrayList封装了数组Object[]。封装隐藏了实现的内部细节,你只需通过简单的接口调用就能实现你想要的功能(如调用contains方法就能知道数组里是否有要找的对象)
多态:简单讲就是父类型的引用指向子类型的对象。能通过改变引用指向不同的对象从而去实现该对象的方法,而无需去改变已有的代码,提高了代码的可维护性,可扩展性,(如 List list=new ArrrayList; list.add(); list即可以指向ArrayList的对象也可以指向LinkedList对象,方法也不用改)多态分为运行时多态和编译时多态。编译时多态指对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个,则称为编译时多态性。运行时多态是面向对象最精髓的地方。上述例子就是一个运行时多态

5.抽象类与接口的区别

1.抽象类和接口都不能直接实例化,子类继承它们要实现所有抽象方法
2.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
3.抽象类里可以没有抽象方法。
4.接口可以被类多实现(被其他接口多继承),抽象类只能被子类单继承。
5.接口中没有 this 指针,没有构造函数,不能拥有实例字段(实例变量)或实例方法。

6.StringBuilder和StringBuffer的区别

方法完全相同,循环连接字符串时效率比String高,只是StringBuller的所有方法都被synchronsized修饰,是线程安全的,但是在单线程环境下StringBuilder效率更高是Java 5引入的。