JavaSE面试知识点

本文探讨了Java中的String、StringBuilder和StringBuffer的区别,equals()与==,final关键字的作用及与finally和finalize的区别,this和super的用法,抽象类和静态方法的特性,局部内部类和匿名内部类对final变量的要求,以及重载和重写在方法上的差异。同时介绍了Java对象创建的各种方式。
摘要由CSDN通过智能技术生成

String和StringBuilder和StringBuffer的区别

  1. String是可读字符串,引用的字符串内容不可以改变
  2. StringBuilder和StringBuffer表示的字符串对象可直接,单线程中StringBuilder效率更高一些,StringBuffer加了锁,线程安全性要高一些

"=="和“equals()方法区别

  1. 基本数据比较值是否相等用“==”,用“equals()”比较两个对象是否一样,通俗讲两个人是否长得一样
  2. 如果我们自定义是直接调用object类中的“equals()”方法则是用于判断两个对象地址是否相同

String类是否可以被继承,为什么用final修饰?

  1. 不能继承String类。
  2. 为了效率和安全
    a. 只有字符串不可变,字符串才有可能做字符串池
    b. 只有字符串不可变,多线程使用才安全,多线程中的实例对象才可共享字符串
    c. 因为字符串不可变,所有字符串创建时已经被hashcode所缓存,不需要重新计算,使得字符串适合做map集合的键
    d. 字符串可变会造成很严重的安全性问题

JDK,JRE,JVM

  1. JDK是开发环境工具包,包含JRE和JVM
  2. JRE是运行环境,包含JVM和核心类库
  3. JVM是虚拟机

final关键字作用,与finally和finalize关键字区别?

  1. final修饰的类不能被继承,final修饰的方法不能被重写,final修饰的变量为常量,不能被重新赋值
  2. finally一般与try-catch合用,不管发没发生异常finally后边的语句都会被执行
  3. finalize是object类中,用于垃圾回收器中

this和super区别?

  1. this指向的对象,是对象自身
  2. super指向是自己的一个超类对象,这个超类是最近的父类
  3. this()方法调用的是本类的其他构造方法
  4. super()方法指的是父类的构造方法

抽象类能被final关键字修饰吗?

不能,final修饰的类不能被继承,而抽象类本身是用来继承的,二者相驳
static修饰的方法能调用非static修饰的方法和变量吗?
static修饰的方法只能调用静态方法和变量

局部内部类和匿名内部类使用局部变量时,为什么变量必须加上final?

生命周期不一样,局部变量保存在栈中,当方法执行结束时,非final修饰的变量会被摧毁而局部类依然引用着局部变量,此时调用会出错

重载(overload)和重写(override)的区别?

  1. 重载方法名相同,方法参数,参数数量,参数顺序不同
  2. 重写发生在继承关系,方法参数必须相同,子类抛出的异常数量要小于父类,子类的修饰字符权限要大于父类

java创建对象方式有哪些

  1. 使用new关键字
  2. Class类当中的newInstence方法
  3. Constructor类当中的newInstence方法
  4. 使用cloen方法
  5. 使用反序列化
  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值