博客
分类
标签
归档
关于
博客
分类
标签
归档
关于
Tau的博客
文章
分类
标签
归档
关于
一次由继承引发的思考
本文主要讨论,我在考虑java种private修饰的属性和方法到底有没有被继承下来的一系列思考。 使用反射? 观察class文件? new一个对象时到底发生了啥? 创建一个对象常常需要经历如下几个过程:父类的类构造器() -> 子类的类构造器() -> 父类的成员变量和实例代码块 -> 父类的构造函数 -> 子类的成员变量和实例代码块 -> 子类的构造函数。 先...
2019-10-10
Java
Java
Read More
HashMap中的hash方法
在HashMap,HashTable和ConcurrentHashMap中,hash()方法主要是拿来做定位,即通过对key进行散列,从而确定这个entry的存储位置。但是为了避免发生碰撞,java中的hash方法还是有许多细节操作的。 HashMap jdk 7 代码如下: 1234567891011121314final int hash(Object k) { ...
2019-10-08
Java
Java
Read More
HashMap中的容量
为什么建议初始化容量 真正的容量是多少 为什么是2的次幂
2019-10-08
Java
Java
Read More
Java中的fail fast
不知道到大家在操作Java集合类的时候有没有遇到过ConcurrentModificationException异常,反正我是遇到过,今天就来聊一下这个异常的缘起缘灭。 fail fast 上述异常都是由这个叫做fail fast的机制导致的,fail fast是Java集合类的一种异常检测机制,当多个线程并发修改一个集合类的结构时,就有可能触发上述异常。我们以ArrayList为例来探究一...
2019-09-29
Java
Java
Read More
Java中的类加载
本文主要讨论两个问题:何时类加载?如何类加载? 何为类加载 类加载时机 类加载的过程 序:java文件被编译成.class文件放在磁盘中 加载阶段: 根据类的全限定名将字节码加载到内存,加载到内存哪里呢?方法区! 可以认为,.class文件是类的静态结构,而加载阶段就是把这种静态结构编程动态的运行时结构 根据这个字节码生成一个java.lang.Class对象 我们讲过,万...
2019-09-24
Java
Java
Read More
Java中的volatile关键字
本文需要了解:Java内存模型 缓存一致性问题 为了提高CPU从内存中读写的速度,在CPU和和内存中间添加了缓存,有一级缓存,二级缓存,甚至三级缓存,从一级到三级,容量变大,速度变低。对于多个CPU场景,一般是每个CPU都有自己的一级和二级缓存而公用三级缓存。 在多CPU多线程的读写场景下,多个线程有可能会访问同一块内存区域,以写操作为例,多个线程都会把内存中的值读到自己的CPU中,然后修改...
2019-09-17
Java
Java
Read More
Java中的ReentrantLock
ReentrantLock, 从名字来看,可重入锁,今天来看下它的具体实现。 特性:排他锁,内部实现了公平锁和非公平锁。 它的继承关系如下: 以及还有三个内部类:Sync, NonfairSync , FairSync.其中后两个都继承自Sync,而Sync又继承自AQS 可以看出,ReentryLock是在自己内部实现了公平锁和非公平锁的。 可以看到,ReentryLock继承的L...
2019-09-17
Java
Java
Read More
Java中的synchronized关键字
本文主要从两个方面讲解synchronized关键字,第一个是用法,第二个是原理,即为什么synchronized关键字能够保持线程同步。 用法 synchronized的修饰对象主要有以下两种: 修饰一个代码块。 synchronized(this|object) {}:获得对象级的锁。当多个线程访问同一对象内的同步代码块时,只能互斥访问 synchronized...
2019-09-13
Java
Java
Read More
Java中的锁
本文转自:[不可不说的Java“锁”事](https://tech.meituan.com/2018/11/15/java-lock.html) 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Jav...
2019-09-13
Java
Java
Read More
谈一谈Java中的集合类之总述
本文涉及集合类知识以及面试常问知识点 OverView 集合类分为List,Map,Set. 先上张图 Map 包括HashMap, LinkedHashMap, HashTable, TreeMap 和 WeakHashMap, ConcurrentHashMap HashMap 不是线程安全,最多允许一条键为null的记录 LinkedHashMap 保存了记录的插入顺序 C...
2019-09-05
Java
Java
Read More
Previous
4 / 5
Next