没有记住的知识点
JAVA基础
执行顺序
构造代码块,优于构造函数,迟于静态代码块
父类静态代码块>子类静态代码块>父类构造代码块>父类构造函数>子类构造代码块>子类构造函数
内部类
外部类访问内部类 创建 new 内部类();
其他类访问内部类 创建 new 外部类 . new内部类();
Java内存模型
Person P = new Person();创建了2个对象
① Person p ;创建对象并分配了内存,但未赋予值;
②new Person();创建对象并分配了堆内存
③ P= new Person() 赋值
String s = new String(“111”); 存在3个对象
①字符串常量池中创建对象"111";
② new String()堆中创建 new String()对象 ;
③String s栈中创建对象并分配了内存,但未赋予值;
④ String s = new String(“111”)赋值
对象创建、内存分配
类的加载——双亲委派模型
当一个类加载器收到类加载任务时,会先交给自己的父加载器去完成,因此最终加载任务都会传递到最顶层的BootstrapClassLoader,只有当父加载器无法完成加载任务时,才会尝试自己来加载。
好处是保证使用不同类加载器最终得到的都是同一个对象,这样就可以保证Java 核心库的类型安全
泛型
为什么说是“伪泛型”?
List ss = new ArrayList<>();
java中的泛型,之所以在运行时还能获取到String这个指定的泛型类型,是因为通过反射获取并将该类型信息记录了下来在class文件中,当运行时会调用该字节码文件,故读取信息即可获得;
等号右侧的信息,不会被记录在class文件,故运行时实际参数的类型被擦除,是无法获取的。
声明泛型会产生的.class文件
故泛型类没有.class 或.getClass() 方法。因为方法是在运行时调用的,但运行时泛型信息是被擦除的。可以使用 new TypeReference<List>(){} 返回.class二进制字节码信息。局限:不能用于未指明的泛型
反射
重载方法怎么办(properties文件怎么配置?键不能重复)方法含参怎么办?如何准确对应(方法名一旦变化对应参数类型甚至数量都会变化)
Web
Servlet
-
Servlet生命周期
默认第一次访问时执行init
可配置loadonstartup使其在服务器启动时执行 -
servletContext域对象
获取方式:直接 ServletContext sc = getServletContext();(不需要对象调用)
方法:set/get/remove Attribute(“属性名”) 存储和获取属性; getRealPath(“文件名”)获取项目真实路径 (直接返回绝对路径) (相对路径是相对于web-Content)(src下的文件的相对路径是web-inf/classes) getInitParameter("username") 获取全局化参数(web.xml文件中的 context-param
<context-param>
<param-name>password</param-name>
<param-value>pwd</param-value>
</context-param>
JSP
- JSP内置对象
- 项目路径
在jsp页面直接getServletContext().getRealPath(“相对路径地址”)
在页面中动态获取项目路径的方法:${pageContext.request.contextPath }
Controller
-
下载时需要设置
服务器向客户端输出内容时,为了避免客户端浏览器的不同解析行为(可能会直接解析并打开),需要设置://响应输出的文件类型 response.setContentType(this.getServletContext().getMimeType(filename)); //响应的响应头,告知文件是个附件attachment,即需要下载而非打开 //为避免中文文件名产生乱码,找不到文件,文件名应重新编码 response.setHeader("content-disposition", "attachment;filename="+new String(filename.getBytes("utf-8"),"iso8859-1")); 我个人电脑编码格式奇葩,具体什么格式之间互相转码视情况而定
前端
标签
- select标签属性:multiple=“multiple”:按住Ctrl可多选
JS
- js中 === 同时比较值和类型, == 只比较值(字符串之间的比较用==)
JQuery
- jQuery html()与text()方法区别
html–向页面元素存值时会解析内容中包含的HTML标签
text–向页面元素存值时不解析内容
为何取值时都取不到带标签的整个结构?取值时没有区别?
Json
- json值获取
Json对象.键
Json对象[“键”] - Json解析
Jsoup.parse(File对象或URL)-- 获取document对象
调用.select(选择器)方法 – 获取具体element对象
调用.text()等方法 – 获取内容
数据库
CRUD
获取自增主键方式
1. SSM注解开发:Mapper接口中的方法上添加注解:
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
2. SSM+XML开发:mapper映射xml中添加语句
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT last_insert_id()
</selectKey>
3. SpringBoot使用mapper- Spring-boot-start启动器:使用自动生成的insert方法时,在实体类的主键属性上使用注解@Id和 @GeneratedValue(generator="id"),并在调用mapper的insert(实体类 实例)方法时,自动将自增主键返回并赋给实例。故返回传入的实例参数即可。
算法
数组排序
- 快速排序
选取基准数,从左往右找比基准数大的 & 从右往左找比基准数小的 ,在两边各自找到后交换;未找到直接遇到基准数则与基准数交换