1.Mysql两种储存引擎:innoDB和MylSAME
- MyISAM强调表的性能,执行速度比innoDB快,但不支持事物等高级数据库功能(表级锁(容易造成锁冲突,并发最低))。
- innoDB支持事物,外键,行级锁(并发最高)等高级数据库功能。
2.简述synchronized和java.util.concurrent.locks.Lock的异同?
- 主要相同点:Lock能完成synchronized所实现的所有功能;
- 主要不同点:
Syschronized是在jvm层面上的,是一个关键字,而Lock是一个类;
Lock有比synchronized更精确的线程语义和更好的性能,而且不强制性的要求一定要获得锁;
Syschronized同步数据少量的话,性能比Lock好,而数据大量同步,Lock性能要好
synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且最好在finally块中释放(这是释放外部资源的最好的地方)。
3.说出一些常用的类,包,接口,请各举5个?
- 类:String Integer File Date HashMap
- 包:java.lang java.util java.sql java.io javax.servlet
- 接口:Map List Set Servlet Runnable
4.java中实现多态的机制是什么?
- 重写Overriding是父类与子类之间多态性的一种表现,
- 重载Overloading是一个类中多态性的一种表现。
5.复制对象和复制引用的区别
Person p(引用)=new Person();(对象)
- 复制引用不会生成新的对象,知识多个引用指向同一个对象的地址
- 复制对象的话会重新再生成一个对象
6.深拷贝和浅拷贝
- 浅拷贝:就是指只复制对象的引用,不会生成新的对象(clone执行的就是浅拷贝)
- 深拷贝:就是复制对象,会生成新的对象,要想实现深拷贝,原对象和新生成的对象必须实现Cloneable接口,实现clone()方法
7.说说你对Java中反射的理解
- Java中的反射首先是能够获取到Java中要反射类的字节码,获取字节码有三种方法,
- 1.Class.forName(className)
2.类名.class
3.this.getClass()。 - 然后将字节码中的方法,变量,构造函数等映射成相应的Method、Filed、Constructor等类,这些类提供了丰富的方法可以被我们所使用。
8.动静态代理的区别,什么场景使用?
- 静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。
静态代理事先知道要代理的是什么,而动态代理不知道要代理什么东西,只有在运行时才知道。
动态代理是实现JDK里的InvocationHandler接口的invoke方法,但注意的是代理的是接口,也就是你的业务类必须要实现接口,通过Proxy里的newProxyInstance得到代理对象。
还有一种动态代理CGLIB,代理的是类,不需要业务类继承接口,通过派生的子类来实现代理。通过在运行时,动态修改字节码达到修改类的目的。
AOP编程就是基于动态代理实现的,比如著名的Spring框架、Hibernate框架等等都是动态代理的使用例子
9.你所知道的设计模式有哪些
Java中一般认为有23种设计模式,我们不需要所有的都会,但是其中常用的几种设计模式应该去掌握。下面列出了所有的设计模式。需要掌握的设计模式我单独列出来了,当然能掌握的越多越好。
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
掌握:单例模式
策略模式
策略的设计模式
什么叫做策略的设计模式呢?场景是什么?
一类事务具有某一种特定的行为、而且这种行为是不确定的、这个时候可以使用策略的设计模式了
动物睡觉的行为
有些动物睁眼睡觉、有些动物不睡觉、有些动物天天睡觉
旅行的行为
坐公交旅行 坐飞机 走路 骑自行车 …
狗叫的这个行为
有些狗叫的好听 有些狗叫的不好听 还有些狗根本就不叫
1:将不确定的行为抽取成接口
2:编写这些行为的行为族(说白了就是接口的不同实现类)
3:在构建对象的时候装配进去这些行为 …(放入构造方法中)
观察者模式
观察者设计模式用在哪里呢?
一个事件产生之后 可以触发另外一部分事件的执行
点击手机上的一个按钮 这个按钮就会触发我们提前写好的一个方法的执行
中央气象局通知地方气象局提天气变化的问题
10.Jsp九大隐式对象
request用户端请求,此请求会包含来自GET/POST请求的参数
response网页传回用户端的回应
pageContext网页的属性是在这里管理
session与请求有关的会话期
applicationservlet正在执行的内容
out用来传送回应的输出
configservlet的构架部件
pageJSP网页本身
exception针对错误网页,未捕捉的例外
来源:https://blog.csdn.net/XKD_zhanyang/article/details/102743621