目录
3. 作用域 public,private,protected,以及不写时的区别
1.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
2.构造器 Constructor 是否可被 override?
4.abstract class 和 interface 有什么区别?
6.String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?
8.String s = new String("xyz");创建了几个 String Object? 二者之间有什么区别? xyz 是字面量
基础编程
1. 静态变量和实例变量的区别?
静态变量是跟随着类走的,哪怕没有实例化也可以拿到类的成员变量
实例变量是必须要创建对象实例化才能够去赋值获取的。
2. Integer 与 int 的区别?
本质区别Integer是类,它有方法。而int是基本数据类型,类它就有方法它可以对我们的数据操作更为灵活。做比较的例子:
integer里面有很多方法,输出结果为:-1
int a = 1; Integer integer = new Integer(1); System.out.println(integer.compareTo(2));
3. 作用域 public,private,protected,以及不写时的区别
作用域
|
当前类
|
同一
package
|
子孙类
|
其他
package
|
public
|
√
|
√
|
√
|
√
|
protected
|
√
|
√
|
√
|
×
|
friendly
|
√
|
√
| × |
×
|
private
| √ | × | × |
×
|
备注:只要记住了有 4 种访问权限,4 个访问范围,然后将全选和范围在水平和垂直方向上分别按排从小到大或从大到小的顺序排列,就很容易写出上面的表格了。
面向对象
1.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
2.构造器 Constructor 是否可被 override?
构造器 Constructor 不能被继承,因此不能重写 Override,但可以被重载 Overload
3.面向对象的特征有哪些方面
封装:减少重复代码,方便调用
继承:抽取共性部分 初衷
多态:
体现形式:接口、抽象类
具体应用向上提升、向下转型
特点:能够让代码具备更好的拓展性
4.abstract class 和 interface 有什么区别?
抽象类与接口
抽象类:单继承、可以有抽象方法也可以有具体实现的非抽象方法
接口:多实现,只能有抽象方法
5.String 是最基本的数据类型吗?
6.String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?
所以String对象中的内容没有改变
7.是否可以继承 String 类?
String 类是 final 类故不可以继承。
8.String s = new String("xyz");创建了几个 String Object? 二者之间有什么区别? xyz 是字面量
两个,一个放在常量区,不管写多少遍,都是同一个。New String 每写一遍,就创建一个新。
9.String 和 StringBuffer 的区别
StringBuffer sbf = new StringBuffer();for(int i=0;i<100;i++){sbf.append(i);}
上面的代码效率很高,因为只创建了一个 StringBuffer 对象,而下面的代码效率很低,因为创建了 101 个对象。
String str = new String();for(int i=0;i<100;i++){str = str + i;}