java面试题

目录

1.静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它?

2.equals与==的区别:

3.String、StringBuffer与StringBuilder的区别

4.final、finally、finalize 的区别

1.1 final修饰类

1.2 修饰方法

1.3 修饰变量


1.静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它?

        静态内部类:使用static修饰的内部类
        内部类:就是在某个类的内部又定义了一个类,内部类所嵌入的类称为外部类
        匿名内部类:使用new生成的内部类
        因为内部类的产生依赖于外部类,持有的引用是类名.this


2.equals与==的区别:

        ==是判断两个变量或实例是不是指向同一个内存空间 equals是判断两个变量或实例所指向的内存空间的值是不是相等


3.String、StringBuffer与StringBuilder的区别

        String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象 StringBuffer和StringBuilder底层是 char[]数组实现的 StringBuffer是线程安全的,而StringBuilder是线程不安全的

4.final、finally、finalize 的区别

        final:用来修饰类,方法和变量(成员变量或局部变量)。

        finally: 作为异常处理的一部分,它只能用在 try/catch 语句中,并且附带一个语句块,表示这段语句 正常情况下会被执行(非正常情况:System.exit(0); System.kill();interrupted被打断),经常被用在需要释放资源的情况下。
        finalize(): java.lang.Object 里定义的,也就是说每一个对象都有这么个方法。这个方法在 gc 启动,该对象被回收的时候被调用。其实 gc 可以回收大部分的对象(凡是 new 出来的对象, gc 都能搞定, 一般情况下我们又不会用 new 以外的方式去创建对象),所以一般是不需要程序员去实现 finalize 的。 特殊情况下,需要程序员实现 finalize ,当对象被回收的时候释放一些资源,比如:一个 socket 链接,在 对象初始化时创建,整个生命周期内有效,那么就需要实现 finalize ,关闭这个链接。

1.1 final修饰类

        当用 final 修饰类的时,表明该类不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用 final 修饰,但要注意:
final 类中所有的成员方法都会隐式的定义为 final 方法。

1.2 修饰方法

        使用 final 方法的原因主要有两个:
        (1) 把方法锁定,以防止继承类对其进行更改。
        (2) 效率,在早期的 java 版本中,会将 final 方法转为内嵌调用。但若方法过于庞大,可能在性能上 不会有多大提升。因此在最近版本中,不需要 final 方法进行这些优化了。

1.3 修饰变量

        final 成员变量表示常量,只能被赋值一次,赋值后其值不再改变。类似于 C++ 中的 const
final 修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果 final 修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的 内容是可以发生变化的。本质上是一回事,因为引用的值是一个地址,final 要求值,即地址的值不发生变化。
        final 修饰一个成员变量(属性),必须要显示初始化。这里有两种初始化方式 ,一种是在变量声明 的时候初始化;第二种方法是在声明变量的时候不赋初值,但是要在这个变量所在的类的所有的构造函数 中对这个变量赋初值。
        当函数的参数类型声明为 final 时,说明该参数是只读型的。即你可以读取使用该参数,但是无法改变 该参数的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值