- 博客(26)
- 收藏
- 关注
转载 java多线程---CyclicBarrier
CyclicBarrier是另外一种多线程并发控制实用工具,和CountDownLatch非常相似,比CountDownLatch更复杂且强大。构造方法 //parties表示屏障拦截的线程数量,当屏障撤销时,先执行barrierAction,然后在释放所有线程 public CyclicBarrier(int parties, Runnable barrierAc...
2019-03-23 23:25:00 115
转载 java多线程---CountDownLoatch
CountDownLatch是一个同步工具类,CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。构造方法 //构造器中的计数值(count)实际上就是闭锁需要等待的线程数量。这个值只能被设置一次,而且CountDownLatch没有提供任何机制去重新设置这个计数值。 public CountDownLatch(int coun...
2018-08-14 23:10:00 174
转载 java多线程---读写锁ReadWriteLock
public interface ReadWriteLockReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。public abstract interface ReadWriteLock{ public abstract Lock readLock();...
2018-06-30 16:41:00 114
转载 java多线程---重入锁ReentrantLock
1.定义重入锁ReentrantLock,支持重入的锁,表示一个线程对资源的重复加锁。2.底层实现每个锁关联一个线程持有者和计数器,当计数器为0时表示该锁没有被任何线程持有,那么任何线程都可能获得该锁而调用相应的方法;成功后,JVM会记下锁的持有线程,并且将计数器置为1;此时其它线程请求该锁,则必须等待;而该持有锁的线程如果再次请求这个锁,就可以再次拿到这个锁,同时计数器会递增;当...
2018-06-29 20:06:00 128
转载 java多线程---volatile
被volatile修饰的变量能够保证每个线程能够获取该变量的最新值,从而避免出现数据脏读的现象。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。在访问volatile变量时不会执...
2018-05-22 20:29:00 106
转载 享元模式
享元模式是设计模式中以提高系统性能为目的的模式之一,其核心思想是,共享一份系统中相同对象的拷贝,不必每次使用都创建新的对象。角色作用抽象享元定义需共享的对象的业务接口具体享元实现抽象享元接口,完成某一具体逻辑享元工厂创建具体享元类,维护相同的享元对象Main通过享元工厂获得享元对象抽象享元public interface Qu...
2018-05-19 16:41:00 84
转载 java多线程---线程的基本方法
Thread的常用方法1.start()---线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。 一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了。eg:public class ThreadTest extends Thread{ ...
2018-05-17 19:48:00 113
转载 java多线程---进程与线程
进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。线程线程,有时被称为轻量级进程(Lightweight Process,...
2018-05-12 16:16:00 73
转载 java多线程---cpu历史及一些关键概念
1.cpu与摩尔定律:摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。这一定律自2004年以来,似乎已经失效,失效的原因是由于硅晶...
2018-05-09 20:24:00 148
转载 IO---随机访问文件流
随机访问文件流public class RandomAccessFile implements DataOutput, DataInput, Closeable此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如...
2018-05-05 16:06:00 156
转载 IO---对象流
对象流类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。通俗来说就是将数据结构或对象转换成二进制串的过程。ObjectOutputStreamwriteObject 方法用于将对象写入流中。所有对象(包括 ...
2018-05-02 19:53:00 73
转载 IO---转换流
转换流OutputStreamWriterOutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。 java.lang.Objectjava.io.Writerjava.io.OutputStreamWriteregpubl...
2018-04-27 20:10:00 92
转载 IO---缓冲流
缓冲流BufferedOutputStreamBufferedOutputStream 是缓冲输出流。它继承于FilterOutputStream。应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。属性 protected byte buf[]; //内置缓存字节数组、用于存放程序要写入out的字节 prote...
2018-04-25 20:21:00 62
转载 IO---字符流
字符流字符流=字节流+编码表(由字符及其对应的数值组成的一张表,各个国家的文字用数字来表示,并一一对应,形成一张表)常见编码表ASCII/Unicode 字符集ISO-8859-1GB2312/GBK/GB18030BIG5UTF-8字符输入流 public abstract class Reader implements Readable, Closeab...
2018-04-24 19:23:00 70
转载 IO---字节流
字节流在文件系统中,任何文件都是以二进制形式存储的,二进制用位体现(8位为一个二进制单元),8位=1字节,所以字节流可以处理任何文件。字节输出流***此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。 public abstract class OutputStream implements Closeable, Flushable...
2018-04-23 20:13:00 68
转载 JAVA IO---File
File是文件和目录路径名的抽象表示形式。File 继承于Object类,实现了Serializable接口,File对象支持序列化操作;实现了Comparable接口,File对象之间可以比较大小。File的属性public static final char separatorChar //与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.se...
2018-04-21 14:11:00 82
转载 代理模式
代理模式是一种很常见的设计模式,代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。3种实现方式静态代理动态代理jdk代理cglib代理静态代理public interface Server { void send();} public class ServerTarget implements Server { @Overr...
2018-04-17 09:45:00 56
转载 TreeMap源码解析
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.SerializableHashMap继承抽象类AbstractMap,实现了NavigableMap接口,NavigableMap继承...
2018-04-14 16:01:00 52
转载 LinkedHashMap源码解析
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>LinkedHashMap是HashMap的子类,实现了Map接口。LinkedHashMap的属性 private transient Entry<K,V>...
2018-03-24 15:57:00 68
转载 HashMap源码解析
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, SerializableHashMap继承抽象类AbstractMap,实现了Map接口。HashMap的属性 static final int D...
2018-03-22 20:18:00 52
转载 单例模式
单例模式是设计模式中使用最为普遍的模式之一,它是一种对象创建模式,单例模式可以确保系统中一个类只产生一个实例,而且自行实例化并向整个系统提供这个实例。好处节省系统开销,频繁使用的对象,节省创建花费的时间。由于创建次数少,内存使用低,减轻GC压力。特点单例类确保自己只有一个实例。单例类必须创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。饿...
2018-03-18 23:34:00 96
转载 Vector源码解析
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableVector继承抽象类AbstractList,实现了List接口。实现了RandomAccess接口...
2018-03-17 15:38:00 62
转载 LinkedList源码详解
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.SerializableLinkedList继承自AbstractSequenceList、实现...
2018-03-17 13:55:00 68
转载 ArrayList源码详解
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList是一个容量能够动态增涨的数组,它是java集合框架中一个重要的类,继承抽象类Ab...
2018-03-10 22:25:00 107
转载 spring源码分析---2.Bean加载流程
首先来看下面一段简单的代码1 BeanFactory bf = new XmlBeanfactory(new ClassPathResource("spring.xml"));2 bf.getBean("testBean");这个ClassPathResource类是用于加载classes下的spring配置文件。我们来看看这个类的继承关系,Resource接口抽...
2018-02-20 19:49:00 75
转载 spring源码解析---1.环境搭建
1.安装GitHub。下载地址:desktop.github.com。2.安装Gradle。下载地址:gradle.org/releases/。下载好,是个zip包,解压到目录,再配置下环境变量就可以用了。新建GRADLE_HOME在系统变量path里,加入对应的Gradle的系统变量配置好,在系统cmd窗口输入命令“gradle -version”,如果安...
2018-02-18 00:39:00 126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人