JAVA
请叫我晁盖_
积跬至千里,积怠至深渊。
展开
-
java成员变量、局部变量、静态变量等问题
java成员变量、局部变量、静态变量等问题知乎:https://www.zhihu.com/question/294221894/answer/493705474CSDN:https://blog.csdn.net/du_minchao/article/details/48881637转载 2022-02-18 15:06:51 · 147 阅读 · 0 评论 -
jvm垃圾回收之Eden、S0、S1、Old的关系
垃圾回收Eden、S0、S1转载 2022-01-25 15:15:57 · 987 阅读 · 0 评论 -
Jvm 常见配置参数
java虚拟机配置参数转载 2022-01-18 16:12:16 · 388 阅读 · 0 评论 -
部署jenkins,采用普通用户tomcat来启动tomcat服务
因安全要求,不允许使用root用户启动tomcat故:https://blog.51cto.com/wujianwei/2106180原创 2021-08-09 22:05:14 · 158 阅读 · 0 评论 -
tomcat的类加载架构
tomcat的类加载架构PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]主流的Java Web服务器,如Tomcat、Jetty、Weblogic、Websphere或其他服务器。在Tomcat 5.x以前,其结构目录中有3组目录(common、server、shared)可以存放Java类库,Tomcat 6.x以后三个目录合并为了lib目录。另外还可以加上Web原创 2018-01-28 23:26:48 · 308 阅读 · 0 评论 -
Jvm系列笔记总结
Jvm系列笔记总结PS : 本文乃学习整理参考而来。主要参考于国内权威相关书籍 《深入理解java虚拟机高级特性》 分以下模块总结 Jvm笔记总结(一):Java内存区域概况 Jvm笔记总结(二):垃圾收集策略 Jvm笔记总结(三):常用垃圾收集算法 Jvm笔记总结(四):垃圾收集器 Jvm笔记总结(五):内存分配与回收策略 Jvm笔记总结(六):JDK命令原创 2018-01-21 17:05:32 · 577 阅读 · 0 评论 -
Jvm笔记总结(十二):Java语法糖
Jvm笔记总结(十二):Java语法糖PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]语法糖 可以看做是编译器实现的一些“小把戏”,这些他们或许能提高效率,提升语法的严谨性,减少编码出错等,目的是为了让程序员写代码的效率提升。主要体现有: 1.泛型与类型擦除 2.自动装箱、拆箱与遍历循环 3.条件编译1.泛型与类型原创 2018-01-29 10:12:36 · 384 阅读 · 0 评论 -
Jvm笔记总结(十三):HotSpot中的JIT编译器——Java运行期优化
Jvm笔记总结(十三):HotSpot中的JIT编译器——Java运行期优化PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ] 在主流商用虚拟机中,HotSpot和J9可以采用混合模式(解释器与编译器配搭使用),而JRockit内部没有解释器,采用纯编译模式。 Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块运行原创 2018-01-29 17:43:16 · 1142 阅读 · 0 评论 -
Jvm笔记总结(十四):Java内存模型
Jvm笔记总结(十四):Java内存模型PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]硬件效率与一致性 在计算机中绝大多数运算任务都不可能只靠处理器“计算”完成,一般至少要与内存交互,如读取和存储,这部分I/O操作是很难消除的。由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现在计算机会加入一层读写速度尽可能接近处理器运算速度的高速原创 2018-01-29 23:42:16 · 290 阅读 · 0 评论 -
Jvm笔记总结(十五):Java线程
Jvm笔记总结(十五):Java线程PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]Java线程调度线程调度是指系统为线程分配处理器使用权的过程,主要调度方式有两种:分别是协同式调度和抢占式调度。协同式线程调度:线程的执行时间有线程本身控制,线程把自己的工作执行完了之后,要主动通知系统切换到另外一个线程上。很明显的缺点:线程执行时间不可控制,如果编写的程序有原创 2018-01-30 00:05:42 · 227 阅读 · 0 评论 -
Jvm笔记总结(十六):线程安全与锁优化
Jvm笔记总结(十六):线程安全与锁优化PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]线程安全:当多个线程访问一个对象时,如果不用考虑这个线程在运行时环境下的调度和交替执行,也不需要进行额外同步,而调用这个对象的行为都可以获得正确的结果,那这个对象就线程安全的。所以线程安全是建立在对共享数据的安全操作保证,如果数据不存在共享,那数据(代码)天生就是安全的。线程原创 2018-01-30 01:38:21 · 392 阅读 · 0 评论 -
Java跨平台性
Java跨平台性PS : 本文乃学习整理参考而来 前言:Java优秀的跨平台性,和其语言特性紧密相连;首先得说程序设计语言的分类,分为:编译型语言、解释型语言。程序设计语言分类描述:程序执行时的基本表示是①实际计算机上的机器语言还是②解释器解释才能得到的机器语言(虚拟机的机器语言),可以由此将程序设计语言分为①编编译型语言和②解释型语言。 由于计算机只认识机器语原创 2018-01-21 17:50:51 · 474 阅读 · 0 评论 -
Spring源码分析笔记
Spring源码分析笔记本文参考学习自[Spring:源码解读Spring IOC原理]总结以下几个问题: 1.什么是IOC/DI? 2.BeanDefinition、BeanFactory、FactoryBean是什么? 3.什么是IOC容器的初始化?初始化包括哪些内容? 4.依赖注入发生的时间?1.什么是IOC/DI?IOC(Inversio...原创 2018-02-27 14:06:30 · 421 阅读 · 0 评论 -
java异常与@Transactional回滚
java异常与@Transactional概述:java的异常分为Error 和 Exception 。这两类都是接口Throwable 的子类。异常分类方式: 1.运行时异常 和 非运行时异常2.可查的异常(checked exceptions)和 不可查的异常(unchecked exceptions)总结 : 1. 基本除IOException和SQLExceptio...原创 2018-07-03 14:14:47 · 7547 阅读 · 3 评论 -
什么是Hash以及HashMap
哈希总结总结:1.哈希又称散列,哈希算法也称散列算法2.哈希一般指哈希算法,即将任意值(如:‘纸上得来终觉浅’)经过hash算法可得到一个固定长度的组合串(字母和数字组成),如下图:MD5与SHA-256为哈希算法中不同的输出标准。3.哈希算法是数据查找技术中最经典的算法之一。所以有用哈希算法建立索引值,加快查询速度。4.哈希算法具有不可逆性。5.哈希存在"哈希碰撞"。假设f是哈希...原创 2019-02-22 14:43:20 · 461 阅读 · 0 评论 -
Jvm笔记总结(九):类加载器
Jvm笔记总结(九):类加载器PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让程序自己决定如何获取所需的类。实现这个动作的代码模块称为“类加载器”。Java中的任意一个类的唯一性,都需要加载他的类加载器和这个类本身一同确定。换原创 2018-01-28 23:04:32 · 216 阅读 · 0 评论 -
Jvm笔记总结(十一):基于栈的字节码解释执行引擎
Jvm笔记总结(十一):基于栈的字节码解释执行引擎PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]解释执行:Java语言经常被人们定位为“解释执行”的语言,在Java初生的JDK1.0时代,这种定义是比较准确的。但当前主流的虚拟机中都包含了即时编译后,Class文件中的代码到底是能被解释执行还是编译执行,只有虚拟机自己才能判断。这时候再笼统的说“解释执行”,对整个J原创 2018-01-28 23:05:33 · 546 阅读 · 0 评论 -
Jvm笔记总结(十):虚拟机字节码执行引擎
Jvm笔记总结(十):虚拟机字节码执行引擎PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]执行引擎是Java虚拟机最核心的组成部分之一。虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能执行那些不原创 2018-01-28 23:04:57 · 237 阅读 · 0 评论 -
String.intern()分析
String.intern()分析分析代码如下:String s = new String("1"); s.intern(); String s2 = "1"; System.out.println(s == s2); String s3 = new String("1") + new String("1");原创 2018-01-21 17:05:52 · 223 阅读 · 0 评论 -
Jvm笔记总结(一):Java内存区域概况
Java内存区域概况PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]Java虚拟机在执行Java程序过程中,会把所管理的内存划分为几个不同的数据区域(程序计数器、虚拟机栈、堆、方法区、本地方法栈),统称为运行时数据区域。如下图:1. 程序计数器(Program Counter Register):当前线程执行代码的行号指原创 2018-01-21 17:07:30 · 426 阅读 · 0 评论 -
finalize()分析
finalize()分析PS : 本文乃学习整理参考而来 。生存还是死亡: 即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候他们暂时处于“缓刑”阶段。要真正确定一个对象死亡,至少要经理两次标记过程:如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行finalize原创 2018-01-22 10:11:57 · 466 阅读 · 0 评论 -
Jvm笔记总结(三):常用垃圾收集算法
Jvm笔记总结(三):常用垃圾收集算法PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]常用垃圾收集算法 : 标记-清除 复制算法 标记-整理算法 分代收集算法 1.标记-清除:最基础的收集算法“标记-清除”(Mark-Sweep)算法,算法分为“标记”和“清除”两个阶段,首先标记需要回收的对象,在标记完成后统一回收所有被标记的对像原创 2018-01-22 10:14:10 · 330 阅读 · 0 评论 -
Jvm笔记总结(二):垃圾收集策略
Jvm笔记总结(二):垃圾收集策略PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]垃圾回收: 即收集已经“死去”的对象。Java内存运行时数据区中程序计数器、虚拟机栈、本地方法栈三个部分的随线程而生,随线程而灭。每个栈帧中分配多少内存在类结构确定时就是可知的,因此这三个区域的内存分配和回收都具备确定性,不需过多考虑回收问题,因为方法结束或线程结束时原创 2018-01-22 10:07:13 · 248 阅读 · 0 评论 -
理解GC日志
理解GC日志PS : 本文乃学习整理参考而来 以下是案例输出:33.125:[GC[DefNew:3324K->152K(3712K),0.0025925 secs] 3324K->152K(11904K),0.0031680 secs]100.667:[Full GC[Tenured:0K->210K(10240K),0.0149142 secs] 4603K->210K(1原创 2018-01-23 00:35:59 · 210 阅读 · 0 评论 -
Jvm笔记总结(五):内存分配与回收策略
Jvm笔记总结(五):内存分配与回收策略PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]回收策略 Minor GC、 Major GC/Full GC Minor GC:发生在新生代的GC,发生非常频繁,消耗时间短。 Major GC:发生在老年代GC,消耗时间一般为新生代GC的10倍,甚至更多(1000倍)。[关于新生代GC为什么快于原创 2018-01-23 19:46:05 · 265 阅读 · 0 评论 -
Jvm笔记总结(四):垃圾收集器
Jvm笔记总结(四):垃圾收集器PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]垃圾收集器在HotSpot中垃圾收集器分类: 1.Serial 2.ParNew 3.Parallel Scavenge 4.Serial Old (PS MarkSweep) 5.Parallel Old 6.CMS(Concurrent Ma原创 2018-01-23 00:16:03 · 452 阅读 · 0 评论 -
Jvm笔记总结(六):JDK命令工具
Jvm笔记总结(六):JDK命令工具PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]jps(JVM Process Status):虚拟机进程状况命令工具 jps命令格式:jps [options] [hostid] 格式解释:jps可以通过RMI协议查询开启了RMI服务的远程虚拟进程状态,hostid为RMI注册表中注册的主机名。 常用命令: jps -v原创 2018-01-24 18:39:29 · 328 阅读 · 0 评论 -
Jvm笔记总结(七):Class文件结构
Jvm笔记总结(七):Class文件结构PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]class文件是平台无关性的基础之一。 平台无关性和语言无关性:Java的一个非常著名的宣传口号:“一次编写,到处运行(Write Once,Run Anywhere)”。Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种原创 2018-01-25 16:07:14 · 406 阅读 · 0 评论 -
字节码指令
字节码指令PS : 本文乃学习整理参考而来 字节码指令简介: Java虚拟机的指令由一个字节长度的、代表着某种特定含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。 由于Java虚拟机采用面向操作数栈而不是寄存器的架构,所以大多数的指令都不包含操作数,只有一个操作码。由于限制了Java虚拟机操作码的长度为一个字节,所原创 2018-01-25 17:18:46 · 412 阅读 · 0 评论 -
Jvm笔记总结(八):虚拟机类加载机制
Jvm笔记总结(八):虚拟机类加载机制PS : 本文乃学习整理参考而来 ,目录参考 [ Jvm系列目录 ]概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类的加载、连接、和初始化都是在程序运行期间原创 2018-01-28 23:04:06 · 295 阅读 · 0 评论