自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LinkinPark的博客

当你的才华撑不起你的野心时,请心无旁骛,继续学习,愿多年以后你我都能成为自己想象的模样。

  • 博客(13)
  • 收藏
  • 关注

原创 java1.8--OptionalInt,OptionalDouble,OptionalLong类

OptionalInt,OptionalDouble,OptionalLong类的工作方式与Optional类十分类似,只不过他们是专门操作int,都变了,long类型的值而设计的。因此,他们分别定义了getAsDouble(),getAsInt(),getAsLong()方法,而不是get()方法。值得注意的一点是,上面这3个类并不支持ofNullable(),filter(),ma

2015-10-31 14:17:54 8920

原创 java1.8--Optional类

身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题,前面一篇博客我也整理到了Null Object模式,也可以解决这个问题。现在不用再被这些事情恶心了,java8引入了一个新的Option

2015-10-30 18:08:32 4072

原创 java1.8--Null Object模式

整理这篇博客是因为现在在整理java8中的optional,所以觉得很有必要整理下Null Object模式。java.lang.NullPointerException,只要敢自称Java程序员,那对这个异常就再熟悉不过了。为了防止抛出这个异常,我们经常会写出这样的代码:Person person = people.find("LinkinPark...");if (person != n

2015-10-30 16:12:58 3663

原创 JDK自带的缓存--包装类的缓存

关于包装类和基本类型的文章我前面已经整理过了,这里大致罗列下重点。我们主要是想研究下包装类的缓存。1,自动装箱和自动拆箱java1.5之后就提供了自动装箱和自动拆箱的功能,当然我们也可以手动来装箱和拆箱。基本类型-->包装类对象:new WrapperClass(primitive),Integer a = new Integer(1);包装类对象-->基本类型:Wrapp

2015-10-27 17:22:47 3219

原创 函数式编程--lambda表达式对比匿名内部类

从前面的整理中我们看出了,Lambda表达式其实是匿名内部类的一种简化,因此它可以部分取代匿名内部类。1,Lambda表达式与匿名内部类存在如下相同点:1),Lambda表达式与匿名内部类一样,都可以直接访问“effectively final”的局部变量,以及外部类的成员变量2),Lambda表达式创建的对象与匿名内部类生成的对象一样,都可以直接调用从接口中继承的默认方法。

2015-10-27 16:00:56 5748

原创 java1.8--改进的接口

关于接口,每天的编码都在写,就不多说了。这里对比下接口,抽象类,类3者的关系:1),接口是一种规范,就是告诉外界这个东东可以做什么。2),抽象类是一种模板,就是告诉外界这个东西的一部分公共功能。3),类和上面的接口,抽象类最大的区别就是类可以维护状态信息。在以前的接口中1,没有构造方法,不能实例化2,接口只能继承接口,不能继承类3,接口里没有普通方法,方法全

2015-10-27 10:54:01 732

原创 函数式编程--方法和构造器引用

前面已经说过了,如果lambda表达式的代码块只有一行代码,可以省略lambda表达式中代码块的花括号,语句后面的逗号也要省去的。不仅如此,如果lambda表达式的代码块只有一行代码,还可以在代码中使用方法引用和构造器引用。方法引用和构造器引用可以让lambda表达式编码更加简洁,具体语法就是使用2个英文冒号,然后加上方法名字,注意没有括号的。一共有4种情况,类引用类方法,对象引用实例

2015-10-26 15:37:05 1294

原创 函数式编程--变量作用域

1,lambda表达式捕获变量通常,我们希望能够在lambda表达式的闭合方法或类中访问其他的变量,比如下面的代码:public class Test{ public void test(String text, int count) { Runnable a = () -> { for (int i = 0; i < count; i++) { Sy

2015-10-26 09:58:42 2645

原创 函数式编程--函数式接口

Lambda表达式的类型,也被称为目标类型,lambda表达式的目标类型必须是函数式接口。函数式接口代表只包含一个抽象方法的接口。函数式接口可以包含多个默认方法,类方法,当只能声明一个抽象方法。java8中专门为函数式接口提供了一个@FunctionalInterface注解,该注解通常方法接口定义前面,这个注解没有任何作用,只是告诉编译器执行更加严格,检查该接口必须是函数式接口,否则编译

2015-10-23 22:04:21 1076

原创 函数式编程--使用lambda表达式

前面一篇博客我们已经说到了,lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口的实例。现在我们来写一段java的命令者模式来自己研究下lambda表达式的语法。这里重复下命令者模式:考虑这么一个情景,某个方法需要完成一个行为,但是这个行为的具体实现无法确定,必须等到执行该方法时才可以确定。举个例子,我有个方法需要遍历某个数组的数组元素,但是无法确定在遍历这个数组元素时如何处

2015-10-23 20:06:23 1104

原创 函数式编程--为什么会出现lambda表达式?

java一直处在发张和演化的过程中,其中有2个版本从根本上改变了代码的编写方式。第一个就是JDK5之后增加的泛型,还有一个就是现在介绍的函数式编程,lambda表达式。lambda表达式是java8新增的功能,他们明显的增强了java,原因2点:1),它们增加了新的语法元素,使java语言的表达能力得以提升,并流线化了一些常用结构的实现方法2),lambda表达式的加入也导致了AP

2015-10-23 16:16:20 671

原创 java1.8--1.8入门介绍

在我之前的工作中,一直使用的是java6。所以即使现在java已经到了1.8,对于1.7增加的新特性我也基本没使用的。在整理一系列1.8的新特性的过程中,我也会添加上1.7增加的特性。下面的整理可能是java7最重要的新特性:1,String现在能够控制switch语句2,二进制整型字面量3,数值字面量中的下划线4,扩展的try语句,称为带资源的try语句,这种try语句支持自

2015-10-23 11:13:01 1280

原创 常用容器制定初始化容量

前面在javaSe中我已经整理了相关的一些数据结构,现在就性能方面在这里做一个总结。以后在实际编码中,应该按照这样子来初始化相关的数据结构。1,StringBuffer和StringBuilderStringBuffer()           构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。StringBuffer(int capacity)      

2015-10-16 15:19:38 2897

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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