java面试题【二】

目录

基础编程

1. 静态变量和实例变量的区别?

2. Integer 与 int 的区别?

3. 作用域 public,private,protected,以及不写时的区别

面向对象

1.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?

2.构造器 Constructor 是否可被 override?

3.面向对象的特征有哪些方面

4.abstract class 和 interface 有什么区别?

5.String 是最基本的数据类型吗?

6.String s = "Hello";s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?         

7.是否可以继承 String 类?

8.String s = new String("xyz");创建了几个 String Object? 二者之间有什么区别? xyz 是字面量

9.String 和 StringBuffer 的区别 


基础编程

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 的方法是否可以改变返回值的类型?

Overload:同名不同参。
Override:同名同参,更多的是重新父类的方法。

2.构造器 Constructor 是否可被 override?

 构造器 Constructor 不能被继承,因此不能重写 Override,但可以被重载 Overload

3.面向对象的特征有哪些方面

封装:减少重复代码,方便调用
继承:抽取共性部分 初衷
多态:
          体现形式:接口、抽象类
          具体应用向上提升、向下转型
          特点:能够让代码具备更好的拓展性

4.abstract class 和 interface 有什么区别?

 抽象类与接口
        抽象类:单继承、可以有抽象方法也可以有具体实现的非抽象方法
        接口:多实现,只能有抽象方法

5.String 是最基本的数据类型吗?

基本数据类型包括 byte int char long float double boolean short
java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用 StringBuffer 类 

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 的区别 

举一个具体的例子来说明,我们要把 1 100 的所有数字拼起来,组成一个串。
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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值