java
文章平均质量分 65
唐国平
tt
展开
-
Objects.requireNonNull方法说明
今天看源码的时候看见下面的方法,虽然猜到它的含义,但毕竟是第一次见,本着对技术的好奇,还是进去看了具体实现。Objects.requireNonNull(h);import java.util.Objects类里下面详细实现: public static T requireNonNull(T obj) { if (obj == null)原创 2017-07-20 09:22:13 · 32893 阅读 · 6 评论 -
java 枚举Enum源码解析
应用场景枚举是单例模式中的一种。面试官系统之设计模式(单例模式)简单来讲就是只能实例化一次,线程安全且性能高。枚举通常用来列举一个类型的有限实例集合,我们可以使用常量集来实现,jdk1.5添加了枚举(enum)支持,解决了常量集的一些缺陷常量集中的变量不会必然在指定的范围内 常量能够提供的功能很少,难于使用 常量意义不明确,没有名字 修改或增加枚举值后需要修改的代码多,不便于维护...原创 2018-06-18 22:52:29 · 1733 阅读 · 0 评论 -
java ArrayList源码深入解析
一、定义二、属性 //序列化id private static final long serialVersionUID = 8683452581122892189L; //默认数组初始的容量 private static final int DEFAULT_CAPACITY = 10; //空的对象数组 private static final O...原创 2018-06-16 23:16:07 · 336 阅读 · 0 评论 -
Java关键字 synchronized 详解
Java关键字 synchronized 详解synchronized是可以重入的(类中方法重入)public class SyncDubbo1 { public synchronized void method1(){ System.out.println("method1 ...."); method2(); } private sy...原创 2018-06-24 14:16:47 · 256 阅读 · 0 评论 -
java String源码深入解析
一、定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence从该类的声明中我们可以看出String是final类型的,表示该类不能被继承,并且该类中的成员方法都默认为final方法,同时该类实现了三个接口:java.io.Serializable、 Comp...原创 2018-06-05 14:42:37 · 242 阅读 · 0 评论 -
java Integer 源码深入解析
首先来看class类的注释介绍:/** * Integer类对基础类型int类进行了包装。 * Integer对象包含了一个类型为int的单一字段(字段名为value)。 * 此外,该类还提供了几种转换方法。 * int 转 String,String 转 int, * 以及其他处理int的一些常数和方法。 * @since JDK1.0 */ 一:类定义 ...原创 2018-06-02 21:03:47 · 777 阅读 · 0 评论 -
深入理解JVM(三)——JVM结构
深入理解JVM,就必须了解JVM的结构。下图展示了JVM的主要结构:可以看出,JVM主要包括四个部分:第一部分:类加载器(Class Loader)第二部分:执行引擎(Execution Engine)第三部分:运行时数据区(Runtime Data Area,也称内存区),内存区又包含:(1)方法区(Method Area)(2)堆(HEAP)(3)Java虚拟机栈(Java VM Stack)...原创 2018-05-01 11:21:43 · 387 阅读 · 1 评论 -
深入理解JVM(二)——JVM在什么时候启动的
JVM对于初学者来说,一直比较难懂,最根本原因是它不够直观。自己写了段代码,也正常运行了,都OK,没问题。到底是怎么运用JVM的,可能有一下的疑惑?一:我也没有手动创建,它是如何创建的?二:JVM在什么时候启动的?三:JVM在什么时候关闭的?带着问题我们继续往下看:再回答问题之前,先看看我们是如何启动Java的。1.我们在IDEA或者eclipse上面都有启动java程序的图标,如下图2:直接打开...原创 2018-04-30 21:17:00 · 8961 阅读 · 0 评论 -
深入理解JVM(一)——JVM是什么?与JDK、JRE的关系
在正式开始深入理解JVM这个专栏之前,我们有必要先了解下什么是JVM,以及JVM与JDK、JRE三者的关系。我们先观察上图,找到JDK、JRE、JVM的具体位置和包含的范围。一:从范围上可以得出结论(小结一下): 1:JDK最大,它包含JRE和JVM。 2:JRE属于JDK,比JDK小,但包含JVM,比JVM大。 3:JVM最小。二:从定义上来理解 现在有这样一个需求,我...原创 2018-04-30 17:25:24 · 745 阅读 · 1 评论 -
面试官系统之设计模式(单例模式)
单例模式:顾名思义就是只能有一个,不能在出现第二个。就如同地球上没有两片完全一模一样的树叶一样。程序猿的角度理解:一个类有且只能有一个实例,不能出现第二个,并且整个项目系统中都能访问该实例。面试官:为啥不能出现第二个?程序猿:。。。(这个面试官是笨蛋,出现第二个那就不叫单例模式了,那至少得叫双例模式,是吧?)面试官:为啥整个项目系统中都能访问该实例?程序猿:不能访问该实例,那new出来还有什么意义...原创 2018-04-15 17:18:23 · 589 阅读 · 0 评论 -
透彻解析java.lang.Number家族
一:类定义public abstract class Number implements java.io.Serializable 从类定义中我们可以知道以下几点:该类是一个抽象类。该类实现了java.io.Serializable接口。二:属性和方法我们先来看下面的图:我们都知道Java有8大基本类型,char byte short int long float...原创 2018-07-29 23:42:26 · 709 阅读 · 0 评论