
Java
文章平均质量分 59
黑暗行动
足球
乐观
架构设计
展开
-
JMX入门
JMX定义JMX是Java Management Extensions的简写,即Java管理扩展。从名字中就可以看出,这门技术是对Java应用程序和JVM进行监控和管理的。在企业实际开发过程中,所有的程序都是需要进行监控的。没有监控,程序就相当于是裸奔。JMX场景通过JMX,我们可以监控的内容包括:1、服务器中各种资源的使用情况:如CPU、内存等2、JVM内存使用情况3、JVM中的线程情况:tomcat线程池,自定义线程池4、JVM中加载的类5、自定义统计信息四.原创 2021-08-04 17:52:43 · 795 阅读 · 0 评论 -
java类加载流程
1 类加载的三个过程1.1 加载阶段类加载阶段就是由类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JVM内部,并存储在运行时内存区的方法区,然后将其转换为一个与目标类型对应的java.lang.Class对象实例(Java虚拟机规范并没有明确要求一定要存储在堆区中,只是hotspot选择将Class对应哪个存储在方法区中),这个Class对象在日后就会作为方法区中该类的各种数据的访问入口。加载阶段由类加载器负责1.2 链接阶段链接阶段要做的是将加载到JVM中的二进制字节原创 2021-03-03 22:17:38 · 253 阅读 · 1 评论 -
JDK导入HTTPS证书
1 导出证书(csdn.cer)2 管理员方式打开cmd3 进入jdk目录:D:\Soft\java\jdk1.8.0_151\jre\lib\security4 将证书文件csdn.cer放到目录(D:\Soft\java\jdk1.8.0_151\jre\lib\security)中5 命令使用说明G:\java\intellij_idea\IdeaProjects\webframe>keytool -importcert -helpkeytool -import.原创 2020-12-27 21:37:45 · 3034 阅读 · 0 评论 -
ThreadLocal与InheritableThreadLocal区别
ThreadLocal声明的变量是线程私有的成员变量,每个线程都有该变量的副本,线程对变量的修改对其他线程不可见。示例代码:public class InheritableThreadLocalApp { public static void main(String[] args) { final InheritableThreadLocal<String> local1=new InheritableThreadLocal<String>();原创 2020-11-29 22:10:46 · 1032 阅读 · 0 评论 -
LinkedBlockingQueue代码阅读
1public class LinkedBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { private static final long serialVersionUID = -6903933977591709194L; //链表节点类 static class Node<原创 2020-08-16 22:06:19 · 228 阅读 · 0 评论 -
ArrayBlockingQueue代码阅读
1public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable {//用于存储元素的数组final Object[] items;// 下一个取出元素的坐标int takeIndex;// 可以添加元素的坐标int putIndex;// 队列中元素的数量int coun原创 2020-08-16 22:05:13 · 133 阅读 · 0 评论 -
ReentrantLock源码阅读
https://www.jianshu.com/p/282bdb57e343https://www.cnblogs.com/takumicx/p/9402021.htmlReentrantLock//指向队列首元素的头指针private transient volatile Node head;//指向队列尾元素的尾指针 private transient volatile Node tail;//该锁被线程重入的次数。当state为0表示该锁不被任何线程持有;当state为1表示.原创 2020-08-16 22:03:25 · 198 阅读 · 0 评论 -
JDK动态代理原理
接口public interface Task { void doSomething(String things); String makeSomething(String seed);}实现类public class TaskImpl implements Task { @Override public void doSomething(String things) { System.out.println("I'm doing it :原创 2020-05-20 20:35:39 · 226 阅读 · 0 评论 -
CGLIB动态代理原理
被代理类public class Human { void doThings() { System.out.println("Human"); }}代理类public class CglibProxyHuman implements MethodInterceptor { public Object getProxyInstance(Object target) { Enhancer enhancer = new Enhancer原创 2020-05-20 20:09:42 · 327 阅读 · 0 评论 -
Arthas3.1.1使用
下载完整包启动方式1D:\soft\arthas\arthas-packaging-3.1.1>java -jar arthas-boot.jar[INFO] arthas-boot version: 3.1.1[INFO] Found existing java process, please choose one and hit RETURN.* [1]: 5900...原创 2020-04-28 15:20:42 · 957 阅读 · 0 评论 -
Java动态调用Groove代码(1)-GroovyClassLoader
1 目的动态执行任务或者扩展功能,需要java动态执行groovy代码2 项目依赖<dependencies> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> ...原创 2018-09-13 23:02:40 · 12396 阅读 · 0 评论 -
Java动态调用Groove代码(3)-GroovyShell
上一篇:Java动态调用Groove代码(1)-GroovyClassLoader上一篇:Java动态调用Groove代码(2)-GroovyScriptEngineScriptGroove.groovypackage com.chy.groovyimport com.alibaba.fastjson.JSONimport com.alibaba.fastjson.TypeRe...原创 2018-09-16 21:30:21 · 6757 阅读 · 0 评论 -
Java动态调用Groove代码(2)-GroovyScriptEngine
上一篇:Java动态调用Groove代码(1)-GroovyClassLoaderFunGroove.groovypackage com.chy.groovyvoid print(){ System.out.println("没有参数!!!!");}//执行方法print();FunArgGroove.groovypackage com.chy.groovy...原创 2018-09-16 21:19:16 · 6923 阅读 · 0 评论 -
fastjosn转换成字符串时首字母变小写问题
fastjson版本<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.33</version></dependency> 查看fa原创 2018-06-28 10:00:46 · 1381 阅读 · 0 评论 -
Java的SPI机制
SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制,我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。 某个接口,想运行时动态的给它添加实现,你只需要添加一个实现。例如: 数据库驱动,dubbo都使...原创 2018-06-25 14:14:31 · 173 阅读 · 0 评论 -
struts 2.3+spring 3.2.4 环境配置
1 搭建环境所需要的包:2 项目结构 3 web.xml 文件配置 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.s原创 2018-04-25 15:40:23 · 190 阅读 · 0 评论 -
struts 2.3+spring 3.2.4+hibernate 4.2.8 环境配置
在上一篇文章中已经集成struts 2.3+spring 3.2.4 ,这篇中继续集成hibernate 4.2.8。1 集成hibernate 4.2.8所需要的jar包 2 项目结构 3 web.xml 添加如下配置 openSessionInView org.springframework.orm.hibernate4.support.OpenSessionInViewFi原创 2018-04-25 15:40:29 · 218 阅读 · 0 评论 -
Java反编译工具 JD-GUI
JD-GUI 是一个独立的显示“.class” 文件Java源代码的图形用户界面工具。您可以使用JD-GUI浏览和重建源代码的即时访问方法和字段,以代码高度方式来显示反编译过来的代码。这是打开sqljdbc.jar 反编译的代码,很好用很强大!原创 2018-04-25 15:40:31 · 275 阅读 · 0 评论 -
IntelliJ IDEA 断开svn连接
1 设置菜单2 进入pluglns 菜单,点击 browse repositonries..... 3 搜索 svn disconnect,然后安装插件 4 安装插件后,勾选 5 在菜单VCS选择SVN Disconnect断开连接原创 2018-04-25 15:43:04 · 21432 阅读 · 0 评论 -
netty使用ssl证书https请求
1 本文内容在netty4.04测试通过。2 前面提到了ssl免费申请,请详见《免费ssl申请和tomcat ssl 配置》。3 继续使用腾讯云免费申请的ssl证书chy.lznytz.com.jks。4 maven项目结构如下:将证书拷贝到resources中 5 核心代码1) 在程序初始化的时候生成SSLContext,私钥密码填写自己申请的,整个程序只需要做一次。 2) 在Channel原创 2018-04-25 15:43:07 · 5597 阅读 · 0 评论 -
activemq-all.jar包引入导致slf4j冲突的解决办法
采用原生的jar包在eclipse中。打开apache-activemq-5.14.0\lib目录 拷贝activemq-core-5.7.0.jaractivemq-broker-5.14.0.jaractivemq-client-5.14.0.jar geronimo-j2ee-management_1.1_spec-1.0.1.jar geronimo-jms_1.1_spec-1.1.1.原创 2018-04-25 15:43:10 · 1940 阅读 · 0 评论 -
eclipse集成lombok
lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/github地址:https://github.com/rzwitserloot/lombok1 maven添加依赖 org.projectlombok l原创 2018-04-25 15:43:55 · 347 阅读 · 0 评论 -
Netty HTTP 请求允许跨域
import static io.netty.handler.codec.http.HttpHeaders.Names.CONNECTION;import static io.netty.handler.codec.http.HttpHeaders.Names.CONTENT_LENGTH;import static io.netty.handler.codec.http.HttpHeaders.原创 2018-04-27 10:20:56 · 5600 阅读 · 0 评论 -
Netty HTTP请求获取application/json请求参数
$.ajax({ url: url, type: "POST", dataType: "json", contentType: 'application/json;charset=utf-8', data: $.toJSON({type:"2",name:"你好"}), success: function(data){ log("2----->"+原创 2018-04-27 10:20:59 · 3470 阅读 · 1 评论 -
windows jdk多个版本切换报错
JAVA_HOME7 = C:\Program Files\Java\jdk1.7.0_43 JAVA_HOME8 = C:\Program Files\Java\jdk1.8.0_25 JAVA_HOME = %JAVA_HOME7% 通过 JAVA_HOME 切换切换过程中cmd报错了,错误如下 Error: Registry key 'Software\JavaSoft\Java Runt原创 2018-04-27 10:21:23 · 187 阅读 · 0 评论 -
apache-tomcat-7.0.6配置https证书cer和key
运到以下问题:1 操作系统是64位,但是tomcat 是32 位的,下载最新64位的 tomcat-native 替换32位 tcnative-1.dll否则tomcat启动会报:The APR based Apache Tomcat Native library which allows optimal performance in production environments was n原创 2018-04-27 10:21:36 · 3418 阅读 · 0 评论 -
让struts2同时处理.do/.action后缀的请求
首先在 web.xml 配置如下: xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j原创 2018-04-25 15:40:06 · 151 阅读 · 0 评论