欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

 分类:开发语言

高级开发必须理解的Java中SPI机制

高级开发必须理解的Java中SPI机制
本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参考。 1 SPI是什么 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来...

water 5年前 (2020-04-09) 1934℃ 0评论 0喜欢

JAVA Launcher简析

JAVA Launcher简析
JAVA Launcher简析 sun.misc.Launcher类是java的入口,在启动java应用的时候会首先创建Launcher类,创建Launcher类的时候回准备应用程序运行中需要的类加载器。 一、ClassLoader Launcher作为JAVA应用的入口...

water 5年前 (2020-04-09) 2684℃ 0评论 2喜欢

@AliasFor注解

@AliasFor注解
@AliasFor是一个注解,用于为注解属性声明别名。 代码如下:它有两个属性value和attribute @AliasFor注解注释了 自身,并且value和attribute互为别名。 @Retention(RetentionPolicy.RUNTIME) @Tar...

water 5年前 (2020-04-07) 2477℃ 0评论 0喜欢

hashcode()和equals()的作用、区别、联系

hashcode()和equals()的作用、区别、联系
首先,我们讲讲一般常用的“==”和“equals()”; “==”运算符用来比较两个变量的值是否相等。也就是说,该运算符用于比较变量对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能使用“==”运算符。 具体而言,如果两个变量是基...

water 5年前 (2020-04-07) 2418℃ 0评论 2喜欢

Java关于远程调试程序教程

Java关于远程调试程序教程
以前一直用eclipse,最近改用idea.记录下idea的远程调试。 一.启动服务 1.配置tomcat 启动参数增加   12-Xdebug-Xnoagent -Djava.compiler=NONE -Xrunjdwp:transpo...

water 5年前 (2020-01-03) 1980℃ 0评论 0喜欢

JDK 源码中 HashMap 的 hash 方法原理是什么?

JDK 源码中 HashMap 的 hash 方法原理是什么?
这段代码叫“扰动函数”。题主贴的是Java 7的HashMap的源码,Java 8中这步已经简化了,只做一次16位右位移异或混合,而不是四次,但原理是不变的。下面以Java 8的源码为例解释, //Java 8中的散列值优化函数 static final int ha...

water 5年前 (2019-12-05) 1961℃ 0评论 0喜欢

《大教堂与集市》读书笔记

《大教堂与集市》读书笔记
Eric Steven Raymond 是开放源代码运动的主要理论家,这两天终于读完了代表性的5篇文章,获益良多,小结一下。 《黑客道简史》(A Brief History of Hackerdom) 1996本文记载了不为人知的黑客早期历史(主要是1983年以前)。在《...

water 6年前 (2019-07-24) 2777℃ 0评论 0喜欢

Lisp 是怎么成为上帝的编程语言的

Lisp 是怎么成为上帝的编程语言的
当程序员们谈论各类编程语言的相对优势时,他们通常会采用相当平淡的措词,就好像这些语言是一条工具带上的各种工具似的 —— 有适合写操作系统的,也有适合把其它程序黏在一起来完成特殊工作的。这种讨论方式非常合理;不同语言的能力不同。不声明特定用途就声称某门语言比其他语言更优秀只能导致侮...

water 6年前 (2019-07-23) 1921℃ 0评论 0喜欢

PermGen and Metaspace

PermGen and Metaspace
PermGen is an abbreviation for Permanent Generation and it’s a special heap space which is separate from the main Java heap where JVM keeps ...

water 6年前 (2019-06-18) 2008℃ 0评论 1喜欢

fullgc问题解决:Full GC (Metadata GC Threshold)

fullgc问题解决:Full GC (Metadata GC Threshold)
问题描述 在工作过程中,遇到一个问题:Tomcat在重启或者发布的时候,会有多次的full GC。 笔者使用的版本说明: Tomcat7.0.25 JDK8 首先排查JVM的问题,就要把GC日志打开 -XX:+PrintGC -XX:+PrintGCDetails -XX:+Pr...

water 6年前 (2019-06-18) 3110℃ 0评论 1喜欢

JDK8 的FullGC 之 metaspace

JDK8 的FullGC 之 metaspace
前言: 由于最近写的程序在运行一段时间后出现高cpu,然后不可用故进而进行排查,最终定位到由于metaspace引起fullgc,不断的fullgc又占用大量cpu导致程序最终不可用。下面就是这次过程的分析排查和总结,便于以后温故,同时也希望能给遇到同样问题的同学一些参考。 一 ...

water 6年前 (2019-06-18) 2258℃ 0评论 0喜欢

Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释

Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释
一、线程5种状态 新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running) 就绪状态的线程获取了CPU,执行...

water 6年前 (2019-06-18) 1820℃ 0评论 0喜欢

G1 垃圾收集器介绍

G1 垃圾收集器介绍
为解决CMS算法产生空间碎片和其它一系列的问题缺陷,HotSpot提供了另外一种垃圾回收策略,G1(Garbage First)算法,通过参数-XX:+UseG1GC来启用,该算法在JDK 7u4版本被正式推出,官网对此描述如下: The Garbage-First (G1) c...

water 6年前 (2019-06-05) 1659℃ 0评论 0喜欢