jdk
文章平均质量分 77
不一样的程序员
纸上得来终觉浅,绝知此事要躬行
展开
-
Unsupported major.minor version 52.0解决方法
情况 最近在研究spring源码,在执行AnnotationBeanWiringInfoResolverTests类中的testResolveWiringInfo测试方法时, 控制台出如下异常: 原因 高版本JDK编译的class不能在低版本的jvm虚拟机下运行,否则就会报这类错,我下载的spring源码应该是基于jdk1.8 编译,而我本机安装的是jdk1原创 2017-10-30 12:10:14 · 1307 阅读 · 0 评论 -
GC 技术解析
介绍 G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用。G1收集器是工作在堆内不同分区上的收集器,分区既可以是年轻代也可以是老年代,同一个代的分区不需要连续。并且每个代分区的数量是可...转载 2018-06-20 10:39:45 · 2068 阅读 · 0 评论 -
JVM学习之jstat使用方法
Jstat是JDK自带的一个轻量级工具,主要用JVM内建的指令对java应用程序的资源和性能进行实时的监控。基本语法 jstat <option> [-t] [-h] <pid> <interval> <count> 参数解释:option 可以从下面参数中选择-class &nbs...转载 2018-03-28 15:00:18 · 285 阅读 · 0 评论 -
jvmwi3260sr7-20091125_47905 (IBM Corporation)
问题描述在整理公司工具jar包时,无意间发现其中有一个jar包的manifest.mf 配置文件中的配置信息Created-By: jvmwi3260sr7-20091125_47905 (IBM Corporation)而其他的jar中的Created-By配置基本上是类似这种格式Created-By: 1.6.0_43-b01 (Sun Microsystems Inc....原创 2018-03-02 10:14:31 · 245 阅读 · 0 评论 -
jdk1.6,jdk1.7,jdk1.8安装共存问题
一次心血来潮,决心研究一下,电脑上面安装3个版本的JDK,于是开始了测试,其实也不能说是安装3个版本的,1.6版本的是公司给的压缩包形式的,1.7和1.8版本的是我自己在电脑上面安装的,首先遇到的问题就是,当1.7安装好以后,(1.7的安装的环境变量配置自行百度吧)我是用cmd查看...转载 2018-02-23 14:37:21 · 12929 阅读 · 0 评论 -
jdk1.8版本切换至1.6遇到的问题&分析
背景由于工作原因,我的电脑上目前安装了jdk1.6和jdk1.8 两个版本,并且都是安装版本。 之前因为一些原因(苏宁对接sdk,阿里开发规约)本地默认安装的是jdk.18版本, 但是公司的大部分项目都是用jdk1.6编译,所以后来我本地的默认版本采用了1.6,切换至1.6后,发现阿里Java编码插件无效,经查阅文档得知,阿里Java规划的jdk版本至少是1.8。参考:http://...原创 2018-02-23 12:15:07 · 19452 阅读 · 1 评论 -
一次JVM性能调优记录
前言填别人留下来的坑其实挺无奈的,会被搞的特别烦,特别是我这种要填三四个人留下来的坑的时候,满满的都是无奈。幸好的是填坑也可以选择一种更能提升自己的方式来填。这次遇到的一个程序,是一个从kafka消费并且插入mysql的程序,该程序历经三人之手,频频出问题,一直没有被解决。传到现...转载 2018-02-22 22:07:23 · 344 阅读 · 0 评论 -
Tomcat 调优及 JVM 参数优化
Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你。对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU 的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU 的处理能力越强,系统运行速度越快。Tomcat 的优化不像其它软件那样,简简单单的修改几个参数就可以了,它的优化主要有三方面转载 2018-02-07 21:22:00 · 290 阅读 · 0 评论 -
Jvsiualvm 排查 OOM 具体步骤详解
背景介绍最近在学习关于oom内存溢出的解决方法,结合了自己看的博客和一些自己的尝试,给大家分享自己的思路。主要分两种情况分析 1. 基于main方法启动的程序 2. 基于tomcat的web项目下面分别介绍两种方式基于main方法启动的程序1.编写测试代码:package com.xyq.maventest.visualvm;public class Java原创 2018-02-06 18:00:44 · 966 阅读 · 0 评论 -
Java 9 新特性简介
摘要1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方法的改进(在接口中 jdk7 只能声明全名常量和抽象方法 jdk8 添加了静态方法和默认方法 jdk9添加了私有方法) 6.钻石操作符升级 可以有{} 7.异常处理try升级 8.下划线标识符命名的限制 _ 不允许了 9.String底层存储结构的变更(char数组...原创 2018-02-26 15:58:17 · 412 阅读 · 0 评论 -
同时安装不同版本jdk引起的冲突解决方法
现象由于工作原因, 之前用的jdk1.8版本,因为线上生产环境都是jdk1.6,记得上一次就是因为不清楚线上环境的jdk版本问题,把自己编译的1.8版本给发布到线上环境,导致启动报java.lang unsupported classversion经过这次线上问题后,我本地需要再安装jdk1.6版本,但是在安装配置环境变量中会出现一些问题, 比如: 下面结合自己的经验,给大家讲讲如原创 2018-02-02 16:20:28 · 19106 阅读 · 4 评论 -
详解java类的生命周期
引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,文转载 2018-01-26 10:59:55 · 231 阅读 · 0 评论 -
解决PermGen space异常问题
开发中遇到Eclipse报错:java.lang.OutOfMemoryError: PermGen space。PermGen space百度翻译为:永久区域内存不足。 1. 先来一张jvm结构图:内存不足问题一般都是发生在’堆‘上,GC作用区域也是在’堆‘上。 2. 这个’堆‘又划分成了好几块区域,包括: 新生代:包括伊甸园区和存活区。 老年代:转载 2018-02-01 14:36:43 · 71677 阅读 · 9 评论 -
Exception in thread "Thread-0" java.lang.OutOfMemoryError: GC overhead limit exceeded 解决方法
背景最近在深入研究jvm底层机制,写了一个测试类一直加载class,模拟加载类过多导致Perm永久代报:java.lang.OutOfMemoryError:PermGen space 内存溢出。测试代码package com.xyq.maventest.visualvm;import java.io.File;import java.lang.reflect.Method;原创 2018-02-01 14:08:57 · 38836 阅读 · 2 评论 -
java.lang unsupported classversion解决方法
现象经过一个月的当当对接,总算是可以上线了,昨天晚上把项目打包发布到正式环境后,配置后各种参数后,执行考拉抓单任务,发现了一个奇怪的现象,任务一直卡住,此时觉得奇怪,点开任务日志看到下面的情况 原来是报 java.lang unsupported classversion 异常。原因分析&解决方法 凭借自己的经验,一眼就看出是jdk版本问题,应该是高版本编译的class原创 2018-01-30 18:59:10 · 33901 阅读 · 2 评论 -
Java8内存模型—永久代(PermGen)和元空间(Metaspace)
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛出St转载 2018-01-23 10:41:58 · 181 阅读 · 0 评论 -
安装JDK1.8出现 Error opening registry key'software\Javasoft\Java Runtime Environment'
java安装1.8后的问题:之前安装了jdk1.7和jdk1.6,之后又安装jdk1.8,然后执行java -version,打印错误信息:如下 Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\CurrentVers解决方法: 将C盘中Windows\System32和Windows\SysWOW64文件夹下的jav原创 2017-10-30 14:28:25 · 10800 阅读 · 1 评论 -
JPS-Java进程状态工具
列出PID和Java主类名jps2017 Bootstrap2576 Jps列出pid和java完整主类名jps -l2017 org.apache.catalina.startup.Bootstrap2612 sun.tools.jps.Jps列出pid、主类全称和应用程序参数jps -lm2017 org.apache.catalina.startup.Boots...原创 2019-05-24 18:14:39 · 793 阅读 · 0 评论