自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KISS

Keep It Simple, Stupid

  • 博客(23)
  • 资源 (4)
  • 收藏
  • 关注

原创 MyBatis学习笔记

教学视频---1.简介2.下载3.HelloWorld4.接口式编程5.小结(1)6.全局配置文件-引入dtd约束7.全局配置文件-properties-引入外部配置文件8.全局配置文件-settings-运行时行为设置9.全局配置文件-typeAliases-别名10.全局配置文件-typeHandlers-类型处理器简介11.全局配置文件-plugins-插件简介12.全局配置文件-enviroments-运行环境13.全局配置文件-dat

2020-08-07 09:28:18 9118 7

原创 《Java8实战》笔记汇总

《Java8实战》笔记(01):为什么要关心Java8《Java8实战》笔记(02):通过行为参数传递代码《Java8实战》笔记(03):Lambda表达式《Java8实战》笔记(04):引入流《Java8实战》笔记(05):使用流《Java8实战》笔记(06):用流收集数据《Java8实战》笔记(07):并行数据处理与性能《Java8实战》笔记(08):重构、测试和调试《Java8实战》笔记(09):默认方法《Java8实战》笔记(10):用Optional取代null《Java8实战

2020-08-19 16:26:37 1094

原创 《Java8实战》笔记(16):结论以及Java的未来

结论以及Java的未来回顾Java8的语言特性行为参数化(Lambda以及方法引用)流CompletableFutureOptional默认方法Java的未来集合类型系统的改进声明位置变量更多的类型推断模式匹配更加丰富的泛型形式具化泛型泛型中特别为函数类型增加的语法灵活性原型特化和泛型对不变性的更深层支持值类型为什么编译器不能对Integer和int一视同仁值对象——无论简单类型还是对象类型都不能包打天下装箱、泛型、值类型——互相交织的问题写在最后的话Java

2020-08-19 12:58:54 213

原创 《Java8实战》笔记(15):面向对象和函数式编程的混合-Java 8和Scala的比较

