自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

uzong

好好学习,天天向上

  • 博客(21)
  • 资源 (5)
  • 收藏
  • 关注

原创 解读Class类文件结构

语言无关性 语言无关系的关键在 于 JVM 和 字节码;Java虚拟机不与任何编译成class字节码的语言绑定,只要能够编译成有效的Class字节码都解析执行。一、Class文件结构 任何一个Class文件都对应着唯一 一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成)。问题: 当出现超...

2018-04-29 18:16:16 2147 3

原创 查询一张表中是否有重复数据行

查询一张表中是否有重复数据行 业务情景: 查询一张表中是重复数据;或者统计有几个列是否存在重复。查询sql按照某些字段进行分组统计,例如,可以按照主键等进行分组,就能统计是否有重复行。语句如下:select A,B from table1 group by A,B having count(*) > 1;案例分析 分析 kx_kq_channelsu...

2018-04-26 14:35:28 12623

原创 notepad++ 找不到 plugin manager

解决notepad++ 找不到 plugin manager想在 notepad++ 安装Hex-Editor , 却找不到 plugin manager,是因为缺少plugins manager 这个插件,手动下载安装即可:(一)下载 plugin manager 插件:点击下载(二)解压,将文件PluginManager.dll 拷贝到notepad++ 安装目录下的plugi...

2018-04-24 23:55:29 1728

原创 JConsole可视化工具介绍

JConsole 可视化工具介绍一、 JConsole介绍1.1 JConsole描述 Jconsole (Java Monitoring and Management Console),一种基于JMX的可视化监视、管理工具。1.2 启动JConsole点击JDK/bin 目录下面的jconsole.exe 即可启动然后会自动自动搜索本机运行的所有虚拟机进程...

2018-04-23 22:55:55 81399 13

原创 JDK的命令行工具

JDK的命令行工具介绍主要介绍 jps、jstat、jinfo、jmap、jhat、jstatc 等几个JDK命令行工具(JDK1.8 HotSpot)数据依据来源 用工具来分析数据,以此来获取结果。下面包含四个数据依据。运行日志异常堆栈GC日志堆转储快照(heapdump/javacore文件)线程快照(threaddump/hprof文件)在J...

2018-04-22 00:13:04 3208 2

原创 JVM知识点大杂烩

JVM知识点 概况: 本文总结一些JVM杂乱的知识点,以供参考1.JVM内存结构1.1 java虚拟机运行时数据区图1.1.1 虚拟机栈(VM Stack)调用一个方法会启用(创建)一个栈帧。栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每个方法在执行的时候会创建一个栈帧(Stack Fram)java栈是一块线程私有的...

2018-04-19 00:35:11 579 2

原创 GC 日志、内存分配与回收策略介绍

GC 日志、内存分配和回收策略介绍 虚拟机之所以提供多种不同的收集器以及提供大量的调节参数,是因为只有根据实际应用需求、实现方式选择最优的收集方式才能获取最高的性能。没有固定的收集器、参数组合,也没有最优的调优方法。1 理解GC 日志描述: 每种虚拟机的日志格式不尽相同,但都维持共性1.1 GC日志注: 具体GC日志要参考具体的虚拟机和版本1.1....

2018-04-18 17:54:20 1851

原创 垃圾收集器(下)

