logo头像
Snippet 博客主题

Java

Java垃圾回收机制详解

#概述由于JVM中垃圾收集器的存在,使得Java程序员在开发过程中可以不用关心对象创建时的内存分配以及释放过程,当内存不足时,JVM会自动开启垃圾收集线程,进行垃圾对象的回收。那么垃圾回收线程到底是什么时候触发,并如何实现垃圾回收的呢...

深入理解Java之JVM堆内存分配

Java堆是被所有线程共享的一块内存区域,所有对象和数组都在堆上进行内存分配。为了进行高效的垃圾回收,虚拟机把堆内存划分成新生代、老年代和永久代(1.8中无永久代,使用metaspace实现)三块区域。 Java把内存分成两种:栈内存...

原子性、可见性以及有序性

原子性、可见性以及有序性 原子性: 众所周知,原子是构成物质的基本单位,所以原子代表着不可分。 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 最简单的一个例子就是银行转账问题,赋值或者r...

hashCode与equals的区别

hashCode与equalsHashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键。 那么Java运行时环境是如何判断HashSet中相同对象、Hash...

volatile和Synchronized区别

volatile和Synchronized区别 volatile Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某...

Java基础面试题

Java基础面试题本部分全部内容是根据张孝祥老师的Word文档整理而来。只不过是为了方便观看,把代码部分用markdown来展示。整理时脑海中不断回忆起张老师上课的情景,真是怀念。 一个”.java”源文件中是否可以包括多个类(不是...

HashMap实现原理分析

HashMap实现原理分析HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,HashMap采用链表来解决的。在HashMap里有这样的一句属性声明:1transie...

Java 读写大文本文件

如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符’r’是linux上的,windows的java换行符是’\r\n’: 123456789101112131415161718192...