面向对象和函数式编程的混合:Java 8和Scala的比较Scala是一种混合了面向对象和函数式编程的语言。它常常被看作Java的一种替代语言,程序员们希望在运行于JVM上的静态类型语言中使用函数式特性,同时又期望保持Java体验的一致性。和Java比较起来,Scala提供了更多的特性,包括更复杂的类型系统、类型推断、模式匹配、定义域语言的结构等。除此之外,你可以在Scala代码中直接使用任何一个Java类库。Scala简介HelloWorld命令式Scalaobject Beer { def

2020-08-19 12:42:40 412

原创 《Java8实战》笔记(14):函数式编程的技巧

函数式编程的技巧无处不在的函数术语“函数式编程”意指函数或者方法的行为应该像“数学函数”一样——没有任何副作用。对于使用函数式语言的程序员而言,这个术语的范畴更加宽泛,它还意味着函数可以像任何其他值一样随意使用:可以作为参数传递,可以作为返回值,还能存储在数据结构中。能够像普通变量一样使用的函数称为一等函数(first-class function)。这是Java 8补充的全新内容:通过::操作符,你可以创建一个方法引用,像使用函数值一样使用方法,也能使用Lambda表达式(比如,(int x)

2020-08-19 10:10:47 758 1

原创 《Java8实战》笔记(13):函数式的思考

函数式的思考实现和维护系统为了让程序易于使用,你还希望它具备哪些特性呢?你会希望它具有良好的结构,最好类的结构应该反映出系统的结构,这样能便于大家理解;甚至软件工程中还提供了指标,对结构的合理性进行评估,比如耦合性(软件系统中各组件之间是否相互独立)以及内聚性(系统的各相关部分之间如何协作)。对大多数程序员而言,最关心的日常要务是代码维护时的调试:代码遭遇一些无法预期的值就有可能发生崩溃。为什么会发生这种情况?它是如何进入到这种状态的?想想看你有多少代码维护的顾虑都能归咎到这一类!很

2020-08-19 00:05:29 364

原创 《Java8实战》笔记(12):新的日期和时间API

新的日期和时间API相信大多数有经验的程序员都会赞同Java 8之前的库对日期和时间的支持就非常不理想。值得高兴的是 Java 8中引入全新的日期和时间API就是要解决这一问题。Java 8之前的日期和时间API在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类。正如类名所表达的,这个类无法表示日期,只能以毫秒的精度表示时间。更糟糕的是它的易用性,由于某些原因未知的设计决策,这个类的易用性被深深地损害了,比如:年份的起始选择是1900年,月份的起始从0开始。这意味着,如果

2020-08-18 14:43:08 414

原创 《Java8实战》笔记(11):CompletableFuture-组合式异步编程

CompletableFuture:组合式异步编程最近这些年,两种趋势不断地推动我们反思我们设计软件的方式。第一种趋势和应用运行的硬件平台相关,第二种趋势与应用程序的架构相关,尤其是它们之间如何交互。我们注意到随着多核处理器的出现,提升应用程序处理速度最有效的方式是编写能充分发挥多核能力的软件。你已经看到通过切分大型的任务,让每个子任务并行运行,这一目标是能够实现的;你也已经了解相对直接使用线程的方式,使用分支/合并框架(在Java 7中引入)和并行流(在Java 8中新引入)能以更简单、更有

2020-08-18 13:54:20 753

原创 《Java8实战》笔记(10):用Optional取代null

用Optional取代null本文的代码众所周知,对任何一位Java程序员来说,无论是初出茅庐的素人,还是久经江湖的老司机,NullPointerException都是他心中的痛,可是我们又无能为力,因为这就是我们为了使用方便甚至不可避免的像null引用这样的构造所付出的代价。这就是程序设计世界里大家都持有的观点,然而,这可能并非事实的全部真相,只是我们根深蒂固的一种偏见。1965年,英国一位名为Tony Hoare的计算机科学家在设计ALGOL W语言时提出了null引用的想法。如何为缺失的值建模

2020-08-18 12:04:42 680 1

原创 《Java8实战》笔记(09):默认方法

默认方法本文的源码实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改。由于Java 8的API在现存的接口上引入了非常多的新方法,这种变化带来的问题也愈加严重,一个例子就是像Guava和Apache Commons这样的框架现在都需要修改实现了List接口的所有类,为其添加sort方法的实现。Ja

2020-08-17 15:41:07 483 1

原创 《Java8实战》笔记(08):重构、测试和调试

重构、测试和调试为改善可读性和灵活性重构代码利用Lambda表达式,你可以写出更简洁、更灵活的代码。用“更简洁”来描述Lambda表达式是因为相较于匿名类,Lambda表达式可以帮助我们用更紧凑的方式描述程序的行为。改善代码的可读性改善代码的可读性到底意味着什么?通常的理解是,“别人理解这段代码的难易程度”。改善可读性意味着你要确保你的代码能非常容易地被包括自己在内的所有人理解和维护。为了确保你的代码能被其他人理解,有几个步骤可以尝试,比如确保你的代码附有良好的文档,并严格遵守编程规范。跟之

2020-08-17 14:01:58 361

原创 在Ubuntu上安装Git

安装步骤首先,确认系统是否已安装git,可以通过git指令进行查看,如果没有,则输入sudo apt-get install git命令进行安装。安全配置安装完成后进行git配置,输入指令git config --global user.name "xxx"和git config --global user.email "你的邮箱地址"。配置完成后,输入ssh-keygen -C '你的邮箱地址' -t rsa创建验证用的公钥,在用户目录~/.ssh/下建立相应的密钥文件。使用命令cd ~/

2020-08-17 10:06:39 775

原创 《Java8实战》笔记(07):并行数据处理与性能

并行数据处理与性能在Java 7之前,并行处理数据集合非常麻烦。第一,你得明确地把包含数据的数据结构分成若干子部分。第二,你要给每个子部分分配一个独立的线程。第三,你需要在恰当的时候对它们进行同步来避免不希望出现的竞争条件,等待所有线程完成,最后把这些部分结果合并起来。Java 7引入了一个叫作分支/合并的框架,让这些操作更稳定、更不易出错。并行流ParallelStreams可以通过对收集源调用Stream接口parallelStream方法来把集合转换为并行流。并行流就是一个把内容分

2020-08-17 08:06:47 606

原创 《机器学习实战》笔记(04):基于概率论的分类方法 - 朴素贝叶斯分类

基于概率论的分类方法:朴素贝叶斯分类Naive Bayesian classification这大节内容源于带你理解朴素贝叶斯分类算法,并非源于《机器学习实战》。个人认为《机器学习实战》阐述贝叶斯分类算法较简略难懂,故查阅其他文章来理解这贝氏算法。贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。分类问题综述对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,

2020-08-16 16:12:34 608

原创 《机器学习实战》笔记(03):决策树

决策树kNN算法可以完成很多分类任务,但是它最大的缺点就是给出数据的内在含义,决策树的主要优势就在于数据形式非常容易理解决策树的构造优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。缺点:可能会产生过度匹配问题。适用数据类型:数值型和标称型。创建分支的伪代码函数createBranch()Check if every item in the dataset is in the same class: If so return the class

2020-08-16 10:05:57 342

原创 《机器学习实战》笔记(02):k-近邻算法

k-近邻算法它采用测量不同特征值之间的距离方法进行分类优:精度高、对异常值不敏感、无数据输入假定缺:计算复杂度高、空间复杂度高适用数据范围:数值型和标称型算法具体原理存在一个样本数据集合(训练样品集),并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样品集中数据对应的特征进行比较,然后算法提取样本集中特征最相近数据(最邻近)的分类标签。一般来说,只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中K的出处

2020-08-16 01:37:41 356

原创 《机器学习实战》笔记(01):机器学习基础

机器学习基础机器学习能让我们自数据集中受到启发,换句话说利用计算机来彰显数据背后的真实含义。机器学习在日常生活中的应用人脸识别手写数字识别垃圾邮件过滤电商的产品推荐天气预测疾病诊断…何为机器学习机器学习就是把无序的数据转换成有用的信息机器学习用到统计学,为什么用统计学呢?在现实生活中,并不是每一个问题都存在确定的解决方案。在很多时候,我们都无法透彻地理解问题,或者没有足够的计算资源为问题精确建立模型,例如我们无法给人类活动的动机建立模型。为了解决这些问题,我们需要用到统计学知识

2020-08-15 23:24:28 554 1

原创 《Java8实战》笔记(06):用流收集数据

你会发现collect是一个归约操作,就像reduce一样可以接受各种做法作为参数,将流中的元素累积成一个汇总结果。具体的做法是通过定义新的Collector接口来定义的,因此区分Collection、Collector和collect是很重要的。下面是一些查询的例子,看看你用collect和收集器能够做什么。对一个交易列表按货币分组,获得该货币的所有交易额总和(返回一个Map<Currency,Integer>)。将交易列表分成两组:贵的和不贵的(返回一个Map<Boolea

2020-08-14 20:21:28 587

原创 《Java8实战》笔记(05):使用流

筛选和切片Filtering用谓词Predicate筛选-filterList<Dish> vegetarianMenu = menu.stream()// .filter(Dish::isVegetarian)//Predicate<T>做参数 .collect(toList());vegetarianMenu.forEach(System.out::println);筛选各异的元素-去重-distinct// Filtering unique eleme

2020-08-14 10:49:48 627

原创 《Java8实战》笔记(04):引入流

几乎每个Java应用程序都会制造和处理集合。尽管集合对于几乎任何一个Java应用都是不可或缺的,但集合操作却远远算不上完美。很多业务逻辑都涉及类似于数据库的操作,比如对几道菜按照类别进行分组 (比如全素菜肴),或查找出最贵的菜。你自己用迭代器重新实现过这些操作多少遍?大部分数据库都允许你声明式地指定这些操作。比如,以下SQL查询语句就可以选出热量较低的菜肴名称:SELECT name FROM dishes WHERE calorie < 400。你看,你不需要实现如何根据菜肴的属性进行筛选(

2020-08-14 08:39:40 313

原创 《Java8实战》笔记(03):Lambda表达式

本文源码Lambda 管中窥豹可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。Lambda表达式可以让你十分简明地传递代码。Lambda组成结构参数列表——这里它采用了Comparator中compare方法的参数,两个Apple。箭头——箭头->把参数列表与Lambda主体分隔开。Lambda主体——比较两个Apple的重量。表达式就是Lambda的返回值了。Lambda的基本

2020-08-14 02:45:31 588

原创 《Java8实战》笔记(02):通过行为参数传递代码

本文源码应对不断变化的需求通过筛选苹果阐述通过行为参数传递代码初试牛刀:筛选绿苹果public static List<Apple> filterGreenApples(List<Apple> inventory){ List<Apple> result = new ArrayList<>(); for(Apple apple: inventory){ if("green".equals(apple.getColor())){ resul

2020-08-14 00:34:54 452

原创 《Java8实战》笔记(01):为什么要关心Java8

Java 8 新特性:Stream API向方法传递代码的技巧接口中的默认方法助记://Java8主要有哪些新特性?//1.Stream API 2.接口的默认实现 3.方法晋升一级公民inventory.stream().filter((Apple a) -> a.getWeight() > 150) .collect(Collectors.toList());在Java 8之前://对inventory中的苹果按照重量进行排序Collections.sort

2020-08-13 23:23:37 712

基于Java实现的遗传算法案例.zip

基于Java实现的遗传算法案例.zip

2021-10-15

Unity入门案例素材.zip

Unity入门案例素材.zip

2021-09-24

MappyWin32 1.4.23.zip

基于图片单元的游戏地图编辑器

2021-09-06

Spring循环依赖debug源码图

Spring循环依赖debug源码图

2021-03-28

空空如也

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

TA关注的人

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