Java
文章平均质量分 91
hello
DuanJiaNing_
越努力越幸运
展开
-
java nio - 2 文件加锁
文件锁 FileLockJdk 1.4 引入文件加锁机制,它允许我们同步访问某个作为共享资源的文件。不过,竞争同一个文件的两个线程可能在不同的JVM上;或者一个未java线程,另一个为操作系统中其他的每个本地线程。文件锁对其它的操作系统进程是可见的因为java的文件锁是直接映射到了本地操作系统的加锁工具。tryLcok和locktryLock()是非阻塞式的,它设法获取锁,但是原创 2018-01-17 15:02:13 · 465 阅读 · 0 评论 -
java 集合 3 - HashMap
参考文章:什么是HashMap?、图解集合4:HashMap接下来通过 jdk 1.8 进行分析HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。特点: 1. HashMap的key和value都允许null值,当key相同时, 值会覆盖,即key是唯一的。 2. Hash原创 2018-01-09 20:20:48 · 318 阅读 · 0 评论 -
java 集合 2 - LinkedList
java 集合 2 - LinkedList参考文章:图解集合2:LinkedListLinkedList是基于双向链表实现的。 特性 是否存取null值 可以 元素是否可以重复 可以 是否有序 有序 是否线程安全 不安全接下来直接通过源码(jdk1.8)分析。结点定义 private sta原创 2018-01-08 10:44:46 · 262 阅读 · 0 评论 -
java - ReentrantLock和Condition实现生产者-消费者
java - ReentrantLock和Condition实现生产者-消费者ReentrantLock重入锁(ReentrantLock)是一种递归无阻塞的同步机制。一个可重入的互斥锁(Lock),它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。 1. ReentrantLock 将由当前已经成功获得锁,并且还没有释放锁的线程所拥原创 2018-01-05 09:54:08 · 861 阅读 · 0 评论 -
java 集合 1 - ArrayList
java 集合 1 - ArrayList参考文章:图解集合1:ArrayListArrayList使用的数据结构是数组,即使用数组保存元素。 特性 是否存取null值 可以 元素是否可以重复 可以 是否有序 有序 是否线程安全 不安全接下来直接通过源码(jdk1.8)分析。可克隆、随机访问、序列化先原创 2018-01-04 15:16:21 · 424 阅读 · 1 评论 -
java-线程浅析
线程优先级,线程的终止,终止处于“阻塞状态”的线程,终止处于“运行状态”的线程,线程的五种状态,新建状态,新建状态,运行状态,阻塞状态,死亡状态,Object的wait,notify,notifyAll方法,Thread.sleep和wait区别,IllegalMonitorStateException原创 2017-12-16 15:44:45 · 314 阅读 · 0 评论 -
java-内存管理(程序计数器、虚拟机栈、本地方法栈、堆、方法区)和常量池
Java内存管理:深入Java内存区域1. 运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,创建以及销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。原创 2017-12-09 17:06:15 · 2116 阅读 · 0 评论 -
java - ThreadLocal
ThreadLocal是一个为线程提供线程局部变量的工具类。它的思想也十分简单,就是为线程提供一个线程私有的变量副本,这样多个线程都可以随意更改自己线程局部的变量,不会影响到其他线程。不过需要注意的是,ThreadLocal提供的只是一个浅拷贝,如果变量是一个引用类型,那么就要考虑它内部的状态是否原创 2017-12-07 19:38:16 · 307 阅读 · 0 评论 -
Java 8 新特性小结
参考文章链接 Java8 lambda表达式10个示例 Java 8新特性终极指南小结1. Lambda表达式(闭包); 2. 函数式编程支持: java.util.function.* 下的众多接口; 3. 流API; 4. 接口的默认方法和静态方法; 5. 新的Date和Time API。1 Optional 接口Java 8 Optional类深度解析原创 2017-12-05 20:25:55 · 337 阅读 · 0 评论 -
译:java - 为什么 String 在 java 中是不可变的?
为什么 String 在 java 中是不可变的?String 在 java 中是不可变的,一个不可变类意味着它的实例在创建之后就不可修改,实例的所有属性在创建时初始化,之后无法对这些属性进行修改。不可变类型有着许多的优点,这篇文章总结了 为什么 String 被设计成不可变的,文章将从内存、同步和数据结构的角度说明不变性概念翻译 2017-09-23 10:43:35 · 345 阅读 · 0 评论 -
java - 泛型
java - 泛型java - 泛型java SE 5 加入了泛型,泛型实现了 参数化类型 的概念,使代码可以应用于多种类型。创造容器类是促成泛型出现的原因之一,泛型可以用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性。原创 2017-08-05 15:25:17 · 395 阅读 · 0 评论 -
java-final 关键字
java - final 关键字,final 关键字可以修饰类,方法和变量。被 final 修饰通常指“这是无法改变的”,方法中的匿名内部类如果要直接使用外部方法的参数(或是局部变量),必须将参数或是局部变量声明为 final 。原创 2017-07-31 21:52:31 · 338 阅读 · 0 评论 -
java-用java.net.Socket和java.net.ServerSocket实现简单的聊天程序
用java.net.Socket和java.net.ServerSocket实现简单的聊天程序思路是这样的: 假设用户A与用户B进行聊天,用户B端使用ServerSocket作为服务端,而用户A使用Socket与用户B进行通信。这两个小程序需要运行在同一台电脑上,才能正常通信。运行时一定要先运行Server.class再运行Client.class。通过异常来控制程序逻原创 2017-03-17 11:25:47 · 1609 阅读 · 1 评论 -
java中的static
static在《Java编程思想》P86页有这样一段话:“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”“反过来”即:在非static方法中是可以调用被static修饰的方法的。static可以用在什么地方修饰成原创 2016-10-05 00:00:27 · 420 阅读 · 0 评论