自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 3-内容格式化

重定向符号实践1 - 覆盖式重定向实践2 - 追加式重定向。

2022-10-26 15:49:13 1043

原创 2-shell变量

变量定义、变量分类变量包括三部分:变量名 - 不变的变量值 - 变化的赋值动作 - 变量名指向变量值表现样式:变量名=变量值变量的全称应该成为变量赋值,简称变量,在工作中,我们一般只xx是变量,其实是是将这两者作为一个整体来描述了。准确来说,我们一般所说的变量其实指的是:变量名。命名规范1 名称有意义2 名称细节命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使用标点符号。

2022-10-26 14:14:33 523 1

原创 1-shell简介

基础知识、编程语言运维、shell语言。

2022-10-25 18:25:41 497

原创 第4章 虚拟机性能监控、故障处理工具(上)

经过前面两章对于虚拟机内存分配与回收技术各方面的介绍,相信读者已经建立了一个比较系统、完整的理论基础。理论总是作为指导实践的工具,把这些知识应用到实际工作中才是我们的最终目的。接下来的两章,我们将从实践的角度去认识虚拟机内存管理的世界。给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括但不限于异常堆栈、虚拟机运行日志、垃圾收集器日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。基础工具。..

2022-07-28 14:12:41 242

原创 第3章 垃圾收集器与内存分配策略7

Java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存。关于回收内存这方面,笔者已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们来探讨一下关于给对象分配内存的那些事儿。对象的内存分配,从概念上讲,应该都是在堆上分配(而实际上也有可能经过即时编译后被拆散为标量类型并间接地在栈上分配)。在经典分代的设计下,新生对象通常会分配在新生代中,少数情况下(例如对象大小超过一定阈值)也可能会直接分配在老年代。对象分配的规则并不是固定的,《J

2022-06-24 11:50:31 106

原创 第3章 垃圾收集器与内存分配策略6

HotSpot虚拟机提供了种类繁多的垃圾收集器,选择太多反而令人踌躇难决,若只挑最先进的显然不可能满足全部应用场景,但只用一句“必须因地制宜,按需选用”又未免有敷衍的嫌疑,本节我们就来探讨一下如何选择合适的垃圾收集器。在G1、Shenandoah或者ZGC这些越来越复杂、越来越先进的垃圾收集器相继出现的同时,也有一个“反其道而行”的新垃圾收集器出现在JDK 11的特征清单中——Epsilon,这是一款以不能够进行垃圾收集为“卖点”的垃圾收集器,这种话听起来第一感觉就十分违反逻辑,这种“不干活”的收集器要它何

2022-06-24 11:47:30 230

原创 第3章 垃圾收集器与内存分配策略5

HotSpot 的垃圾收集器从 Serial 发展到 CMS 再到 G1,经历了逾二十年时间,经过了数百上千万台服务器上的应用实践,已经被淬炼得相当成熟了,不过它们距离“完美”还是很遥远。怎样的收集器才算是“完美”呢?这听起来像是一道主观题,其实不然,完美难以实现,但是我们确实可以把它客观描述出来。衡量垃圾收集器的三项最重要的指标是:内存占用(Footprint)、吞吐量(Throughput)和延迟(Latency),三者共同构成了一个“不可能三角”。三者总体的表现会随技术进步而越来越好,但是要在这三个方

2022-06-24 11:42:33 134

原创 第3章 垃圾收集器与内存分配策略4

如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。《Java虚拟机规范》中对垃圾收集器应该如何实现并没有做出任何规定,因此不同的厂商、不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别,不同的虚拟机一般也都会提供各种参数供用户根据自己的应用特点和要求组合出各个内存分代所使用的收集器。本节标题中“经典”二字并非情怀,它其实是讨论范围的限定语,这里讨论的是在JDK 7 Update 4之后(在这个版本中正式提供了商用的G1收集器,此前G1仍处于实验状态)、JDK 11正式发布之前,Oracl

2022-06-24 11:41:07 122

原创 第3章 垃圾收集器与内存分配策略3

