1、
2、
3、AOP切面编程的使用
在业务逻辑不知情的情况下对业务代码的功能进行增强。
4、MySQL数据库为什么使用innoDB引擎,而不使用MYISAM引擎?
innoDB引擎为MySQL数据库提供了事务支持,提供了行级锁和外键约束的支持。
5、final、finally、finalize
final:修饰类,类不可以被继承;修饰方法,方法不能被重写;修饰变量,变量不能被改变,如果是引用类型的变量,内存地址不变,变量的内容可以改变。
finally:用在try...catch异常捕抓处理代码块中,我们将一定要执行的代码放在finally中,不管是否有没有异常,都会执行finally的代码。
finalize:属于object类的一个方法,这个方法一般由垃圾回收器回收,当我们使用System.gc()的时候,由垃圾回收器调用finalize()方法,回收垃圾。
6、静态变量在内存中只有一份,
实例变量在创建对象的时候被初始化,创建几次就有几份成员变量。
7、string、stringBuffer、stringBuilder
线程安全:
string、stringBuffer
线程不安全:
stringBuilder
8、反射的实现:
class.forName("路径名")
类名.class
对象名.getclass
9、statement和preparedstatement的区别
statement一般用于固定的SQL语句,preparedstatement一般执行使用?参数预编译的SQL语句。
10、内存溢出和内存泄露的区别
内存溢出:对象对内存申请的时候,没有内存空间供内存使用
内存泄露:对象对内存申请的时候,释放不了申请的内存空间
11、八大数据结构
数组、链表、堆、栈、队列、图、数、散列。
12、进程和线程
进程是内存运行时的一个程序。一个进程可以有多个线程。(进程是操作系统的资源分配的基本单位)
线程是一个进程中的一个执行任务,负责当前进程中程序的执行。(线程是处理器任务调度和执行的基本单位)
13、start()和run()
单线程使用run()
多线程使用start()
14、wait()和sleep()
wait不会自动释放对象锁,是object类下的普通方法,调用wait后线程不会自动苏醒;
sleep会自动释放对象锁,是thread线程类下的静态方法,调用上来了平后线程会自动苏醒。
15、线程同步异步
同步:多个线程同时执行一个代码,防止多线程访问一个对象的时候,对数据造成损害;
异步:多个线程彼此独立。