JAVA 基础

字节序 Little\Big 低-》高\高-》低
java字节序为虚拟机中多字节类型数据存放顺序
可用nio.ByteOrder。nativeOrder()获取

重载

覆盖

多态

参数个数

重写的方法的访问修饰符

类型

大于被重写

顺序

HashTable| HashMap|TreeMap 实现Map接口

HashMap

HashMap存入K1时,->调用Key中的HashCode->计算Hash值->放入Hash值指引的内存-> 无定义调用Object的HashCode ->Object 返回Hash值是对象的地址
取值K2->计算K2的Hash值,k1与k2 地址不同
->发生冲突,这是用到equals方法进行对比
或->发生冲突,这是用到equals方法对比
->没有重写equals方法,调用Object的equals方法
->判断连对象的内存地址是否一致
->由于K1,K2都是New,内存地址不同

总结 :HashMap有很快的访问速度,但遍历顺序不确定,最多只允许一条记录的键为null,不能多条记录的值为null

TreeMap

双列集合,Map子类,底由红黑树

特点:键不能重复(键大小有序) map.put(k,v)

二叉排序树 左<根<右 、无相等缺极端情况下,近似列表

平衡二叉树 +旋转 高度差绝对值不超过1

Java前端立体渲染 java渲染是什么意思_数组

红黑树

不是高度平衡 (自平衡的 二叉树)

特点: 根 -》黑

叶节点是黑为Nil

红色不能相连

每个节点,从该节点到所有后代叶节点的简单路径上,均包含相同数目的黑色节点

最高最短路径不会高于两倍

Java前端立体渲染 java渲染是什么意思_Java前端立体渲染_02

TreeMap源码

Java前端立体渲染 java渲染是什么意思_java_03

单例模式

单例模式只有一个实例,需隐藏类的构造,把构造函数生命为private并提供一个创建对象的方法

class Singleton{
	private static Singleton instance = null;
	private Singleton(){}
	public static Singleton getInstance(){
		if(instance == null){
			instance = new Singleton();
		}
	return instance;
	}
}

Math小知识点

BigInteger(1,1)
BigDecimal(long X ,int scale)
返回为X或X/10的scale次方 的一个大实数

数组 int[] a /int a[]

for(var:collection){}
Array.toString(a).sout
长度0与null不同
Array.copyof通常用来增加数组大小
main方法中String【】 args 命令行参数

Array.sort(a) :优化后的快排
561438
第一趟结果
164358 ×
341568 √

Math.random [0,1)
binarySearch可指定
fill(数组,填充值)
equals

多维数组

foreach要访问每层,要嵌套N重循环
快速打印一个二维数组,可用Arrays.deepToString()

java中只有一维数组
用不规则数组实现多维

JDK8常用新特性

1、函数接口,@FunctionalInterface
2、lambda表达式 Collections.sort(names,(s1,s2)->s1.compareTo(s2));
3、接口默认方法 可重写,也可指定super默认方法,静态默认方法
4、新时间处理 local,zoned
LocalDate.of(年,月,日)
LocalTime.of(时:分).parse(string)
LocalDateTime.now() .当前日期+时间
或.toLocalDate()当前日期
或.getMonth()
或.getDayofMonth()
或.getsecond()
或.withDayofMonth(天).withyear(年)
5、重复注解:相同的注解可多次生命
6、@NonEmpty注解

JVM

方法区


执行引擎
GC算法:3种基本算法copy、标清、标整。分代收集
GC优化是否开启Full前的Minor
新老区整比例
阈值设置
回收器
三种:串行、吞吐量优先(多线程、开启多个线程)、响应时间优先(多线程,标记,缩短单词回收(标清,出发保护退化算法))

多线程

三种实现:Thread、Runnable、Calledable
锁synchronized
死锁条件:1、互斥 2、占有且等待 3、不可抢夺 4、循环等待

Reentrantlock 互斥锁 可指定唤醒顺序

线程初始化:
1、缓冲池Cache,容量大小为MAX。PoolSize为0,同步队列
2、single单例缓冲池,容量为1
3、固定大小缓冲池,Fixed、PoolSize

页面渲染流程

静态
1)用户间网址输入至浏览器
2)把用户请求HTTP协议请求方法,网址,请求参数发送到服务器
3)服务器接收并查找网页
4)拿到资源后放回给服务器
5)服务器把响应信息组装成消息格式后返回客户端,状态码,CONTENT-TYPE,响应内容
6)浏览器解析后展示页面

动态

生命周期

Java前端立体渲染 java渲染是什么意思_java_04

1)用户点击一个连接向servlet 发起请求
2)Web服务器接收后,把请求交给相应的容器,容器会创建HttpServletRequest和Response对象
3)容器根据URL找到相应的Servlet,针对该请求创建一个线程,把创建的两个对象以参数的形式传递到线程中
4)容器中的线程调用Servlet中的Service()完成对用户请求的响应,Service()方法会调用doPost方法或doGet方法完成对用户具体响应任务,同时把生成的动态页面返回给容器
5)容器把响应消息组装成Http格式返回给客户端。同时删除第2)点创建的对象

Jsp

动态页面 可以写java脚本小程序script
JSP实现了业务逻辑与视图实现的分离
JSP是一个镶嵌在HTML中的SERVLET
JSTL 标签库
Java Server Page 服务端
Servlet -init Destroy Service
Tomcat编译成Java代码

JSP四大域对象

大-》小
PAGE 页面中,跳转后无效
REQUEST 请求中保存,服务器跳转后失效
SESSION 一次会话范围内
APPLICATION 在服务器保存

SETATTRIBUTE 设置名称及内容
GET 根据名称 获取
REMOVE 删除

ThreadLoadMap 开放定制发(逻辑删除)
HashMap 链表法(拉链法)(不确定的情况下,删除节点)
再哈希 往下找
建立一个公共溢出区

2.
<!--显示注释-->
<%--jsp自己的注释--%>
继承java注释
<pre>有换行效果
<%java脚本片段%>顺序有关	放在service方法中
<!% 定义全局变量%>类体中
3、
指令标签
	静态包含	<%@include file="path"%>
		将内容进行直接替换
		生成一个源码文件,最终内容销毁JspService中
	动态包含	<jsp:include page="">
		runtime.JspRuntimeLibrary.include(request,response,jsp文件名,false
		可以定义同名变量
		注:没有参数,不要有任何内容,包换行空格