- Object都有什么方法?
equals() hashcode() toString() clone() wait() notify()
- string ,stringbuild,stringbuffer区别,string内部结构。为什么String不可变?
String 不可变
stringbuild,stringbuffer可以变 stringbuffer 线程安全的 stringbuild 线程不安全
String 里面有个char[]数组 和hash值‘
因为char数组被final和private修饰 final不可继承 private不可被外部更改 所以不可变
为什么String是不可变的 https://blog.youkuaiyun.com/zhangjg_blog/article/details/18319521
- 多态实现方式,使用场景
就是一个父类可以被多个子类继承进行重写里面的方法
实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载
- 面向对象三大特征
继承,封装,多态
- 8种基本数据类型
int byte long short double float char boolean
- 熟悉的几个异常类。
1. java.lang.nullpointerexception 空指针异常
2. java.lang.classnotfoundexception 找不到类异常
3. java.lang.arrayindexoutofboundsexception 数组地址下标越界
- String能不能被继承?为什么?
不能 因为String被final修饰
- java中是值传递还是引用传递?
值传递
- 集合里面set和list的区别?
list里面元素可以重复,set元素不重复。
list里面元素有序,set里面除了treemap元素都没序。
- 面向对象--举例理解
面向对象,就是继承,封装,多态。
- java反射机制的理解
反射就是在运行过程中,对于任意一个类和对象,都能知道这个类的所有属性和方法。
- jdk动态代理 动态代理的实现
动态代理就是运行时动态生成代理类
动态代理有两种形式,一个是JDK原生的动态代理,通过接口实现。还有一个是cglib代理,通过继承当前的子类实现的。
- 数据库驱动为什么使用反射调用不直接new
因为反射可以自己获得运行时的类名,这样不仅代码上可以解耦合,更换数据库时的时候也不需要重新编译代码。
- Error和Exception的区别
error一般是指与虚拟机相关的问题,程序本身无法处理,进行报错。
exception一般是程序可以处理的异常,可以捕获并进行处理。
- 对象相等的判断,equals方法实现。
如果重写equals 就是比较对象内容是否相同
如果没有重写,就是比较对象引用地址是否相同
- 写了equals不写hashcode有什么后果
用map的时候会取不到值
- object类equals方法是怎么实现的?
判断地址是否相等
- 动态代理有哪些
JDK自带的动态代理,cglib动态代理
- JDK和CGLIB动态代理的区别
JDK是继承接口,cglib是通过继承父类来实现的
- java 中static理解,final理解
被static修饰的属性和方法可以直接被类名称调用,相当于全局变量
被final修饰的类不能被继承,被final修饰的方法不能被重写,被final修饰的变量是常量
- static方法可以访问非static方法或变量吗?为什么不可以?
不可以
static对象早已经创建好了,但是程序中的所有属性和方法必须在对象开辟堆内存后才能使用。
- string 转 int手写
String str;
int i = Integer.parseInt(str);
- 讲讲String类型
string是一个类,不可变,也不可以被继承,内部有hashcode和一个value char数组。
- 什么是序列化?
把对象转换为字节序列的过程
- 序列化,反序列化,什么时候用?
把对象保存在硬盘上,在网络上传送对象的字节序列
- 如何对一个对象序列化?反序列的方式?
创建一个对象输出流,然后包装其他类型的目标输出流
通过对象输出流的writeObject()方法写对象
创建一个对象输入流,然后包装其他类型的目标输入流
通过对象输入留的readObject()方法读取对象