入职考试
单选
类方法
static修饰的方法就是类方法。[类方法]使用类名.方法名调用即可。
JDK.JRE.JVM关系
jdk>jre>jvm
在jre目录里面有两个文件夹bin和lib,可以认为bin里的就是jvm,lib中则是
jvm工作所需要的类库,而jvm和 lib和起来就称为jre(JVM+Lib=JRE)。
单例模式
不清楚答案对不对。。。。之后想一想吧。
堆、栈
堆内存:new对象,长时间存储(生存时间)
栈内存:程序运行等。
寄存器:暂存操作数和运算结果等信息
方法区:static变量信息、类信息。
MyBatis全局配置文件
https://www.cnblogs.com/java-zmj/p/8075168.html
设计模式
+行为型模式
这些设计模式特别关注对象之间的通信。
+结构型模式
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
+创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。
注解(Annotation),也叫元数据
@Override 表示当前方法覆盖了父类的方法
@Deprecation 表示方法已经过时,方法上有横线,使用时会有警告。
@SuppressWarnings 表示关闭一些警告信息(通知java编译器忽略特定的编译警告)
https://blog.csdn.net/tanga842428/article/details/75956957
DispatcherServlet作用
网上教程看的我一脸懵逼。。。
- 初始化ApplicationContext
- 接受请求(HTTP等),将请求映射到处理器
- 加载配置文件
- 解析视图
继承
private成员对象可以认为时没有继承的,因为不能直接访问。
this.constructor
- 只能再构造函数中使用this调用其它构造函数,且必须放在第一行!!
- 构造函数不能互相调用
ViewResolver
ViewResolver:视图解析器
处理器查找:对应下图1.2步
- 处理器适配器:处理Handler代码
面向对象编程原则
开闭原则:可扩展不可更改
里氏代换原则:子类可以代替基类出现的地方。
依赖倒转:依赖于抽象,针对接口编程。
https://www.cnblogs.com/silencer/p/10812417.html
反射机制
getMethods:返回公共方法
getDeclaredMethods:返回所有方法
getName:返回类完全限定名javax.swing.JButton
forName:通过完全限定名获得对象
getDeclaredConstructors:获取全部构造函数
ArrayList空间扩充
第一次默认分配10,之后一次变成1.5倍。
.java文件编译
.java->.class字节码->机器码
Spring自动装配
byName、byType、constructor、default
sleep()和wait()
sleep:Thread方法、不释放对象锁、不让出系统资源结束后自动恢复(设置时间)、需要捕获异常
wait:Object方法、放弃对象锁、出让资源进入等待(不设置时间)、不需要捕获异常
线程
- 线程创建后不一定立刻运行
- 调用start不一定立刻运行
- 线程被抢断进入就绪队列最前面
- 线程可能因为不同原因进入就绪:
-
阻塞的进程获得等待的资源或信号 (阻塞态 —> 就绪态)
-
时间片轮转的情况下,进程的时间片用完了 (运行态 —> 就绪态)
-
CPU调度给优先级更高的进程 (运行态 —> 就绪态)
-
bean的scope属性
JavaBean: page ---------- \request\session\application.
SpringBean:singleton\prototype\request\session\global session.
RuntimeException
RuntimeException的特点是允许不被catch。而其它定非运行时异常如果抛出的话必须显式的catch,否则编译不过。
Java是多线程语言
不是多进程的。
线程安全
Vector:就比Arraylist多了个同步化机制(线程安全)。
Hashtable:就比Hashmap多了个线程安全。
ConcurrentHashMap:是一种高效但是线程安全的集合。
StringBuffer:可变字符串
https://www.cnblogs.com/qccadmin/p/10065168.html
volatile
避免数据读取不一致,将数据暴露出去。
但是volatile不能保证数据操作的原子性。
SpringMVC用到的设计模式
单例模式
策略模式、工厂模式、代理模式、适配器模式
构造方法
抽象类可以有构造方法,但是不能用其实例化对象,可以在实现类中调用(super)。
StringBuffer.append
返回StringBuffer
SpringMVC转发关键字
转发:forward
重定向:redirect