JDK
淡淡的倔强
不怕千万人阻挡,只怕自己投降!
展开
-
Java 8: 元空间(Metaspace)
前言 很多开发者都在其系统中见过“java.lang.OutOfMemoryError: PermGen space”这一问题。这往往是由类加载器相关的内存泄漏以及新类加载器的创建导致的,通常出现于代码热部署时。相对于正式产品,该问题在开发机上出现的 频率更高,在产品中最常见的“问题”是默认值太低了。常用的解决方法是将其设置为256MB或更高。 JDK8 HotSpot JVM 将移除永久转载 2017-04-13 18:06:26 · 40966 阅读 · 0 评论 -
java8:@FunctionalInterface函数式接口注解
我们常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface注解。通过JDK8源码javadoc,可以知道这个注解有以下特点:1、该注解只能标记在”有且仅有一个抽象方法”的接口上。2、JDK8接口中的静态方法和默认方法,都不算是抽象方法。3、接口默认继承Java.lang.Object,所以如果接口显示声明覆盖了Object原创 2017-05-13 08:47:16 · 6466 阅读 · 0 评论 -
Java8:接口新特性
Java8新增了接口的默认方法和类方法:以前,接口里的方法要求全部是抽象方法或者常量,java8以后允许在接口里定义默认方法和类方法:不同的是:默认方法可以通过实现接口的类实例化的对象来调用,而类方法只能在本接口中调用或在实现类中实现:下面是使用实例:@FunctionalInterfacepublic interface MyInterface { // 抽象方法 public S原创 2017-05-13 09:15:12 · 2042 阅读 · 0 评论 -
Java8—HashMap解析
摘要HashMap的内部表示在Java8中得到很大的改进,比如说在Java7中实现HashMap需要1k行代码,而在Java8中需要2K行代码。在Java8中内部仍然以数组实现,但是以节点(Node)来作为Entry存储信息,并且同样也包括链表。一、重要的概念从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下如所示。Node是HashMap的一个内部类,实原创 2017-05-10 11:52:23 · 1606 阅读 · 0 评论 -
Java8—ConcurrentHashMap分析
前言ConcurrentHashMap在JDK8中进行了巨大改动,很需要通过源码来再次学习下Doug Lea的实现方法。它摒弃了java7中Segment(锁段)的概念,而是启用了一种全新的方式实现,利用CAS算法。它沿用了与它同时期的HashMap版本的思想,底层依然由“数组”+链表+红黑树的方式思想(JDK7与JDK8中HashMap的实现),但是为了做到并发,又增加了很多辅助的类,例如Tree转载 2017-05-10 15:38:23 · 3443 阅读 · 0 评论 -
Java8 JVM参数解读
我们知道java虚拟机启动时会带有很多的启动参数,Java命令本身就是一个多参数的启动命令。那么具体JVM启动包含哪些参数呢?这篇文章针对java8的情况做一篇汇总解读,包含大多数常见和不常见的命令参数,过于小众的就不写了。JVM参数官网:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.ht...转载 2018-02-27 18:20:42 · 3234 阅读 · 0 评论 -
JVM实用参数(二)JVM类型、工作模式及代码缓存
一、JVM的类型当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高.-server 模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。大意是说,这两个JVM是使用的不同编译器。Client JVM适合需要快速启动和较小...原创 2018-03-14 18:02:47 · 2176 阅读 · 0 评论 -
Java8中所有的包列表及介绍
一、常用的基础类库:11个jar(Java Archive,Java归档)包作为java语言使用者,我们可以感受到java语言带来的优势(平台无关、面向对象、多线程、高效易扩展等),而且它有很多已经实现的类库可以供我们直接使用,这些类库都是以jar包的形式提供的,也可以成为java API,它为编程者实现了各种常用操作的方法,为程序员编写java程序代码带来了许多方便。 了解了Java...原创 2018-02-22 23:03:11 · 3389 阅读 · 0 评论 -
JVM实用参数(一)打印所有XX参数及值
本篇文章基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。-XX:+PrintFlagsFinal-XX:+PrintFlagsInitial-XX:+PrintCommandLineFlags-XX:+PrintFlagsFinal让我们现在就了解一下新参数的输...转载 2018-03-14 14:56:30 · 5607 阅读 · 0 评论