1. Java虚拟机运行时数据区 在JDK1.8之前,JVM运行时数据区分为堆、虚拟机栈、本地方法栈、方法区、程序计数器。如下图所示: 虚拟机栈:线程私有,随线程创建而创建。栈里面是一个一个“栈帧”,每个栈帧对应一次方法调用。栈帧中存放了局部变量表(基本数据类型变量和对象引用)、操作数栈、方法出口等 ...
分类:
编程语言 时间:
2020-01-08 14:14:16
阅读次数:
66
啥是行为参数化 行为参数化的本质是不执行复杂的代码块,让逻辑清晰可用。 相信使用过js的你肯定知道,js是可以传递函数的,而在 java中也有类似的特性,那就是匿名函数。 理解:行为参数化是一种方法,可以接收多种不同行为作为其参数,并在内部使用它们来完成任务。 将公共的逻辑抽象 一个类几万行,遍地的 ...
分类:
编程语言 时间:
2020-01-08 11:07:54
阅读次数:
79
Java8 Stream流 "Java8关于map和flatMap的代码片段思考" "Java8初体验(二)Stream语法详解" distinct() flatMap() ...
分类:
编程语言 时间:
2020-01-07 16:33:56
阅读次数:
107
今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通 ...
分类:
编程语言 时间:
2020-01-06 17:54:28
阅读次数:
300
痛点 在使用Spring mvc 进行开发时我们经常遇到前端传来的某种格式的时间字符串无法用java8的新特性java.time包下的具体类型参数来直接接收。 我们使用含有java.time封装类型的参数接收也会报反序列化问题,在返回前端带时间类型的同样会出现一些格式化的问题。今天我们来彻底解决他们 ...
分类:
编程语言 时间:
2020-01-06 09:53:46
阅读次数:
87
in7装Ubuntu双系统,不需要U盘 本文测试安装的是32位的ubuntu-14.10-desktop-i386.iso 系统。 准备: Ubuntu系统ISO文件。EasyBCD 软件。 Step 1. 在windows里面把空余空间腾出来 计算机右键,管理,磁盘管理,通过压缩卷等方法得到要分给 ...
收集器用法详解与多级分组和分区 为什么在collectors类中定义一个静态内部类? 设计上,本身就是一个辅助类,是一个工厂。作用是给开发者提供常见的收集器实现。提供的方法都是静态方法,可以直接调用。 函数式编程最大的特点:表示做什么,而不是如何做。开发者更注重如做什么,底层实现如何做。 举例。co ...
分类:
编程语言 时间:
2020-01-05 22:16:50
阅读次数:
146
两个List集合求交集想必学过Java的都知道用系统自带的retainAll()方法,但是在数据量比较大时,这个方法效率并不高,利用空余时间研究了几种数据量较大时求两个集合交集的办法。本文主要研究了JDK自带方法求交集、Guava集合求交集、Java8的parallelStream并行流求交集、双指 ...
分类:
编程语言 时间:
2020-01-05 00:44:11
阅读次数:
147
从源代码深入Stream / 学习的时候,官方文档是最重要的. 及其重要的内容 我们不仅要知道stream用,要知道为什么这么用,还要知道底层是怎么去实现的. 个人注释:从此看出,虽然新的jdk版本对开发人员提供了很大的遍历,但是从底层角度来说,实现确实是非常复杂的. 对外提供很简单的接口使用. ( ...
分类:
编程语言 时间:
2020-01-05 00:40:43
阅读次数:
109
方法引用:method reference 先简单的看一下哪里用到了方法引用: 方法引用实际上是lambda表达式的一种语法糖 我们可以将方法引用看做一个「函数指针」,function pointer 方法引用共分为4类: 下面会逐步介绍四种类型,并且用代码实现:公用的Student类如下 1. 类 ...
分类:
编程语言 时间:
2020-01-04 23:56:35
阅读次数:
173