
java
言玉gz
这个作者很懒,什么都没留下…
展开
-
Java8 特性
目录OPTIONAL创建 Optional 对象访问 Optional 对象的值返回默认值返回异常转换值过滤值OPTIONAL我们从一个简单的用例开始。在 Java 8 之前,任何访问对象方法或属性的调用都可能导致 NullPointerException:为了简化这个过程,我们来看看用 Optional 类是怎么做的。从创建和验证实例,到使用其不同的方法,并与其它返回相同类型的方法相结合,下面是见证 Optional 奇迹的时刻。创建 Optional 对象可以通过of() 或 ofNull原创 2020-07-17 17:24:39 · 141 阅读 · 0 评论 -
java两个集合取交集、并集与差集
@Test public void test() { List<String> list1 = new ArrayList<>(); list1.add("5"); list1.add("1"); list1.add("3"); List<String> list2 = new ArrayList<>(); list2.add("2"); .原创 2020-07-08 14:49:18 · 6570 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
目录一. 前言二. 认识BlockingQueue三. BlockingQueue的核心方法:四. 常见BlockingQueue4. 1. ArrayBlockingQueue4.2.LinkedBlockingQueue3. DelayQueue4. PriorityBlockingQueue5. SynchronousQueue五. 小结一. 前言在新增的Concurrent包中,Blo...转载 2018-12-12 18:01:05 · 210 阅读 · 0 评论 -
ThreadPoolExecutor使用详解
目录构造方法参数讲解Executors提供的线程池配置方案构造方法参数讲解参数名作用corePoolSize核心线程池大小maximumPoolSize最大线程池大小keepAliveTime线程池中超过corePoolSize数目的空闲线程最大存活时间;可以allowCoreThreadTimeOut(true)使得核心线程有效时间TimeUnit...原创 2018-12-12 17:03:07 · 580 阅读 · 0 评论 -
Java中的集合
Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念:1) Collection一组"对立"的元素,通常这些元素都服从某种规则 1.1) List:有序可重复 1.2) Set:无序不可重复 1.3) Queue保持一个队列(先进先出)的顺序2) Map一组成对的"键值对"对象1. SetSet集合中对象不可重复,因此当试图添加两个相同元素时,add...原创 2018-12-04 17:06:59 · 170 阅读 · 0 评论 -
CAS 机制
1. 概述一般在多线程程序中,我们处理线程安全一般采用Synchronized关键字或Lock类来实现。Synchronized关键字会让没有得到锁资源的线程进入BLOCKED状态,而后在争夺到锁资源后恢复为RUNNABLE状态,这个过程中涉及到操作系统用户模式和内核模式的转换,代价比较高。2. 什么是CASCAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。...转载 2018-09-27 14:49:59 · 608 阅读 · 0 评论 -
悲观锁和乐观锁
1. 悲观锁、乐观锁概述悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守...原创 2018-09-27 14:28:28 · 148 阅读 · 0 评论 -
Exchanger
Exchanger原创 2018-09-27 13:42:53 · 551 阅读 · 0 评论 -
Java同步工具
同步工具类是用来根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具,其他的类型包括信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)闭锁:闭锁相当于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程通过,当到达结束状态时,这扇门会打开允许所有线程通过,如:(CountDownLatch、FutrueTask)信号量:如:(Semaphore)...原创 2018-09-27 09:28:56 · 531 阅读 · 0 评论 -
线程中断
1 为什么废弃Thread的stop函数?对于有多线程开发经验的开发者,应该大多数在开发过程中都遇到过这样的需求,就是在某种情况下,希望立即停止一个线程。比如:做Android APP开发,当打开一个界面时,需要开启线程请求网络获取界面的数据,但有时候由于网络特别慢,用户没有耐心等待数据获取完成就将界面关闭,此时就应该立即停止线程任务,不然一般会内存泄露,造成系统资源浪费,如果用户不断地打开又...原创 2018-09-27 09:06:05 · 504 阅读 · 0 评论 -
一个值得深思的JVM示例
JSON是什么?JSON是JS的一种简单数据格式,JSON是JavaScript原生格式,它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号&amp;amp;amp;lt;script&amp;amp;amp;gt;var obj1={};//这只是JS对象var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象(键不是双引号) */var o...原创 2018-09-23 22:31:08 · 184 阅读 · 0 评论 -
java详解
logback日志maven原创 2018-07-12 18:56:05 · 461 阅读 · 0 评论 -
java中环境变量
System.out.println("Java 运行时环境供应商_java.vendor:" + System.getProperty("java.vendor"));//Java 运行时环境供应商System.out.println("Java 供应商的 URL_java.vendor.url:" + System.getProperty("java.vend...原创 2018-07-12 18:01:42 · 237 阅读 · 0 评论 -
DOM,SAX,JDOM,DOM4J 四种方式解析xml
SAXSAX采用事件处理的方式解析XML文件,利用 SAX 解析 XML 文档,涉及两个部分:解析器和事件处理器:解析器:解析器可以使用JAXP(javax.xml.parsers)的API创建事件处理器:SAX API中主要有四种处理事件的接口,它们分别是ContentHandler,DTDHandler, EntityResolver 和 ErrorHandler 特点:...原创 2018-04-17 18:14:10 · 423 阅读 · 0 评论