3.2、3.3节从理论原理上介绍了常见的对象存活判定算法和垃圾收集算法,Java虚拟机实现这些算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。本章内容主要是为了稍后介绍各款垃圾收集器时做前置知识铺垫,如果读者对这部分内容感到枯燥或者疑惑,不妨先跳过去,等后续遇到要使用它们的实际场景、实际问题时再结合问题,重新翻阅和理解我们以可达性分析算法中从GC Roots集合找引用链这个操作作为介绍虚拟机高效实现的第一个例子。固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与

2022-06-24 11:39:51 185

原创 第3章 垃圾收集器与内存分配策略2

重点介绍分代收集理论和几种垃圾收集算法思想及其发展过程。分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,它建立在两个分代假说之上:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象熬过垃圾收集过程的次数)分配到不同的区域之中存储。在Java堆划分出不同的区域之后一般至少会把Java堆划分为新生代(Young Generation)和老年代(Old Generation)两个区域分代收集理论第三条经验法则:依据这条假说,我们就不应再为了少量的跨代引用去扫描整个老年代

2022-06-24 11:38:37 186

原创 第3章 垃圾收集器与内存分配策略1

垃圾收集–Garbage Collection,简称 GC需要完成三件事:在堆中存放着Java时间中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(就是不可能再被任何途径使用的对象)了。算法描述:缺点:算法描述:在JDK 1.2版之前,Java里面的引用是很传统的定义:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表某块内存、某个对象的引用。JDK 1.2 后,Java 中有

2022-06-24 11:37:20 110

原创 第3章 垃圾收集器与内存分配策略

垃圾收集–Garbage Collection,简称 GC需要完成三件事:在堆中存放着Java时间中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(就是不可能再被任何途径使用的对象)了。算法描述:缺点:算法描述:在JDK 1.2版之前,Java里面的引用是很传统的定义:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表某块内存、某个对象的引用。JDK 1.2 后,Java 中有

2022-06-22 18:01:09 164

原创 第2章 Java内存区域与内存溢出异常

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,外面的人想进去,里面的人想出来。2.1 概述对于C、C++程序的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”,又是从事最基础工作的劳动人民——既拥有每一个对象的“所有权”,又担负着每一个对象生命从开始到终结的维护责任。对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写裴漼的delete/free代码,不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不过,也正是

2022-05-07 17:44:11 118

原创 第1章 走近Java

世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程

2022-04-22 09:29:11 140

原创 使用JAXB实现xml转Java对象

JAXBjava xml bindMarshaller 和 UnmashallerMashallerUnmashallerjava xml bindMarshaller 和 UnmashallerMashallerUnmashallerUnmarshaller 类管理将 XML 数据反序列化为新创建的 Java 对象的过程,可选择在解组时验证 XML 数据。 它为许多不同的输入类型提供了重载解组方法。从文件解组: JAXBContext jc = JAXBContext.newInstance

2021-09-01 10:49:19 851

原创 [Java 集合] LinkedList源码分析

[Java 集合] LinkedList源码分析源码基于jdk 11LinkedList是一个以双向链表实现的List,它除了作为List使用,还可以作为双端队列或者栈来使用一、属性 //元素的个数 transient int size; //头节点 transient LinkedList.Node<E> first; //尾节点 transient LinkedList.Node<E> last; private sta

2021-09-01 10:44:56 105

原创 [Java 集合] ArrayList源码分析

[Java 集合] — ArrayList源码分析源码基于JDK 11public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable{ }一、属性 private static final long serialVersionUID = 8683452581122892189L; //默认容量 private static final i

2021-08-26 18:01:48 101

原创 JWT(JSON Web Token)原理

JWT(JSON Web Token)原理JWT是目前流行的跨域身份验证解决方案。这里给大家介绍JWT的原理和用法。跨域身份验证Internet服务无法与用户身份验证分开。传统模式过程如下:1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话(session)中。3.服务器向用户返回session_id,session信息都会写入...

2018-12-02 10:45:35 3123 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除