自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr_moving

god, a gf pls

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

转载 JDK1.8新特性04--Optional处理空指针问题

空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很...

2019-11-22 17:12:46 762 1

原创 JDK1.8新特性02--lambda表达式与方法引用

3. lambda表达式Lmabda表达式的语法总结: () -> ();3.1 左边小括号中参数类型可以省略,编译器会自动匹配。3.2 左右遇一省括号,即如果只有一个参数,可省去左边小括号;如果lambda方法体中只有一条语句,可省略右边大括号,且如果该语句是返回语句,可省去return。4. 方法引用若lambda体中的内容有方法已经实现了,那么可以使用“方法引用...

2019-11-22 13:49:45 137

转载 JDK1.8新特性03--Stream

java.util.Stream 概念概念不同于传统的IO流,stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。Stream为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。Stream 操作分为中间...

2019-11-10 15:57:42 232

转载 可变参数与泛型结合(有坑)

可变参数VarArgsVarArgs简述 只需要明确一点即可,java方法的变长参数只是语法糖,其本质上还是将变长的实际参数 varargs包装为一个数组。所以 Object[] objs 与 Object... objs 被看作是相同的签名,在源码级别是不能同时存在的,因此,无法编译通过VarArgs包装包装方式(注意,下面的代码不是实际的实现,而是一个比喻说明): 如...

2019-11-09 13:10:35 581

转载 JAVA可变参数

到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了。尽管可以通过重载机制,为同一个方法提供带有不同数量的形参的版本,但是这仍然不能达到让实参数量任意变化的目的。然而,有些方法的语义要求它们必须能接受个数可变的实参——例如著名的ma...

2019-11-09 12:53:04 463

原创 JDK1.8新特性01--函数式接口

1. 新增 函数式接口 概念函数式接口,只包含一个抽象方法的接口。同时提供了注解@FunctionalInterface 可以检测是否符合函数式接口格式。注意:假如接口声明了一个覆盖java.lang.Object的全局方法之一的抽象方法,那么它不会计入接口的抽象方法数量中,因为对于这类方法,任何实现类都有继承自Object的实现或自己定义的实现。 比如comparator接口jdk1...

2019-11-06 18:37:59 154

转载 CDN简介

618电商节、双十一购物狂欢节,到底是什么在支撑数以万计的秒杀活动?这就不得不提一直隐姓埋名的 CDN 了,注意不是 CSDN,而是 CDN,CDN,CDN!其全称是 Content Delivery Network,即内容分发网络。  那到底 CDN 是什么鬼,我们还得从西天取经说起……  1300年前,唐僧师徒取经要跋涉十万八千里,历经九九八十一难,一路打怪升级,最终才...

2019-11-05 15:15:35 213

原创 多线程下的异常捕获

推荐博文https://www.cnblogs.com/noteless/p/10354733.html这篇博文已经很详细了,超赞,没什么能补充的对于最后提出的一个问题:对于未检查异常,你也可以进行try catch,但是代码始终包裹在try中,真的好吗?情景:在run方法中是不能够抛出异常的,如果是已检查的异常,那么必须进行try catch。对于未检查的异常,如果没有进行处理,...

2019-11-04 22:28:51 685

原创 线程组

线程组的核心在于方便批量管理同一类线程,定义线程的共性行为。比如某个线程出现异常,则中断该组中所有线程。推荐博文https://www.cnblogs.com/noteless/p/10354721.html#1. 私有的无参构造方法会构造一个system线程组,也被称之为根线程组。该方法由C代码调用 /** * Creates an empty Thread gro...

2019-11-04 17:51:16 191

转载 深入理解java异常处理机制

1.引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。package Test; pub...

2019-11-03 19:37:20 343

原创 Java修饰符

访问权限修饰符一、概要通过了解Java4种修饰符访问权限,能够进一步完善程序类,合理规划权限的范围,这样才能减少漏洞、提高安全性、具备表达力便于使用。二、权限表修饰符 同一个类 同一个包 不同包的子类 不同包的非子类 private √ × × × 默认 √ √ × × protected ...

2019-11-03 17:21:52 97

原创 Future以及FutureTask

Future介绍在学习Future之前,需要先了解传统模式与future模式的区别,我觉得这个很重要。但是确实又不好说明,另起一篇文章。https://blog.csdn.net/java_lifeng/article/details/102844190future模式是一种并发设计模式,Future接口是JDK对该模式提供的一种实现,两者并无必然关系。1. Future表示异步...

2019-11-03 16:53:14 541

原创 Future模式介绍

普通模式与Future模式的简单对比:1. 普通模式在处理多任务时是串行的,在遇到耗时操作的时候只能等待,直到阻塞被解除,才会继续执行下一个任务2. Future模式,只是发起了耗时操作,函数立马就返回了,真正执行具体操作由另外一个工作线程去完成,并不会阻塞客户端线程。所以在工作线程执行耗时操作的时候客户端无需等待,可以继续做其他事情,等到需要的时候再向工作线程获取结果。Futur...

2019-11-01 12:36:38 1619

空空如也

空空如也

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

TA关注的人

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