java基础
1.java中的“==”和equals()方法的区别
1 | (1) ==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址. |
2.为什么不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法
1 | java中规定,abstract只能修饰类和方法 |
3.abstract class 和 interface的区别
1 | 抽象类: |
4.对面向对象特征多态的理解
1 | 父类引用指向子类对象,可以调用子类重写的父类方法 |
5.封装继承多态
1 | 封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性. |
6.String类的常用方法有哪些 ?
1 | String(byte[] bytes, String charsetName) 通过指定的字符编码解码直接数组构造新的string对象 |
7.java语句 String str = new String(“hello”);执行时,创建了几个对象?
1 | 2个对象 |
8.对序列化的理解
1 | 序列化是为了保存在内存中的各种对象的状态,经过流的传输,还可以把保存的对象状态再读出来。 |
9.什么是反射
1 | 反射机制指的是程序在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。 |
10.什么是动态代理
1 | 利用Java的反射技术(Java Reflection),在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象)。代理的是接口(Interfaces),不是类(Class),更不是抽象类。 |
11.什么是多线程、线程的启动方式、线程安全问题如何解决
1 | 多线程:指的是一个程序(进程)运行时产生了不止一个线程。程序中有两个子系统需要并发执行,这时候就需要利用多线程编程。 |
12.解释protected
1 | protected是java的权限修饰符,被protected修饰后,只有当前类、同包下的类以及子类能访问 |
13.StringBuilder和StringBuffer区别
1 | StringBuilder是线程不安全的,而StringBuffer是线程安全的,运行速度上,StringBuilder较快 |
14.cglib和jdk的核心
1 | 静态代理:简单,代理模式,是动态代理的理论基础。常见使用在代理模式 |
15.乐观锁和悲观锁
1 | 悲观锁 |
16.垃圾回收机制
1 | 1)如何确定某个对象是需要被回收? |