自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lambda表达式的Stream API的使用

Stream 翻译成中文为流,是java8中处理集合的重要操作,它可以指定你对集合的操作,比如查找、过滤、映射数据等操作。用一幅图理解下什么是流。 我们要注意的是Stream不会存储元素,它不会改变原对象,只是帮我们产生一个新的流。 Stream使用的三个步骤(中间操作是不会执行处理,会在终止操作一次处理) 1.创建stream 2.中间操作,比如filter、map、sort等 3.终止操作,产生结果。 下面用一个列子来说明 public static void main(String[] args

2020-06-07 17:23:15 183

原创 Java常用数据结构与算法概述

测试一下

2020-05-24 12:41:19 1371

原创 jdk8中Optional类的用法

optional 从字面意思理解它的意思是可选择的。optional是JDK8中出现的,对于判断null有非常好的用法,它是一个容器类,代表一个值是存在还是不存在,之前我们用null来表示一个值是否存在,现在我们可以用它来更清楚的表示。 我们首先看下它有哪些常用的方法。 public final class Optional<T> { public static<T> Optional<T> empty() { @SuppressWarnings

2020-06-10 22:47:25 299

原创 Lambda表达式----四大核心函数式接口

函数式接口:函数从定义上来说就是某种对应的关系,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)。函数式接口就是能帮我们完成某种功能的接口。通常用@FunctionalInterface来表明一个接口是函数式接口。java中有很多函数式接口。今天主要学习jdk1.8中内置的四大核心函数式接口。 1.消费型接口,接收一个T类型的参数,无返回 @FunctionalInterface public interface C

2020-06-07 12:38:58 356

原创 Lambda表达式的一些基础语法

1.lambda的基础语法:在java8中引入了一个新的操作符"->" 我们可以把它叫做箭头操作符或者lambda操作符。它的作用就是将lambda拆成两个部分。 左侧:lambda的参数列表 右侧:我们要执行的操作,也叫作lambda体 举几个列子,lambda的参数类型可以省略不写,因为jvm编译器可以通过上下文推断,当然你写了也没关系。 格式一:无参数,无返回值 ()->System.out.println("今天是周日"); 格式二:有一个参数,无返回值 (x)->Sy.

2020-06-07 10:51:00 149

原创 Lambda表达式的简单介绍

首先理解定义(百度百科) Lambda 表达式(lambda expression) 是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代...

2020-06-07 09:28:44 376

原创 java经典排序算法---希尔排序

首先理解定义(百度百科) 希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 单纯的看它的定义好像似懂非懂,我从网上找了一张图还是比较清晰的,可以看

2020-05-27 22:37:55 157

原创 java经典排序算法---二分查找

首先理解定义(百度百科) 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 从字面意思上可以看出这个算法就是折半查找,但是我们要注意用二分查找必须要保证数组的有序的。另外这种算法主要是为了帮我们从目标数组查找目标元,如果找不到我们要相应的返回出去一个标志。 因为这种算法比较简单,所以我也不去分析了,直接看代码理解一下。 public static void main(String[] args) {

2020-05-27 12:28:20 156

原创 java经典排序算法---快速排序

首先理解定义(百度百科) 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 因为我刚开始看这个算法的时候我也是有点不懂,下面是我自己画的一个图,可以根据这个图来理解。 下面根据图来进行分析 假设一组数据为49,38,65,97.

2020-05-26 12:41:19 189

原创 java经典排序算法---插入排序

首先理解定义(百度百科) 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 引用百度百科的图片做个说明: 初始数据为5,2,4,6,1,3 1.首先将5单独领出来作为一个数组,剩下来的数据作为一个数组 2.拿2与5比较,发现比5小..

2020-05-24 22:41:28 217

原创 关于线程池执行与终止方法的使用

———— 通常线程池的执行方法有两种execute和submit,那么他们有什么区别呢? ———— 线程池执行后先让其停止有什么方法呢?通常线程池的停止方法有两种:shutdown()和shutdownNow(),那么他们又有什么区别呢? 1.接受任务的类型 execute 只能接受Runnable类型的任务 void execute(Runnable command); submit不管是Runnable还是Callable类型的任务都可以接受,但是Runnable返回值均为void,所以使用Futur

2020-05-24 21:06:37 1113

原创 很常用却又容易忘的一些sql知识

几种数据库的模糊查询语法 <if test="name != null and name != ''"> AND a.name LIKE <if test="dbName == 'oracle'">'%'||#{name}||'%'</if> <if test="dbName == 'mssql'">'%'+#{name}+'%'</if> <if test="dbName == 'mysql'">concat('%'

2020-05-24 20:49:22 176

原创 java经典排序算法---选择排序

首先理解定义(百度百科) **选择排序(Selection sort)**是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 举个简单的例子:一组数据 2,1,9,7,3 使用选择排序:第一次排序的结果为 1,2,9,7,3 第二次排序的结果为 1,2,9,7,3 第三次排序的结...

2020-05-24 18:57:34 219

原创 关于几种线程池,简单聊下

线程池(百度百科) 线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池 维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。 Java中的线程池种类 1.单线程的线程池 newSingleThreadExecutor 单线程线程池只有一个线程工作.

2020-05-24 16:57:19 135

原创 java经典排序算法---冒泡排序

首先理解定义(百度百科) 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 举个简单的例子:一组数据 2,1,9,7,3...

2020-05-24 16:17:44 175

空空如也

空空如也

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

TA关注的人

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