java基础知识点整理-持续更新(每天10题)

1.面向对象的特征?

封装:将对象属性和方法的代码封装到一个模块中,也就是一个类中,保证软件内部具有优良的模块性的基础,实现“高内聚,低耦合”。

抽象:找出一些事物的相似和共性之处,然后归为一个类,该类只考虑事物的相似和共性之处。抽象包括行为抽象和状态抽象。

继承:在已经存在的类的基础上进行,将其定义的内容作为自己的内容,并可以加入新的内容或者修改原来的方法适合特殊的需要。

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,就是多态,简单点说:就是用父类的引用指向子类的对象。目的:提高代码复用性,解决项目中紧耦合问题,提高可扩展性。

多态的机制:靠的是父类的或者接口的引用变量可以指向子类或者具体实现类的实例对象。

2.&和&&的区别?

  &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true。
  &&:短路与,如果第一个表达式为false时,第二个表达式就不会计算。

3.最有效率的方法算出2X8等于几?

使用位运算,效率最高:2<<3,表示2向左移动了3位,就相当于2乘以2的3次方,结果:16。

4.”==”和equals方法究竟有什么区别?

==:表示两个变量的值是否相等,比较两个基本数据类型的数据或者引用变量,用==。
equals:用于比较两个独立对象的内容是否相同。字符串的比较也用equals。

5.Int和integer的区别?

Int是Java的8中基本数据类型之一;
integer是int的封装类;
Int类型的默认值为0;
integer默认值为null。

6.三个与取整有关的方法

Math.ceil():表示向上取整;Math.ceil(11.3)=12;Math.ceil(-11.3)=-12;
Math.floor():表示向下取整;Math.floor(11.6)=11;Math.floor(-11.6)=-12;
Math.round():表示四舍五入;Math.round(11.5)=12;Math.round(-11.5)=-11。

7.String和StringBuffuer、StringBuilder的区别?

String:字符串数值不可变;
StringBuffer:字符串可修改,可以动态构造字符数据。StringBuffer类是可以通过Append()来修改值。线程安全。
StringBuilder:线程不安全。

三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String
对于三者使用的总结:
1.如果要操作少量的数据用 = String  
2.单线程操作字符串缓冲区下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区下操作大量数据 = StringBuffer

8.String s =new String (“syz”);创建了几个String Object?

1.如果String常理池(常量缓冲区)中,已经创建"xyz",则不会继续创建,此时只创建了一个对象new String("xyz");

2.如果String常理池中,没有创建"xyz",则会创建两个对象,一个对象的值是"xyz",一个对象new String("xyz")。

9.数组有没有 length()方法?String 有没有 length()方法?

数组没有 length()方法,有 length 的属性。
String 有 length()方法。
JavaScript中,获得字符串的长度是通过 length 属性得到的,这一点容易和 Java 混淆。

10.是否可以继承 String 类

String 类是 final 类,不可以被继承。
上一篇:图形 5 Unity Shader的简单了解(七)·基本光照模型中的高光反射


下一篇:旋转矩阵和变换矩阵的概念和区别