工程创建一、创建项目1.新建工程:File->New->Java Project2.创建程序包:src->new->package2.创建类:package->new->class
项目创建完成后,左边的 Package Explorer 会出现一个Java_Learning的 Java 项目,同时项目中自动生成了 src 文件夹以及 JRE System Library。
实际项目中,一直卡在@lombok.Builder.Default注解的类上,去掉此注解,编译不再卡在。而且项目中使用了生成的Builder类。
本文主要研究下JvmGcMetrics的managementExtensionsPresent
jhsdb: A New Tool for JDK 9这篇文章中列出了jhsdb与jcmd的等价命令,如下图:
最近参加面试多次被面试官问到JVM调 优方面的问题,即时自己面试前也重点复习了这一块的面试题,但是发现还是回答地不太好,浪费了好多次面试机会,真是让自己很抓狂。归根结底是自己以前一直只注重业务,而忽略了JVM调优这一块,对JVM这一块的实践太少了。这几天自己也重点观看了马士兵老师的JVM调优视频课, 看完之后自己也在本机和腾讯云服务器上进行了一番实践,感觉还是很有收获的。
2017-07-04 by Liuqingwen | Tags: Kotlin | Hits
在运维监控系统开发过程中我们往往需要在特定的方法出入口进行记录日志、采集参数,甚至在特定场景下需要对方法的出入参数或者整个方法逻辑进行重写。目前市面上开源的APM系统主要有CAT、Zipkin、Pinpoint、SkyWalking,大都是参考Google的Dapper实现的。个人在项目中主要使用skywallking,在java、golang等多语言中有过实践,所以这里主要记录自己在java项目中使用skywallking的一些心得和笔记。
Spring Boot 依赖版本和Spring Cloud Alibaba依赖版本不一致,导致报错。
JVM 的操作对象是 Class 文件,JVM 把 Class 文件中描述类的数据结构加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被 JVM 直接使用的 Java 类型,这个过程被称作 JVM 的类加载机制!
最近遇到一个业务需求,需要统计业务方提供了哪些能力,这些能力通过一个总的 json 配置文件进行描述,以方便本地和平台都能解析这份配置,配置文件例如:
“"C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" "-javaagent:D:\IDEA2020_1\IntelliJ IDEA 2020.1\lib\idea_rt.jar=51910:D:\IDEA2020_1\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;D:\桌面\图书管理系统\out\production\图书管理系统" BookManagement java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/BookManagement at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at BookManagement.<init>(BookManagement.java:18) at BookManagement.main(BookManagement.java:56)”
注意,为了加快相关jar下载速度,可以在pom.xml中添加国内的阿里Maven镜像,在<properties>...</properties>元素后添加如下元素即可
opencron 是强大的管理linux crontab任务的系统,基于JAVA开发 http://github.com/wolfboys/opencron
Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator,本文主要讲actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
首先声明一下,我用的 Intellij IDEA 2018.3 版本的,springboot的版本是 2.0.5.RELEASE 版本。
由于java.se.ee不在默认的root modules中,因此—add-modules的最常见的用途是用来添加ee中的模块,比如javv.xml.bind
很多时候,在推出一个完整的补丁集之前,Oracle会依据Bug的严重程度发布一些过渡性或临时性Patch,修正一些Bug。 这些Patch通常没有setup安装程序,需要使用Oracle的opatch工具安装,本文就opatch的使用进行示范说明。
1、学习elasticsearch 源码,通过搜索“elasticsearch源码”,进行相关搜索。 2、因源码gradle编译,选择gradle-3.5可以编译通过,对应elasticsearch 5.5.0,其他高版本gradle可能编译不过, 编译源码时需注意这一点。 3、elasticsearch版本选择tag 版,tag为发布版,配置与代码一致。 4、依赖jdk版本为1.8,idea设置ProjectSetting Project jdk版本,以及gr
为什么要优化JVM 1.生产环境需要承载更多的并发要求,对底层的优化能显著提升性能,节约成本 2.测试和生产环境的不同可能导致我们无法实时了解具体性能问题,我们需要借助对JVM了解分析问题所在。
~/Documents/workspace/.metadata$ cat .log !SESSION 2017-12-01 19:15:35.976 ----------------------------------------------- eclipse.buildId=4.6.3.M20170301-0400 java.version=9 java.vendor=Oracle Corporation BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=zh_TW Framework arguments: -product org.eclipse.epp.package.jee.product -keyring /Users/jack/.eclipse_keyring Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/jack/.eclipse_keyring
很早之前就了解到目前主流的APM开源框架如Pinpoint、SkyWalking等等都是通过java.lang.instrument包提供的字节码增强功能来实现的。趁着对这块的热情还没消退,抽时间分析一下java.lang.instrument包的使用方式,记录下来写成一个系列的文章。本系列博文针对的是JDK11,其他版本的JDK可能不适合。
Aware.java是个没有定义任何方法的接口,拥有众多子接口,在spring源码中有多处都在使用这些子接口完成各种场景下的回调操作,当业务有需要时,我们只需创建类来实现相关接口,再声明为bean,就可以被spring容器主动回调;
Tech 导读 距离 JDK 8 发布已经过去了 9 年,那么这 9 年的时间,JDK 做了哪些升级?是否有新的重大特性值得尝试?能否解决一些现在令人苦恼的问题?带着这份疑问进行了 JDK 版本的调研与升级踩坑记录,希望本文能够帮到大家。
jps(JVM Process Status) 命令类似 UNIX 的 ps 命令。
JMX(java Management Exetensions)在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。 通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等 优点是可以非常容易的使应用程序被管理 伸缩性的架构使每个JMX Agent Service可以很容易的放入到Agent中,每个JMX的实现都提供几个核心的Agent Service,你也可以自己编写服务,服务可以很容易的部署,取消部署。 主要作用是提供接口,允许有不同的实现 简单来说,jmx是一个用来管理javaBean并可以进行监控的扩展规范,结合MBeanServer、rmi与http等可以作为一个服务监控和提供中心
如果你在启动应用时遇到 “Error starting ApplicationContext” 错误,请按照以下步骤重新运行你的应用程序:
java9模块化之后,对classloader有所改造,其中一点就是将ext classloader改为platform classloader,另外模块化之后,对应的classloader加载各自对应的模块。
首先声明,这不是一份指南,这是一份失败的操作流水记录。我得到的最终结果:编译成功,但是无法运行,放弃在 Mac 平台直接使用此工具,乖乖用 Linux 或者容器环境。
因为编程语言千千万,他们就像一个生态系统一样,新的语言会出现,旧的语言会被取代,除非它不断地演变,能跟上节奏;同理,Java也是取代了竞争对手语言,且根据编程市场不断演变才能一直存活的。
连接传统关系型数据库和Hadoop的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS、HBase 和 Hive) 中; 把数据从 Hadoop 系统里抽取并导出到关系型数据库里
本文以Tomcat 9为核心学习并归纳了一些内存马技术,除有特殊说明外的章节外,本文使用Java 8u292
距离上一次更新刚过了二十多天,距离0.17版本刚过了三个多月,Druid再次迎来重大更新,Druid也越来越强大了。
JDK 9 jmods 目录中有97个jmod文件,这些文件都是干嘛的呢?我们在写代码的时候,都应该怎么用呢?
如果在生产环境发生了死锁,我们将看到的是部署的程序没有任何反应了,这个时候我们可以借助 jstack进行分析,下面我们实战操作查找死锁的原因。所谓死锁指的是是一组互相竞争资源的线程因互相等待导致“永久”阻塞的现象。
“ 当我们用java命令运行某个类的main函数启动程序时,大家有没有想过是怎样加载的,本文将带着大家一起探讨JVM类的加载机制”
在日常开发上线过程中,我们多多少少都会遇到下边这些问题,苦于无法在线调试,「只能通过老鸟的经验来硬分析bug,效率上不去还总开口问别人答疑解惑,多少有些不好意思」。
想学习下spring-boot-actuator, 发现需要前置技能: JMX; 重新温习下JMX,并且根据spring官网对actuator进行quickstart
今天载在我去写代码,进行一个字符串解析的时候,发现一个有意思的现象。一个特殊的数组类。因为当我觉得整个流程非常合理的时候运行就报错了,然后这一个章节主要是用来为什么会报错以及如何解决这个问题,然后从中可以得到什么帮助。
Jenkins是一个自动化服务器,目前发展超过15年,比较成熟的CI工具(也可以CD)能够实现自动化集成发布。 Jenkins构件任务一般有2种,一种是“构建一个自由风格的软件项目”和“流水线”项目。本文讲解的是使用pipeline流水线搭建一个GO工程的持续集成任务的完整方法。
首先 fork 一份 [Elasticsearch 项目] (https://github.com/elastic/elasticsearch) 的代码到自己的 github 仓库,这样看代码的时候写注释可以提交到自己的仓库。
官方文档:https://docs.oracle.com/javase/9/index.html
内存溢出在实际的生产环境中经常会遇到,比如,不断的将数据写入到一个集合中,出现了死循环,读取超大的文件等等,都可能会造成内存溢出。 如果出现了内存溢出,首先我们需要定位到发生内存溢出的环节,并且进行分析,是正常还是非正常情况,如果是正常的需求,就应该考虑加大内存的设置,如果是非正常需求,那么就要对代码进行修改,修复这个bug。 首先,我们得先学会如何定位问题,然后再进行分析。如何定位问题呢,我们需要借助于jmap与MAT工具进行定位分析。 接下来,我们模拟内存溢出的场景。
有的同学虽然写了一段时间 Java 了,但是对于 JVM 却不太关注。有的同学说,参数都是团队规定好的,部署的时候也不用我动手,关注它有什么用,而且,JVM 这东西,听上去就感觉很神秘很高深的样子,还是算了吧。
Oracle提供的图形化管理工具目前主要有三个版本: EMDC:Enterprise Manager Database Control EMGC:Enterprise Manager Grid Control EMCC:Enterprise Manager Cloud Control DC需要为每个实例创建一套,而GC则可以统一管理多实例,CC则运用了很火的“云”概念来做统一管理数据库,可谓是增强版的GC。
领取专属 10元无门槛券
手把手带您无忧上云