入职考试
- 单选
- 类方法
- JDK.JRE.JVM关系
- 单例模式
- 堆、栈
- MyBatis全局配置文件
- 设计模式:行为模式
- 注解(Annotation),也叫元数据
- DispatcherServlet作用
- 继承
- this.constructor
- ViewResolver
- 面向对象编程原则
- 反射机制
- ArrayList空间扩充
- .java文件编译
- Spring自动装配
- sleep()和wait()
- 线程
- bean的scope属性
- RuntimeException
- Java是多进程语言
- 线程安全
- volatile
- SpringMVC用到的设计模式
- 构造方法
- StringBuffer.append
- SpringMVC转发关键字
单选
类方法
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
设计模式:行为模式
职责链模式
命令模式
迭代器模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
访问者模式
注解(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