#java

HashMap的数据结构

发布于:2018-10-11

HashMap HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。实质是一个哈希数组结构,但是在元素插入的时候,存在发生hash冲突的可能性。 从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下如所示。 HashMap类的数据结构 HashMap类包含5个关键参数: threshold:表示容器所能容纳的 key-value 对极限。 loadFactor:负载因子。 modCount:记录修改次数。 size:表示实际存在的键值对数量。 table:一个哈希桶数组,键值对就存放在里面。 public class …...

进入阅读

GC垃圾回收原理解析

发布于:2017-12-16

GC GC(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。 GC机制是区别C++的一个重要特征,C++需要开发者自己实现垃圾回收的逻辑,而JAVA开发者则只需要专注于业务开发,因为垃圾回收这件繁琐的事情JVM已经为我们代劳了。 GC分代和收集算法 现代的垃圾收集器基本都是采用分代收集算法,其主要思想: 将Java的堆内存逻辑上分成块:新生代、老年代,处理堆内存外还有一个特殊的区域叫永久代,针对不同存活周期、不同大小的对象采取不同的垃圾回收策略。 新生代(Young Generation) …...

进入阅读

JIT即时编译原理解析

发布于:2017-10-15

JIT JIT是(just in time)的缩写, 也就是即时编译编译器。使用即时编译器技术,能够加速Java程序的执行速度。 Java编译器通常通过javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢很多。为了提高执行速度,引入了JIT技术。 JIT编译狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即时编译”。JIT技术,将字节码编译成平台相关的原生机器码,并进行各个层次的优化,这些机器码会被缓存起来,以备下次使用。 如果JIT对每条字节码都进行编 …...

进入阅读

JVM原理解析

发布于:2017-07-11

JVM JVM是Java虚拟机(Java virtual machine)的简称,是运行Java程序必不可少的机制。编译后的Java程序指令并不直接在硬件系统的CPU上执行,而是由JVM执行。 JVM实现了Java语言最重要的特征:即平台无关性。JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就可以在多种平台上不加修改地运行。 JVM是编译后的Java程序(.class文件)和硬件系统之间的接口。javac是收录于JDK中的Java语言编译器,该工具可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于Java虚拟机 …...

进入阅读

Maven的使用简介

发布于:2016-10-12

maven maven是一个JAVA项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。 maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性,利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。 Pom pom是指project object Model。pom是一个xml文件,在maven2里为pom.xml。是maven工作的基础,在执行task或者goal时,maven会去项目根目录下读取pom.xml获得需要的配置信息 pom文件中包含了项目 …...

进入阅读

分类

开发
    --go (9)
    --java (5)
    --php (11)
    --mysql (9)
    --javascript (3)
    --html (1)
    --算法 (6)
架构
    --理论 (9)
    --网络 (3)
    --服务器 (2)
    --消息队列 (3)
    --容器 (5)
    --监控 (1)
    --搜索引擎 (3)
    --大数据 (0)
    --测试 (1)
系统
    --linux (10)
    --mac (2)
    --windows (1)
足球
    --世界杯 (60)
    --欧洲杯 (28)
    --文迷 (3)
大学时光
    --校园生活 (96)
    --假期生活 (17)
    --广院杯那些事 (14)
    --北京奥运 (6)
    --胡思乱写 (17)


最近发布

零拷贝技术介绍

服务网格技术简介

C语言标准和标准库简介

Kubernetes简介及环境搭建

Go语言开发的顶级项目


归档

2006 (109)
2007 (40)
2008 (47)
2009 (10)
2010 (6)
2012 (10)
2013 (14)
2014 (27)
2015 (15)
2016 (6)
2017 (8)
2018 (11)
2019 (17)
2020 (5)