JVM类加载过程与双亲委派模型

类加载过程类加载过程为JVM将类描述数据从.class文件中加载到内存,并对数据进行解析和初始化,最终形成被JVM直接使用的Java类型。包含:加载:获取该类的二进制字节流,将字节流代表的静态存储结构转化为方法区的运行时数据结构,并在内存生成代表该类的java.lang.Object对象作为方法区该
Java JVM 2020年02月05日 147次浏览

JVM内存模型

运行时数据区域Java虚拟机(JavaVirtualMachine,简称JVM)在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。程序计数器(Pr
Java JVM 2020年02月05日 167次浏览

你编写的Java代码是咋跑起来的?

如果你是一名Java开发人员,你肯定指定Java代码有很多种不同的运行方式。比如说可以在开发工具(IDEA、Eclipse等)中运行,可以双击执行jar文件运行,也可以在命令行中运行,甚至可以在网页(比如各种OJ)中运行。当然,这些执行方式都离不开JRE(Java运行时环境)。JRE包含运行Java
Java JVM 2020年02月05日 140次浏览

JVM GC算法

在判断哪些内存需要回收和什么时候回收用到GC算法,本文主要对GC算法进行讲解。JVM垃圾判定算法常见的JVM垃圾判定算法包括:引用计数算法、可达性分析算法。引用计数算法(ReferenceCounting)引用计数算法是通过判断对象的引用数量来决定对象是否可以被回收。给对象中添加一个引用计数器,每当
Java JVM 2020年02月05日 137次浏览

Full GC 和 Minor GC,傻傻分不清楚

这篇文章主要来介绍下JVM中的各种GC,让大家来搞清楚这几个概念。大家可能见到过很多的GC名词,比如:MinorGC、YoungGC、FullGC、OldGC、MajorGC、MixedGC。这么多概念,想想都头疼,到底各种乱七八糟的GC指的是什么?下面先引用R大在知乎上的回答:针对HotSpotV
Java JVM 2020年02月05日 146次浏览

为什么不建议使用Date,而是使用Java8新的时间和日期API?

Java8:新的时间和日期API在Java8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,因此建议使用新的时间和日期API,分别从旧的时间和日期的API的缺点以及解决方法、Java8新的时间和日期API进行讲解。旧的时间和日期的API的缺陷Java的java.util.Date和java
Java 2020年02月05日 272次浏览

最大的 String 字符长度是多少?

String类可以说是在Java中使用最频繁的类了,就算是刚刚接触Java的初学者也不会陌生,因为对于Java程序来说,main方法就是使用一个String类型数组来作为参数的(String[]args)。对于这样一个频繁使用的类,String字符串可以有多长呢?十万字符?一百万字符?还是无限的呢?
Java 2020年02月05日 154次浏览

在 Java 中如何比较日期?

在Java中有多种方法可以比较日期,日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,包含多个用于比较的方法,任何比较两个日期的方法本质上都会比较日期的时间。本文主要介绍以下五种方式:使用Date.compareTo()使用Date
Java 2020年02月05日 145次浏览

为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下:那么我们首先来用例子来看看在循环体中用+或者用StringBuilder进行字符串拼接的效率如何吧(JDK版本为jdk1.8.0_201)。publicclassStringConcatDemo{pub
Java 2020年02月05日 144次浏览

为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?

在阅读《阿里巴巴Java开发手册》时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下:这条建议非常值得大家关注,而且该问题在Java面试中十分常见。还需要思考以下几个问题:如果不看《阿里巴巴Java开发手册》,如何知道Integervar=?会缓存-128到127之间的赋值?为什么会缓存
Java 2020年02月05日 134次浏览