自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 java8-Stream原理

前言java8新特性目前使用非常广泛,其中Stream更是最常用的特性,这篇文章将介绍Stream的原理,如果你现在还不怎么会用的话可以看一下菜鸟教https://www.runoob.com/java/java8-streams.html,或者我的博客https://www.runoob.com/java/java8-streams.html。如果你想学更多实战中的运用最好...

2019-09-15 14:41:00 161

转载 FutrueTask原理及源码分析

1.前言相信很多人了解到FutureTask是因为ThreadPoolExecutor.submit方法,根据ThreadPoolExecutor.submit的使用,我们可以先猜一下FutureTask的原理。public static void main(String[] args) throws ExecutionException, InterruptedExcept...

2019-08-11 19:16:00 184

转载 jvm是怎样调用方法的

jvm内部有五种调用方法的指令invokeinterface 用以调用接口方法,在运行时搜索一个实现了这个接口方法的对象,找出适合的方法进行调用。(Invoke interface method)invokevirtual 指令用于调用对象的实例方法,根据对象的实际类型进行分派(Invoke instance method; dispatch based on c...

2019-02-03 12:07:00 130

转载 从jvm角度来解析java语法糖

java有很多语法糖,比如自动拆箱,自动装箱,foreach等等,这些原理相信每一个入门教程里都有讲,但是我相信不是每一个人都通过查看这些语法糖的字节码来确认这些原理,因为我也是现在才想看一下。1.自动拆箱和自动装箱public void test() { Integer integer = 1; int i = integer;}...

2019-02-03 12:05:00 123

转载 从JVM的角度解析String

1.字符串生成过程我们都知道String s = "hello java";会将“hello java”放入字符串常量池,但是从jvm的角度来看字符串和三个常量池有关,class常量池,运行时常量池,全局字符串常量池(也就是常说的字符串常量池)第一个是class的常量池,看一下下面这个代码public class StringTest { publ...

2019-01-24 16:45:00 183

转载 两个字符串相加究竟发生了什么

首先从一张图开始,图中对字符串相加和StringBuild.append()做了性能对比。有人说字符串每次相加都新建了一个对象所以慢,事情真的是这样吗?先要了解真相最好的方法当然是反编译了,使用 javap -c 反编译的结果public void test(); Code: 0: ldc #2 ...

2018-12-22 18:02:00 379

转载 简单工厂搭配策略模式

简单介绍一下这两个设计模式。策略模式的思想就是,当你要根据特定场景使用特定算法时,可以把用一个接口提供这个算法,不同的场景对他进行不同的实现。主流程通过不同的实现类来完成这个功能。简单工厂就是根据一个type返回对应的对象。简单工厂+策略模式就可以实现根据调用方传过来的type通过简单工厂获取到对数据操作的实现类,然后操作数据返回,当新增一个type时,可以很清晰解决,避...

2018-12-20 20:09:00 125

转载 java返回集合为null还是空集合

个人认为在自己写接口时,需要返回集合时返回一个空集合,比如mybatis查询如果返回一个集合,结果为空时也会返回一个空集合而不是null。那么这样有什么好处呢?最大的好处就是调用方不用在判断是否为null,可以直接用,因为不用抛空指针。当然这也有缺点,如果返回Lists.newArrayList();或者new ArrayList();这会新建一个对象,而这个对象很可能是没...

2018-12-19 22:56:00 2683

转载 idea常用快捷键

搜索功能两下shift:查找类ctrl+F:在当前文件查找ctrl+shift+F:全局查找ctrl+r:当前文件替换ctrl+shift+r:全不文件替换ctrl+shift+n:全局查找文件重构功能ctrl+shift+m:提取方法ctrl+shift+f:提取成员变量ctrl+shift+v:提取局部变量ctrl+shift+c:提取...

2018-09-08 11:08:00 82

转载 (7)Stream简介

流的个人理解:怎样获得流:怎样处理流:中间操作和终端操作介绍:中间操作和终端操作的使用:流的个人理解:Stream也就是流,他和IO流不一样,他是java8诞生的东西,我对他的理解就是一个更为高级的容器,他可以轻易的对立面存储的数据进行各种各样的操作,比如过滤,转换,迭代等等。流对集合,数组等进行了进一步的封装,使开发人员更容...

2018-07-29 15:34:00 110

转载 (6)函数式接口的简单使用

突然间又来了一个新需求,比如,我想要所有人的名字,不要其他信息。packagecom.qunar.hotel.java8;importcom.google.common.collect.ImmutableList;importcom.google.common.collect.Lists;importorg.juni...

2018-07-28 20:02:00 113

转载 (4)函数式接口

java8之前,已经有一些函数式接口了,比如comparator,Thread,Runable,看到这里,可能已经忘了什么是函数式接口了。函数式接口:只有一个抽象方法的接口叫做函数式接口。函数式接口的存在使得lambda表达式,方法引用,只有一个方法,编译器非常方便对类型做判断,既然函数式接口这么好,那么java8怎么可能全部让开发人员自己写函数式接口。java.util...

2018-07-28 20:00:00 131

转载 (5)函数式接口的简单使用之Predicate

我们经常操作List,例如现在有一个功能要求在所有人中筛选出年龄在20岁以上的人。publicclassMyTest {privatefinalList<Person> allPersonList;{Person p1 =newPerson("风清扬",42);...

2018-07-28 20:00:00 116

转载 (3)方法引用

首先定义一个接口publicinterfaceCalculation<T> {publicT colculate(T t1, T t2);}这个接口只有一个方法也就是计算,下面展示三种使用这个接口的方式。//匿名内部类@Test...

2018-07-28 19:59:00 352

转载 (2)传递代码

java8之前,java只允许传基础数值或者对象的引用,而现在java允许传代码了。接下来还是以Comparator来举例。//匿名内部类@Testpublicvoidjava8Test() {Person p1 =newPerson(22);Person p2 =newPerson(23);...

2018-07-28 19:58:00 115

转载 (1)java8初体验

很多博客都拿Comparator,我也贴一下吧。java8以前的匿名内部类用来排序。//匿名内部类@Testpublic void java8Test() { Person p1 = new Person(22); Person p2 = new Person(23); Person p3 = new Person(21...

2018-07-28 19:57:00 81

转载 LeetCode第五题:Longest Palindromic Substring

Given a strings, find the longest palindromic substring ins. You may assume that the maximum length ofsis 1000.Example 1:Input: "babad"Output: "bab"Note: "aba" is also a valid answer....

2018-07-15 20:42:00 97

转载 LeetCode第三题:Longest Substring Without Repeating Characters

Given a string, find the length of thelongest substringwithout repeating characters.给定一个字符串,找到最长无重复子串。Examples:Given"abcabcbb", the answer is"abc", which the length is 3.Given"bbbbb"...

2017-12-24 14:20:00 83

转载 LeetCode第二题:Add Two Numbers

You are given twonon-emptylinked lists representing two non-negative integers. The digits are stored inreverse orderand each of their nodes contain a single digit. Add the two numbers and ret...

2017-12-24 13:54:00 69

转载 LeetCode第一题:Two Sum

Given an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would haveexactlyone solution, and you may not use the...

2017-12-24 13:25:00 98

空空如也

空空如也

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

TA关注的人

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