java
文章平均质量分 78
霸刀苍云
java程序员
展开
-
Java 面试 ->jvm
jvm内存区域:方法区,堆,程序计数器,虚拟机栈,本地方法栈。方法区,堆属于线程共享;程序计数器,虚拟机栈,本地方法栈属于线程私有的; 方法区:方法区属于线程共享的内存区域,主要存储已经被虚拟机加载的类信息,常量,静态变量,编译器编译后的代码;当方法区无法满足内存分配时,会抛出OutOfMemoryError异常;运行时常量池就在方法区内,主要是用于存放编译期生成的各种字面量和符号引用,这部分内容将类在加载后进入方法区的运行时常量池中存放。运行时常量池相对于Class文件常量池的另外一个重...原创 2021-02-22 13:50:55 · 93 阅读 · 0 评论 -
java虚拟机的监控以及诊断工具
1. jps将打印所有正在运行的 Java 进程。2. jstat允许用户查看目标 Java 进程的类加载、即时编译以及垃圾回收相关的信息。它常用于检测垃圾回收问题以及内存泄漏问题。3.jmap允许用户统计目标 Java 进程的堆中存放的 Java 对象,并将它们导出成二进制文件。4.jinfo将打印目标 Java 进程的配置参数,并能够改动其中 manageabe 的参数。5...原创 2020-01-20 10:20:34 · 177 阅读 · 0 评论 -
spring boot自动配置
wait原创 2019-06-13 22:24:25 · 91 阅读 · 0 评论 -
java类加载机制
1. JAVA类加载分为三步: 加载、连接 、初始化一、加载将位于硬盘中的class文件加载到内存中二、连接将已经加载到内存中的二进制数据合并到虚拟机的运行环境中去验证准备:将class类的静态变量分配内存空间并赋予默认值,int-0,对象-null解析:将类的二进制数据中的符号引用变为直接引用,也就是说描述变为内存地址三、初始化将类的静态变量赋予初始化,...转载 2019-08-26 22:38:58 · 115 阅读 · 0 评论 -
java 线程池
一、ThreadPoolExecutor目录一、ThreadPoolExecutor1. 参数:2. 常用方法二、Executors三、Executor框架 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...原创 2019-08-28 00:23:31 · 256 阅读 · 0 评论 -
java中的锁
锁是用来控制多个线程访问资源的方式。在Lock接口出现之前,java程序是靠synchronize关键字实现锁功能的,它是显式的获取锁和释放锁,拥有了获取锁和释放锁的可操作性,可中断以及延时获取锁等多种synchronize所不具备的特性。Lock接口的实现都是通过自定义了一个队列同步器(AbstractQueneSynchronizer)的子类来实现的。队列同步器使用了一个int成员变量...原创 2019-09-02 22:59:34 · 142 阅读 · 0 评论 -
AbstractQueuedSynchronizer AQS 队列同步器
AQS使用了一个int成员变量来表示同步状态,通过内置的FIFO队列来完成资源的获取一、同步状态 /** * The synchronization state. */ private volatile int state;(1.6后新加入了变种的同步队列器主要区别在与同步状态long表示)维护了以下三种方式访问stategetState()...原创 2019-09-03 23:27:54 · 176 阅读 · 0 评论 -
二叉树、平衡二叉树、红黑树、跳表
。。。原创 2019-10-01 16:32:38 · 189 阅读 · 0 评论 -
mybatis缓存
一级缓存:Mybatis 连接数据库时,会开启一个数据库会话, 创建一个新的SqlSession 对象 SqlSession中有一个Executor 对象,该对象持有一个新的 PerpetualCache 对象,会话结束后,SqlSession以及内部的Executor 对象PerpetualCache 对象会也一并释放掉如果SqlSession对象调用了close() 将 释...原创 2019-10-01 16:34:19 · 92 阅读 · 0 评论