avatar
文章
491
标签
109
分类
29
首页
归档
分类
标签
关于
xhj的博客
首页
归档
分类
标签
关于

xhj的博客

会话控制
发表于2023-08-16|JavaJavaWeb
会话控制笔记1、核心代码 1 2 HttpSession session = request.getSession(); session.setAttribute("属性名","属性值"); 2、Cookie的工作机制 Cookie信息是在服务器创建的 Cookie在服务器端被放在响应数据中返回给浏览器 浏览器接收到Cookie后,会把Cookie保存起来 浏览器保存了Cookie后每一个请求都会把路径匹配的Cookie带上 3、Cookie的时效性 会话级Cookie:默认情况 保存在浏览器的内存里,在浏览器关闭时会被释放 持久化Cookie: 服务器端调用Cookie的setMaxAge(以秒为单位的存活时间)方法 存活时间正数:还能够存活的秒数 存活时间为零:告诉浏览器立即删除这个Cookie 存活时间为负:告诉浏览器这个Cookie是一个会话级Cookie 服务器把这个Cookie返回给浏览器时就等于通知浏览器:这个Cookie还能存在多长时间 4、Cookie的路径 每个Cookie都有domai...
Thymeleaf
发表于2023-08-04|JavaJavaWeb
Thymeleaf笔记从三层架构到MVC MVC理念和三层架构并不矛盾,反而是三层架构的延伸 MVC专指表述层的设计理念 MVC理念的核心思想:解耦 从业务功能和三层架构角度看项目网格 Thymeleaf搭建环境导入jar包 attoparser-2.0.5.RELEASE.jar javassist-3.20.0-GA.jar log4j-1.2.15.jar ognl-3.1.26.jar slf4j-api-1.7.25.jar slf4j-log4j12-1.7.25.jar thymeleaf-3.0.12.RELEASE.jar unbescape-1.1.6.RELEASE.jar 配置web.xml 1 2 3 4 5 6 7 8 9 <!-- 在上下文参数中配置视图前缀和视图后缀 --> <context-param> <param-name>view-prefix</param-name> <param-value>/WEB-INF/view/</param-...
Listener
发表于2023-07-15|JavaJavaWeb
监听器笔记1、观察者模式 观察者监控被观察者的行为 被观察者做出相应的动作会触发事件 当观察者发现被观察者触发事件,就会调用事先准备好的方法 2、监听器分类 监听域对象本身 ServletContext HttpSession HttpServletRequest 监听域对象的属性域 应用域 会话域 请求域 监听存入Session域的对象本身 对象是否存入会话域 对象是否和Session一起被钝化到了硬盘上 3、后续用到的监听器名称:ServletContextListener 方法: 方法名 作用 contextInitialized(ServletContextEvent sce) ServletContext创建时调用 contextDestroyed(ServletContextEvent sce) ServletContext销毁时调用 将来在SpringMVC中会用到:ContextLoaderListener,这个监听器就是实现了ServletContextListener接口。
Filter
发表于2023-07-02|JavaJavaWeb
过滤器笔记1、过滤器三要素 拦截:一个请求必须先把它拦住,才能做后续处理 过滤:预设的检查条件,满足条件才可以放行 放行:对于满足要求的请求,放它过去,让它原本要访问什么资源就继续还是访问那个资源 2、过滤器生命周期 生命周期环节 调用的方法 时机 次数 创建对象 无参构造器 默认:Web应用启动时 一次 初始化 init(FilterConfig filterConfig) 创建对象后 一次 处理请求 doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 接收到请求后 多次 清理操作 destroy() Web应用卸载之前 一次 3、拦截请求时的匹配规则 精确匹配 模糊匹配★ 前杠后星:/user/* 前星后缀:*.html 根据Servlet名称匹配 4、Filter链 概念:拦截同一资源的多个Filter 执行顺序:由web.xml中filter-mapping配置的顺序决定 chain.doFilter(req,res...
JDBC核心技术
发表于2023-06-18|Java
[TOC] JDBC核心技术 第1章:JDBC概述1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。 持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。 1.2 Java中的数据存储技术 在Java中,数据库存取技术可分为如下几类: JDBC直接访问数据库 JDO (Java Data Object )技术 第三方O/R工具,如Hibernate, Mybatis 等 JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC。 1.3 JDBC介绍 JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)...
Java运行期优化
发表于2023-06-01|JavaJVM
运行期优化 我们知道,Java 是解释执行的,可是解释执行毕竟还是有点慢的,这也使得 Java 一直被认为是效率低下的语言……,不过随着即时编译技术的发展,Java 的运行速度得到了很大的提升,在本篇文章中,我们将会对 Java 的运行期优化,也就是即时编译 (Just In Time, JIT) 时进行的优化进行详细的讲解,我们先来看看什么是即时编译。 运行期优化 即时编译 HotSpot 虚拟机内的即时编译器运作过程 为什么要使用解释器与编译器并存的架构? 为什么虚拟机要实现两个不同的 JIT 编译器? 什么是虚拟机的分层编译? 如何判断热点代码,触发编译? 什么是热点代码? 什么是 “多次” 执行? HotSpot 中每个方法的 2 个计数器 HotSpot 热点代码探测流程 热点代码编译的过程? 经典优化技术介绍 公共子表达式消除【语言无关】 数组范围检查消除【语言相关】 方法内联【最重要】 逃逸分析【最前沿】 基本行为 对于不会逃逸到方法或线程外的对象能进行优化 虚拟机参数 一个优化的例子 即时编译什么是即时编译? 当虚拟机发现某个方法或某段代...
虚拟机调优案例分析
发表于2023-05-17|JavaJVM
虚拟机调优案例分析 虚拟机调优案例分析 高性能硬件上的程序部署策略 服务系统经常出现卡顿(Full GC 时间太长) 除了 Java 堆和永久代之外,会占用较多内存的区域 从 GC 调优角度解决新生代存活大量对象问题(Minor GC 时间太长) 高性能硬件上的程序部署策略 补充:64 位虚拟机 在 Java EE 方面,企业级应用经常需要使用超过 4GB 的内存,此时,32 位虚拟机将无法满足需求,可是 64 位虚拟机虽然可以设置更大的内存,却存在以下缺点: 内存问题: 由于指针膨胀和各种数据类型对齐补白的原因,运行于 64 位系统上的 Java 应用程序需要消耗更多的内存,通常要比 32 位系统额外增加 10% ~ 30% 的内存消耗。 性能问题: 64 位虚拟机的运行速度在各个测试项中几乎全面落后于 32 位虚拟机,两者大概有 15% 左右的性能差距。 服务系统经常出现卡顿(Full GC 时间太长)首先 jstat -gcutil 观察 GC 的耗时,jstat -gccapacity 检查内存用量(也可以加上 -verbose:gc 参数获取 GC 的详细...
JVM常见参数设置
发表于2023-05-04|JavaJVM
JVM 常见参数设置 JVM 常见参数设置 内存设置 参数 设置经验 收集器设置 参数 内存设置参数 -Xms:初始堆大小,JVM 启动的时候,给定堆空间大小。 -Xmx:最大堆大小,如果初始堆空间不足的时候,最大可以扩展到多少。 -Xmn:设置年轻代大小。整个堆大小 = 年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为 64M,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun 官方推荐配置为整个堆的 3/8。 -Xss: 设置每个线程的 Java 栈大小。JDK 5 后每个线程 Java 栈大小为 1M。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在 3000~5000 左右。 -XX:NewRatio=n:设置年轻代和年老代的比值。如为 3,表示年轻代与年老代比值为 1:3。 -XX:MaxTenuringThreshold:设置垃圾最大年龄。如果设置为 0 的话,则年轻代对象不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用(即 ...
常用虚拟机性能监控工具
发表于2023-04-27|JavaJVM
常用虚拟机性能监控工具 常用虚拟机性能监控工具 JDK 命令行工具 补充:ps 命令 (Linux) JDK 命令行工具 其中的重中之重是 jstat 命令!而它最常用的参数就是 -gcutil,使用格式如下: 1 jstat -gcutil [pid] [intervel] [count] 输出如下: S0:堆上 Survivor space 0 区已使用空间的百分比 S1:堆上 Survivor space 1 区已使用空间的百分比 E:堆上 Eden 区已使用空间的百分比 O:堆上 Old space 区已使用空间的百分比 P:堆上 Perm space 区已使用空间的百分比 YGC:从程序启动到采样时发生的 Minor GC 次数 YGCT:从程序启动到采样时 Minor GC 所用的时间 FGC:从程序启动到采样时发生的 Full GC 次数 FGCT:从程序启动到采样时 Full GC 所用的时间 GCT:从程序启动到采样时 GC 的总时间 补充:ps 命令 (Linux)对于 jps 命令,其实没必要使用,一般使用 Linux 里的 p...
虚拟机字节码执行引擎_02
发表于2023-04-15|JavaJVM
基于栈的字节码解释执行引擎这个栈,就是栈帧中的操作数栈。 解释执行先通过 javac 将代码编译成字节码,虚拟机再通过加载字节码文件,解释执行字节码文件生成机器码,解释执行的流程如下: 1 词法分析 -> 语法分析 -> 形成抽象语法树 -> 遍历语法树生成线性字节码指令流 指令集分类基于栈的指令集 优点: 可移植:寄存器由硬件直接提供,程序如果直接依赖这些硬件寄存器,会不可避免的受到硬件的约束; 代码更紧凑:字节码中每个字节对应一条指令,多地址指令集中还需要存放参数; 编译器实现更简单:不需要考虑空间分配问题,所需的空间都在栈上操作。 缺点: 执行速度稍慢 完成相同的功能,需要更多的指令,因为出入栈本身就产生相当多的指令; 频繁的栈访问导致频繁的内存访问,对于处理器而言,内存是执行速度的瓶颈。 示例: 两数相加 1 2 3 4 iconst_1 // 把常量1入栈 iconst_1 iadd // 把栈顶两元素出栈相加,结果入栈 istore_0 // 把栈顶值存入第0个Slot中 基于寄存...
1…414243…50
avatar
xhj
相关学习笔记
文章
491
标签
109
分类
29
Follow Me
公告
欢迎来到我的博客
最新文章
Multi-Agent2026-06-03
Multi-Agent vs Single-Agent2026-06-02
Harness Engineering2026-06-01
25-架构模式总结2026-05-25
24-Skill-Plugin开发实战2026-05-24
分类
  • AI Agent40
  • Algorithm20
  • Backend Dev74
  • Big Data2
  • C/C++2
  • Claude Code71
  • Computer Basics18
  • Computer Network2
标签
Netty PyG Stacking Pandas Neural Networks PCA Maven Tornado PCV RabbitMQ Claude Code Heap Memory Tree dijkstra Redis GAT MySQL Computer Basics JVM Architecture Linear Regression List Kruskal Algorithm Object Identification Message Queue Gradient descent HBOS LOF Grid search OSI Embedding OLSE Prim NMF DataFrame AI Agent Kafka GNN Thread Compilation
归档
  • 六月 2026 3
  • 五月 2026 25
  • 四月 2026 16
  • 三月 2026 20
  • 二月 2026 10
  • 一月 2026 22
  • 十二月 2025 15
  • 十一月 2025 19
网站信息
文章数目 :
491
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By xhj框架 Hexo 8.1.2|主题 Butterfly 5.5.4