面试

java基础

如何实现跨平台--jvm翻译奇迹马

编译生成字节码文件,通过java虚拟机变成机器码
不同系统可以设置自己的袭击

JDK=JRE(环境) + Java工具 + 编译器 + 调试器
JRE=JVM + 核心类库

编译型语言--整体编译,速度快,缺点修改够需要重新编译
IDEA每次修改,有时候需要重启,才能跟上
解释型语言--翻译一句执行一句

三大特性

封装:不让外部访问
继承:新类通过继承父类,可以对父类进行扩展,单继承(为了安全,不知道具体执行哪个方法,)
多态:父类引用指向子类实例,同一个行为的不同表项形式

浮点数不能表示金额:计算机保存的小数是十进制小数的近似值

包装类:让他具有对象的特征,有更多的属性和方法

String不可变

原码:String源码一个一个字符存储在value数组中去,另外用fianl
原因:保证线程安全,网络URL,path,密码一般都是String类型,这些东西是不能改变的

JDK9:cahr改成byte,节约内存,char2个字节,byte1个字节
image

Object

toString:默认输出对象地址
equals:默认比较两个引用变量是否指向同一个对象
hashCode
clone

equals

equals相同,hashCode一定相同
hashCode相同,equals不一定相同
hashCode主要为了提高比较效率,先比较hashCode,相同不用再次比较equals

基本数据类型:比较的值
复合数据类型:
比较的是地址,equals默认比较地址值

创建对象--new,反射,clone,反序列化

实例化顺序:静态属性,静态代码块,普通属性,普通代码块,构造方法

关键字

static:被共享,一个副本,类名.,
final:锁定,不能覆盖,不可继承,不能重新赋值
finally:try-catch-finally
finalize:垃圾回收

抽象类

可以有方法,接口都是抽象方法
抽象类各种类型,接口只能是public static final
一个类只能继承一个抽象类,一个类可以实现多个接口

异常

编译时异常,运行时异常
throw:用于抛出一个具体的异常对象
throws:用于声明该方法可能抛出异常

序列化

集合

泛型

先定义一个不确定的类型,传过来才知道是什么类型

集合:
Collection
Map:HashMap,HashTable,SortedMap

List:有序,可重复,多个null
Set:无序,不重复,一个null
map:一个键值对
List:底层数组和链表

List

ArrayList:底层是动态数组,新容量是原来的1.5倍
for each快速失败问题

Iterator itr = list.iterator();
while(itr.hasNext()){

	if(itr.next().equals("jay")){
	itr.remove();
	}

}

Vector--扩充两倍,ArrayList是1.5倍
LinkedList:新增修改比较方法

SSM

Spring

SpringMVC

客户端发送请求到DispatcherServlet,然后通过映射器,适配器,到对应的handler

拦截器

image
这个里面有拦截器
pre1,2,3
post3,2,1
image
使用,实现这个方法就行了

数据库

数据库锁

posted @ 2023-02-04 17:45  拿受用  阅读(13)  评论(0编辑  收藏  举报