摘要: 概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, 阅读全文
posted @ 2018-03-30 21:23 Janti 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 类的实例化过程 有父类的情况 1. 加载父类静态 1.1 为静态属性分配存储空间并赋初始值 1.2 执行静态初始化块和静态初始化语句(从上至下)2. 加载子类静态 2.1 为静态属性分配存储空间 2.2 执行静态初始化块和静态初始化语句(从上至下)3. 加载父类非静态 3.1 为非静态块分配空间 3 阅读全文
posted @ 2018-03-30 13:18 Janti 阅读(459) 评论(0) 推荐(0) 编辑
摘要: Java内存结构: JVM内存结构主要是有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分为三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配; 方法区存储类信息、常量、静态变量等 阅读全文
posted @ 2018-03-30 09:06 Janti 阅读(484) 评论(0) 推荐(1) 编辑
摘要: 介绍 在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署。 2. 方便项目启动,不需要下载Tomcat或者Jetty 针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点 针对上述的优化点来说,首先 阅读全文
posted @ 2018-03-30 08:39 Janti 阅读(25734) 评论(17) 推荐(13) 编辑
摘要: 3.26-4.1 JVM 虚拟机的内容写五篇博客 解决以下问题: 1. Java的内存模型以及GC算法 2. jvm性能调优都做了什么 3. 介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明 4. 介绍GC 和GC Root不正常引用。 5. 自己从classload 加载方式,加载 阅读全文
posted @ 2018-03-27 21:20 Janti 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 什么是注解: Annotation注解就Java提供了一种元程序中元素中的元素关联的任何信息和任何元数据(metadata)的途径和方法。 Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annota 阅读全文
posted @ 2018-03-04 20:42 Janti 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 说在前面的话 朋友,你经历过部署好的服务突然内存溢出吗? 你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗? 你经历过一个BUG,百思不得其解,头发一根一根脱落的烦恼吗? 我知道,你有过! 但是我还是要来说说我的故事.................. 背景: 有一个项目做一个系统,分客户端和 阅读全文
posted @ 2018-03-01 21:55 Janti 阅读(13064) 评论(23) 推荐(69) 编辑
摘要: Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 随便哪个盘,解压后,将文件夹重新命名为 r 阅读全文
posted @ 2018-02-28 09:14 Janti 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 背景: 最近的一个项目需要用到招标,临时加了给我们的系统增加了一个性能需求,多少呢? 一秒钟300次NTP(不知道ntp的同学可以百度一下),平均3ms一次啊,没测试过,心里没有底。(⊙o⊙)… 情境介绍: 系统是一个时间服务器系统,客户端就是window系统,或者其他的一些服务器,来向时间服务器同 阅读全文
posted @ 2018-01-19 09:10 Janti 阅读(6829) 评论(17) 推荐(22) 编辑
摘要: 前言 多线程的异步执行方式,虽然能够最大限度发挥多核计算机的计算能力,但是如果不加控制,反而会对系统造成负担。线程本身也要占用内存空间,大量的线程会占用内存资源并且可能会导致Out of Memory。即便没有这样的情况,大量的线程回收也会给GC带来很大的压力。 为了避免重复的创建线程,线程池的出现 阅读全文
posted @ 2018-01-07 23:35 Janti 阅读(134833) 评论(17) 推荐(152) 编辑