垃圾收集器(下) 本文将介绍CMS和G1两款虚拟机1. CMS虚拟机1.1 基本描述:CMS(Concurrent Mark Sweep) 收集器是一种以获取最短回收停顿时间为目标的收集器特点: 老年代、并发收集、低停顿1.2 运行过程:从图可以看出需要经历四个过程:初始标记(CMS initial mark)并发标记(CMS co...

2018-04-17 00:02:00 203

原创 垃圾收集器(上)

垃圾收集器(上) 描述: java虚拟机规范并未对垃圾收集器的具体实现做规范,所以不同厂商、不同版本虚拟机实现不一致;但一般都会提供参数能够进行垃圾回收器之间的组合。前言注: 基于JDK1.7Update14之后的HotSpot虚拟机 新生代收集器:Serial、ParNew、Parallel Scavenge; 老年代收集器:Serial Old、Paralle...

2018-04-15 19:25:21 519

原创 枚举根节点

GC Roots 枚举根节点 描述:GC Roots 被虚拟机用来判断对象是否存活。一、可以做为GC Roots的对象 位置 对象 虚拟机栈 栈帧中的本地变量表 本地方法栈 JNI(一般指的Native方法)引用的对象 方法区 静态属性引用对象 方法区 常量引用对象二、枚举根节点 可达性分析需要考...

2018-04-15 16:13:21 1798

原创 垃圾回收算法介绍

垃圾回收算法 本文简单介绍 标记--清除算法(Mark-Sweep) ,复制算法(Copying),标记--整理算法(Mark-Compact),分代收集算法(Generation Collection) 四种垃圾回收算法。一、标记–清除算法(Mark-Sweep)二、复制算法(Copying) 新生代中的对象98%都是“朝生夕死” ;所以并不需要按1:1...

2018-04-14 22:24:18 156

原创 如何确定对象为垃圾

如何确定对象为垃圾 通过引用计数、正向可达来判断对象是否是垃圾一、 引用计数 有一个引用,计数就添加1,失去引用就减一, 但是: 会有循环引用问题二、 正向可达 从roots对象(根对象)计算可达的对象。HotSpot采用了这种算法。 基本思路就是通过一系列成为 GC Roots 的对象作为起始点,向下搜索,所经过的路径叫做 引用链。 如果一...

2018-04-14 16:04:24 771

原创 JVM中OutOfMemoryError异常案例一方法区和直接内存

内存溢出之方法区和直接内存的介绍 通过实验来介绍方法区和直接内存区 的OOM一、方法区注:在JDK1.6 及以前版本中,由于常量池分配在永久代内,可以通过-XX:PermSize 和 -XX:MaxPermSize 限制方法区的大小,从而间接限制其中常量池的容量。 注意JDK1.8已经使用元空间 来代替永久区,所以在1.8中,这两个参数将被忽略,而改使用-XX:Metaspa...

2018-04-14 14:04:28 1784

原创 JVM中OutOfMemoryError异常案例一之栈溢出

虚拟机栈和本地方法栈溢出 在HotSpot 虚拟机中不区分 虚拟机栈和本地方法栈,对应HotSpot 来说,虽然设置了 -Xoss(设置本地方法栈大小) 参数,但不起作用, 只有 -Xss参数设置有效1. 两种异常如果线程请求的栈深度大于虚拟机所允许的最大深度,则抛出StackOverflowError异常如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMe...

2018-04-13 00:32:28 1370

原创 JVM中OutOfMemoryError异常案例一之堆溢出

JVM中OutOfMemoryError异常案例一之堆溢出 介绍java堆的OOM1. java堆溢出 Java堆存储对象实例,只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么当对象到达堆内存允许的最大容量时就会报异常。1.1. 参数设置-XX:+HeapDumpOnOutOfMemoryError -XX:...

2018-04-12 23:13:12 1210 2

原创 JVM 中对象的访问定位

JVM 中对象的访问定位 对句柄访问对象、直接指针访问对象 的简单介绍主流的两种方式:句柄访问对象直接指针访问对象通过句柄访问对象: 注: 句柄池中包含了实例数据和类型数据,类型数据在方法区中直接指针访问对象 两种方式有各自优势:对于方式一而言,reference中存储的地址是稳定的地址,对象移动(垃圾回收时)不需要修改其值,仅需要修改...

2018-04-09 23:26:29 455

原创 JVM中对象的内存布局

JVM中对象的内存布局 简单介绍对象的内存布局对象的内存分布说明:1. 对象头Mark Word 非固定结构,32位虚拟机占32位,64位虚拟机占64位(占64位条件是没有开启压缩指针)类型指针,并非一定要有,与对象访问方法有关如果是数组,无法通过元数据信息确定java对象大小,这个时候就需要记录长度。2. 实例数据: 真正有效的数据存储顺...

2018-04-09 22:59:26 422

原创 对象的创建过程

对象的创建 简单介绍对象的创建过程1. JVM中对象的创建注意:普通Java对象的创建,不包括数组和Class对象等 的过程。 数组不能直接通过元数据本身信息确定大小,在对象头存储其长度值。分配策略: 针对多个线程则需要保证安全策略方法有二:对分配这个动作做同步策略(采用 CAS + 失败重试)使用本地线程分配缓冲(Th...

2018-04-09 22:00:26 154

原创 java虚拟机运行时数据区(下)

java虚拟机运行时数据区(下) 简单介绍 堆,方法区 和 直接内存1. java堆(java heap)1.1 描述: 几乎所有的对象都存放在堆中,且堆是自动化管理,通过垃圾回收机制,垃圾对象会自动清理,不需要手动释放1.2 特征:内存最大的一块,一般也是针对这块进行性能调优存对象所有线程共享注:堆解构会有详细介绍。2. 方法区...

2018-04-08 20:16:38 173

原创 java虚拟机运行时数据区(上)

java虚拟机运行时数据区(上)注意:JDK1.7概况主要讲解虚拟机运行时数据区,看图说话。 1. 程序计数器(Program Counter Register)程序计数器相对于一个团队的指挥,团队指挥人数肯定少,所以程序计数器占比内存也小,但是却很重要;每个团队都有自己的指挥,不能说团队之间公用指挥,所以指挥对团队而言是私有的,所以程序计数器对 线程而言就是私...

2018-04-07 19:48:33 281

原创 JDK、JRE 和 JVM的区别

JDK、JRE 和 JVM的区别参考:Java Platform Standard Edition 7 Documentation 下图简单的展示了三者在组成上的区别简单总结:JDK > JRE > JVM 包含关系 JVM 最底层,编译解析字节码JRE 运行时环境 包括JVM ,类库、提供运行程序的组件运行程序,仅JRE足以JDK 包括...

2018-04-06 23:40:48 314

postgresql_backups.sh

shell+crontab制作postgresql数据库定期备份脚本;利用pg_dump这个postgresql自带的备份工具

2019-12-22

postgresql_backup.bat

如果在windows上安装了postgresql,可以通过点击bat文件运行,一键备份数据库,可以跳过创建文件夹、输入密码等过程。

2019-12-22

pg_dump和pg_restore案例应用相关命令.sql

pg_dump和pg_restore案例,其中简单罗列了一些应用过程中可能用到的sql语句。

2019-08-05

深入理解Java虚拟机JVM高级特性与最佳实践(第2版)含源码 + Java虚拟机规范(Java SE 7)

深入理解Java虚拟机JVM高级特性与最佳实践(第2版)含源码 + Java虚拟机规范(Java SE 7)

2018-06-04

《疯狂Java讲义》第三版注解处理器代码(下载需要配合博客,不建议直接下载)

个人博客使用的代码(不建议下载);博客地址:https://blog.csdn.net/qq_31156277/article/details/

2018-05-18

空空如也

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

TA关注的人

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