博客
分类
标签
归档
关于
博客
分类
标签
归档
关于
Tau的博客
文章
分类
标签
归档
关于
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继承...
2019-09-17
Java
Java
Read More
剑指offer题解
重建二叉树前序遍历用来确定根节点,中序遍历用来确定左右子树以及大小 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283class ...
2019-09-15
数据结构与算法
数据结构与算法
Read More
Java中的synchronized关键字
本文主要从两个方面讲解synchronized关键字,第一个是用法,第二个是原理,即为什么synchronized关键字能够保持线程同步。 用法synchronized的修饰对象主要有以下两种: 修饰一个代码块。 synchronized(this|object) {}:获得对象级的锁。当多个线程访问同一对象内的同步代码块时,只能互斥访问 synchronized(类...
2019-09-13
Java
Java
Read More
Java中的锁
本文转自:不可不说的Java“锁”事 前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷...
2019-09-13
Java
Java
Read More
谈一谈Java中的集合类之总述
本文涉及集合类知识以及面试常问知识点 OverView集合类分为List,Map,Set. 先上张图 Map包括HashMap, LinkedHashMap, HashTable, TreeMap 和 WeakHashMap, ConcurrentHashMap HashMap 不是线程安全,最多允许一条键为null的记录 LinkedHashMap 保存了记录的插入顺序 Con...
2019-09-05
Java
Java
Read More
谈一谈Java常量池之class常量池
Java常量池分为字符串常量池,class常量池和运行时常量池。本文主要讲class常量池。 什么是class常量池顾名思义,class常量池就是class文件中对应的常量池,那什么是class文件呢,就是将java文件编译得到的字节码文件,jvm所处理的也正是这种字节码文件。而class常量池,指的就是这个字节码文件中对应的一部分内容。 class文件结构为了进一步了解class文件,我们...
2019-09-04
Java
Java
Read More
Java中的NIO
NIO(Non-Blocking IO,非阻塞同步IO)是Jdk 1.4后提出的新技术,为什么要提出这个技术呢?是为了解决什么问题呢? 要回答这个问题,就要从传统的阻塞式IO说起。 何为同步异步,何为阻塞非阻塞对IO来说, 同步:API调用返回时就已经知道执行结果了 异步:API调用返回时还不知道执行结果,需要过一会儿才能知道 阻塞:当没有数据读或者写时,它就一直等啊等,等到有数据来 非阻...
2019-07-17
Java
Java
Read More
Java反射机制
写这篇文章主要想讲两个问题: 什么是反射 反射存在的意义 反射能做哪些事 什么是反射反射,简单的来讲,是一种在程序运行时生成对象的技术。为什么说是运行时呢,相比我们平时写代码时创建对象,比如: 123public static void main(){ Object obj = new Object();} 我们创建对象的代码是事先写好的,那么程序在编译的时候...
2019-07-11
Java
Java
Read More
Previous
8 / 10
Next