排序:
默认
按更新时间
按访问量

两个栈实现一个队列以及两个队列实现一个栈(Java)

两个栈实现一个队列import java.util.Stack; public class Demo07 { Stack<Integer> stack1 = new Stack<Integer>();...

2018-04-19 10:53:51

阅读数:132

评论数:0

Java8新特性5--流式API

流式处理 流是一系列数据项,一次只生成一项。程序可以从输 入流中一个一个读取数据项,然后以同样的方式将数据项写入输出流。一个程序的输出流很可能是另一个程序的输入流。 流的特点 元素序列——就像集合一样,流也提供了一个接口,可以访问特定元素类型的一组有序值。集合讲的是数据,流讲的是计算。 源——流...

2018-01-04 11:07:36

阅读数:974

评论数:0

java8新特性3--lambda表达式

开发中,经常需要给一个方法传递一个接口类型的参数,为了传递不同的行为,我们需要创建不同的实现类,而通常这些类没什么重用价值,只使用一次就没用了。 考虑一个从一堆苹果中筛选符合条件的苹果的场景。 为了更好的应对需求变更,一个比较好的解决办法是将过滤的标准抽象出来,我们先定义一个接口作为抽象的选择标...

2018-01-04 11:04:06

阅读数:203

评论数:0

java8新特性2--注解变化

Java 8在两个方面对注解机制进行了改进,分别为: 你现在可以定义重复注解 你可以为任何目标添加注解 Java中的注解是一种对程序元素进行配置,提供附加信息的机制。 重复注解 之前版本的Java禁止对同样的注解类型声明多次。由于这个原因,下面的第二句代码是无效的。 @interface Auth...

2018-01-04 11:03:33

阅读数:179

评论数:0

java8新特性1--接口的变化

接口的变化 在Java8之前,Java中,实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。 但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。 现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进...

2018-01-04 11:02:56

阅读数:208

评论数:0

Java8新特性10--其他类库的变化

Map public static void main(String[] arg) { Map map=new HashMap(); //如果key不存在返回默认值 System.out.println(map.getOrDefault("...

2018-01-04 11:02:12

阅读数:136

评论数:0

Java8新特性4--方法引用

方法引用 lambda 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它们。在一些情况下, 比起使用Lambda表达式,它们更易读,感觉也更自然。 方法引用可以被看作仅仅调用特定方法的Lambda的一种快捷写法。 它的基本思想是,如果一个Lambda代表的只是“直接调...

2018-01-04 11:00:43

阅读数:92

评论数:0

Java8新特性6--使用集合流API

使用集合的流式API 直接上代码了,常用api都有了,要点都在注释中 苹果类: package java8.stream; /** * @author qiang.xie * @date 2017/5/4 */ public class Apple { private int w...

2018-01-04 10:58:38

阅读数:54

评论数:0

Java8新特性8--使用CompletableFuture构建异步应用

使用CompletableFuture构建异步应用 Future 接口的局限性 future接口可以构建异步应用,但依然有其局限性。它很难直接表述多个Future 结果之间的依赖性。实际开发中,我们经常需要达成以下目的: 将两个异步计算合并为一个——这两个异步计算之间相互独立,同时第二个又依赖于...

2018-01-04 10:57:14

阅读数:135

评论数:0

Java8新特性9--新的日期和时间API

新的日期时间处理API 从Java8开始,原生的Java API中已经能提供高质量的日期和时间支持,java.time包中整合了很多Joda-Time的特性。 LocalDate和LocalTime 开始使用新的日期和时间API时,你最先碰到的可能是LocalDate类。该类的实例是一个不可变对象...

2018-01-04 10:55:55

阅读数:192

评论数:0

java RMI原理详解

RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。 Java RMI:Java远程方法调用,即...

2017-12-28 10:11:18

阅读数:54

评论数:0

LongAdder

前言   最近在看到不少框架里面使用到了LongAdder这个类,而并非AtomicLong,很是困惑,于是专门看了LongAdder的源码,总结一下这两个的区别。 AtomicLong原理   就像我们所知道的那样,AtomicLong的原理是依靠底层的cas来保障原子性的更新...

2017-12-27 16:52:54

阅读数:350

评论数:0

非阻塞同步算法与CAS(Compare and Swap)无锁算法

锁(lock)的代价 锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。操作系统对多线程...

2017-12-27 16:43:19

阅读数:112

评论数:0

ThreadLocalRandom类原理

2.2、 并发包中ThreadLocalRandom类原理剖析 ThreadLocalRandom类是JDK7在JUC包下新增的随机数生成器,它解决了Random类在多线程下多个线程竞争内部唯一的原子性种子变量而导致大量线程自旋重试的不足。本节首先讲解下Random类的实现原理已经它在多线程下使用...

2017-12-26 16:17:16

阅读数:1382

评论数:0

Java8新特性7--使用Optional解决空指针问题

身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon...

2017-12-14 11:13:32

阅读数:154

评论数:0

Java 字符串拼接效率分析及最佳实践

java连接字符串有多种方式,比如+操作符,StringBuilder.append方法,这些方法各有什么优劣(可以适当说明各种方式的实现细节)? 按照高效的原则,那么java中字符串连接的最佳实践是什么? 有关字符串处理,都有哪些其他的最佳实践? 废话不多说,直接开始,...

2017-12-14 10:35:20

阅读数:67

评论数:0

lombok @EqualsAndHashCode 注解的影响

官方文档:@EqualsAndHashCode 原文中提到的大致有以下几点:  1. 此注解会生成equals(Object other) 和 hashCode()方法。  2. 它默认使用非静态,非瞬态的属性  3. 可通过参数exclude排除一些属性  4. 可通过参数of指定...

2017-12-12 15:33:55

阅读数:137

评论数:0

RPC服务和HTTP服务对比

很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,...

2017-11-28 10:03:55

阅读数:88647

评论数:25

spring相关注解

@Order 利用@Order控制配置类的加载顺序

2017-11-07 11:22:37

阅读数:99

评论数:0

cookie setSecure详解

在cas中或其他web开发中,会碰到安全cookie的概念,因为CAS中TGT是存放在安全cookie中的。下面是安全cookie 的理解:     Set-Cookie 的 secure 属性就是处理这方面的情况用的,它表示创建的 cookie 只能在 HTTPS 连接中被浏览器传递到服务...

2017-11-06 16:35:24

阅读数:155

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