1. String , StringBuilder , StringBuffer 的区别? (1)String 只读字符串,引用的字符内容是不能被改变的. (2) StringBuilder和StringBuffer表示的字符串对象可以直接被修改,StringBuilder单线程环境下使用,效率要比StringBuffer要,StringBuffer加锁了,更加线程安全. 2.equals() 与 == 的区别?
对于基本类型来说,一般使用==来比较值是否相等 equals不能用在基本类型,对象引用的话,equals()方法使用 ==来判断两个数据是否相等,如果我们自定义类时
直接调用Object类中的equals()方法,则判断的是地址值是否相同.如果需要判断数据是否相同需要在自定义类中重写equals()方法.
3.是否可以继承String类?为什么用final修饰?
String是final修饰的类,不能被继承;
为了效率和安全
(1)只有字符串是不可变的,字符串池才有可能实现
(2)只有字符串是不可变的,所以多线程是安全的,同一个字符串实例可以被多个线程共享
(3)因为字符串是不可变得,所以他在被创建的时候就已经被hashcode缓存了,不需要重新计算,使得字符串很适合做map中的键
(4)如果字符串是可变的,会引起很严重的安全问题.
4.什么是面向对象编程?
面向对象编程的基本思想就是利用类,方法,封装继承多态,等概念来进行程序设计,从现实世界中实际存在的事务(对象)出发来构造软件系统,
尽可能的运用人类的自然思想进行程序设计.
5.面向对象的三大特征
继承:子类继承父类可以实现代码的抽取和复用,单继承(类),多实现(接口).
封装:将事物的属性和行为抽取出来封装到类中
多态:副类的引用指向子类的实现 Animal a = new Dog() ; 三个多态条件: 继承 重写 向上转型
6.JDK,JRE,JVM
JDK是开发者工具包,包含JRE和JVM
JRE是环境开发,包含JVM核心类库,JVM是虚拟机
7.Java基本数据类型
整形:byte short int long
浮点型(小数): float double
布尔型: boolean
字符型: char
8.什么是方法签名
方法名称和参数类型
9.Java中的访问修饰符
private (私有的,在本类可见),使用对象:变量,方法. 不能修饰类(外部类)
default(默认的,在同包内可见,可以不写关键字,默认存在) 适用对象:类,接口,变量,方法
protected(同包类和所有子类可见) 使用对象:变量,方法 ,不能修饰类
public (所有类可见) 使用对象:类,接口,变量,方法
10.final有什么用? 和finally,finalize有什么区别?
final修饰的类不能被继承,final修饰的方法不能被重写,final修饰的变量为常量,不能被重新赋值
finally一般用在try-catch结构中,不管是否出现异常,finally中的语句都会执行
finalize 是Object类的方法 用在垃圾回收站中.
标签:面试题,Java,继承,Day01,equals,修饰,字符串,方法,final From: https://www.cnblogs.com/carney/p/17024426.html