在使用Java8 新特性中关于Period.between的方法时需注意该方法获取日期的区间问题. @Test public void test1(){ LocalDate from = LocalDate.of(2018,10,1); System.out.println(Period.between(from,LocalDate.now()).getDays()); } 首先,猜测一下上面的代码返回的天数是多少?15天,你猜对了吗? 如果不理解为什么是15天,那么咱们再打印一下其他的心气,你…
30分钟入门Java8之默认方法和静态接口方法 前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方法和静态接口方法. 这一Java8的新语言特性,在Android N中也得到了支持.至于如何在Android开发中配置Java8的开发环境,请查看上一篇文章30分钟入门Java8之lambda表达式. 默认方法 默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代码的…
JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 在Lamda新特性的支持下,JAVA8中可以使用lamda表达式来创建匿名方法.然而,有时候我们仅仅是需要调用一个已存在的方法(如java中已经定义好的方法),在这时候java8新特性“方法引用”将会进一步简化操作(注意:需要有Lamda的支持). 方法引用的四种形式: 引用静态方法-->类名称::static 方法名称: 引用某个对象的实例的普通方法-->示例化对象::普通方法: 引用某个类型的任意对象的实例的普通方法--…
实战介绍 学习完Java8的Stream方法,可能你正准备大展身手,却发现遇到不少问题,本篇文章为大家带来一个findAny方法抛出java.lang.NullPointerException的场景. 实战内容 先看一下下面的代码,猜测一下执行之后会打印什么? public class FindAnyTest { @Test public void test() { List<Foo> list = new ArrayList<>(); list.add(new Foo()); /…
什么是方法引用   方法引用可以被看作仅仅调用特定方法的Lamdba表达式的一种快捷方式.比如说Lamdba代表的只是直接调用这个方法,最好还是用名称来调用它,可不用用对象.方法名(),方法引用,引用:就是让你跟据已有的方法来创建一个Lamdba表达式.   并且这么做还有一个好处,就是可以更加清晰明白的理解这行代码的意思.让代码变的优雅起来. 方法引用的简单使用 //比如说有一个Person类,里面有一个getName()方法. //用Lamdba来使用:用函数类型接口 Function<Pe…
在一日一控件的口号下,终于写好了五十几个自定义控件,包括各种仪表盘,各种温度计,各种进度条,各种按钮等,具体可参见(http://www.cnblogs.com/feiyangqingyun/p/6128288.html)目前演示DEMO都是采用提升的方法来显示的,一直有个想法,想做成和QWT一样的可以直接编译集成到Qt Creator中,方便用户直接拖控件使用,即做成Qt Creator的插件,Qt要写Qt Creator的插件极为方便,和新建Qt Widget项目一样的步骤.方法可参见(ht…
按照常规思维,往一个map里put一个已经存在的key,会把原有的key对应的value值覆盖,然而通过一次线上问题,发现Java8中的Collectors.toMap反其道而行之,它默认给抛异常,抛异常... 线上业务代码出现Duplicate Key的异常,影响了业务逻辑,查看抛出异常部分的代码,类似以下写法: Map<Integer, String> map = list.stream().collect(Collectors.toMap(Person::getId, Person::g…
前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方法和静态接口方法. 这一Java8的新语言特性,在Android N中也得到了支持.至于如何在Android开发中配置Java8的开发环境,请查看上一篇文章30分钟入门Java8之lambda表达式. 默认方法 默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代码的兼容性. 下面通过一个简单的例子来深入理解下默认…
一.查看API sleep是Thread类的方法,导致此线程暂停执行指定时间,给其他线程执行机会,但是依然保持着监控状态,过了指定时间会自动恢复,调用sleep方法不会释放锁对象. 当调用sleep方法后,当前线程进入阻塞状态.目的是让出CPU给其他线程运行的机会.但是由于sleep方法不会释放锁对象,所以在一个同步代码块中调用这个方法后,线程虽然休眠了,但其他线程无法访问它的锁对象.这是因为sleep方法拥有CPU的执行权,它可以自动醒来无需唤醒.而当sleep()结束指定休眠时间后,这个线程…
首先我们中会有一些常用的meta标签,如下: <!--防止手机中网页放大和缩小--> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" /> 备注:width 设置viewport宽度,为一个正整数,或字符串‘device-width’ height 设置viewport高度,一般设置了宽…
上篇文章简单学习了java8内置得4大核心函数式接口,这类接口可以解决我们遇到得大多数得业务场景得问题.今天来简单学习一下方法引用与构造器引用. 一.方法引用 方法引用:若lambda 体中得内容已经有方法实现了,我们可以使用方法引用(可以理解为方法引用为lambda表达式得另一种表现形式) @Test public void test1() { Consumer<String> con = (x) -> System.out.println(x); //下面这种写法与上面写法效果一致…
Java8 中 Comparator 接口提供了一些静态方法,可以方便于我们进行排序操作,下面通过例子讲解下如何使用 对整数列表排序(升序) List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8); list.sort(Comparator.naturalOrder()); System.out.println(list); 对整数列表排序(降序) List<Integer> list = Arrays.asList(1, 4, 2…
流是Java API的新成员,它允许以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).就现在来说,可以把它们看成遍历数据集的高级迭代器.此外,流还可以透明地并行处理,无需写任何多线程代码了! 流的使用一般包括三件事: •一个数据源(如集合)来执行一个查询: •一个中间操作链,形成一条流的流水线: •一个终端操作,执行流水线,并能生成结果. 流方法 含义 示例 filter (中间操作)该操作会接受一个谓词(一个返回boolean的函数)作为参数,并返回一个包括所有符合谓词的…
关于JAVA8学习的意义先来贴一下某网站上的对它的简单介绍:“Java 8可谓Java语言历史上变化最大的一个版本,其承诺要调整Java编程向着函数式风格迈进,这有助于编写出更为简洁.表达力更强,并且在很多情况下能够利用并行硬件的代码.Java 8所带来的函数式编程特性使得Java从此屹立于函数式编程的世界,这是Java这门“古老的”编程语言自从发布以来变化最大的一个版本,在很多地方从根本上改变了我们编码的方式,使得Java也可以像Scala.Python.JavaScript等函数式编程语言一…
方法引用: 之前花了很多时间对Lambda表达式进行了深入的学习,接下来开启新的主题---方法引用(Method References),其实在之前的学习中已经使用过了,如: 那方法引用跟Lambda表达式是一种什么关系呢?其实可以理解为它是Lambda表达式的一个语法糖(Syntactic sugar),什么是语法糖呢,可以看一下百科: 在很多时候在能使用Lambda表达式实现的功能,恰巧该功能刚好有一个方法能表达出来,那么就可以通过方法引用的方式来替换掉Lambda表达式使得代码更加精简,更…
迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素个数,如果需要添加或者删除只能使用迭代器的方法进行操作.   如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常.   迭代元素的过程中: 迭代器创建到使用结束的时间. ------意识是迭代器一旦创建,在之后是不可以用集合操作元素的.如果用了后再调用迭代器是报错的. //错误代码段List list = new ArrayList(…
2014-11-14 在WebService中定义方法,有一些注意的地方: (1) 方法上面需要增加 [WebMethod] 属性,标志该方法是一个WebService方法: (2)方法的返回值可以为void.string.int.bool.DataSet等类型,不能为Dictionary<object,object>等特殊类型. 如果真的想使用Dictionary<object,object>字典类型,需要实现相关接口. (3)方法的参数类型必须是可序列化的类型,比如string…
1.何为魔法方法: Python中,一定要区分开函数和方法的含义: 1.函数:类外部定义的,跟类没有直接关系的:形式: def func(*argv): 2.方法:class内部定义的函数(对象的方法也可以认为是属性):分为两种: ① python自动产生的(魔法方法):一般形式为 __func__(),python会在对应的时机自动调用该函数: ② 人为自定义的方法:一般和普通函数没有区别,只是定义在了class中而已 3.方法与函数的区别: 方法可认为是函数的特殊情况: ① 方法定义在cla…
[系统环境] 系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga)  +  5.7.16 MySQL Community Server (GPL) [漏洞信息] 漏洞信息报告,根据集团第三方软件扫描出对应数据库版本的漏洞信息,可以从DVE号跟当前数据库发布版本时间来判断是否为误报信息: [查看修复方法] 一般mysql漏洞有对应的CVE号,在Oracle MOS上都能找到根据CVE号跟对应当前数据库版本来进行修复漏洞的方法. 举例,…
一直在找免费的GPU云端,在某乎上看到AWS提供免费的,就上去试了下,结果那个免费一年的只有CPU,并没有GPU,GPU还是需要付费的,相关背景就说这些,下面放几个相关教程,里面会说怎么使用,看了这几个,差不多就能正常使用了, B站的教程 某乎的 某书的 ---------------------------------------------------史上一条分割线----------------------------------------------------------------…
本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblogs.com/zjdxr-up/p/7763485.html java中Properties类及读取properties中属性值:https://www.cnblogs.com/zjdxr-up/p/7763485.html 这两种方式都是在项目启动时,将properties文件加载,第一种是将属性…
前面的章节我们提及到过双冒号运算符,双冒号运算就是Java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面没有括号“()”哒.为啥不要括号,因为这样的是式子并不代表一定会调用这个方法.这种式子一般是用作Lambda表达式,Lambda有所谓懒加载嘛,不要括号就是说,看情况调用方法. 例如 表达式: person -> person.getAge(); 可以替换成 Person::getAge 表达式 () -> new HashMap<>(); 可以替换…
vue在同一个组件内: methods中的一个方法调用methods中的另外一个方法: 可以直接这样调用:this.$options.methods.test(); this.$options.methods.test();一个方法调用另外一个方法: 这样是没有考虑this作用域的问题的情况,如果你调用的test()方法不包含对vue事例中中对data数据的修改和调用(准确说没有调用vue的实例对象的东西),这样调用无可厚非的,比如: test(){console.log(123);alert(…
方法引用:若 Lambda 体中的功能,已经有方法提供了实现,可以使用方法引用 (可以将方法引用理解为 Lambda 表达式的另外一种表现形式) 1. 对象的引用 :: 实例方法名2. 类名 :: 静态方法名3. 类名 :: 实例方法名 注意: ①方法引用所引用的方法的参数列表与返回值类型,需要与函数式接口中抽象方法的参数列表和返回值类型保持一致! ②若Lambda 的参数列表的第一个参数,是实例方法的调用者,第二个参数(或无参)是实例方法的参数时,格式: ClassName::MethodNa…
verifyInputgbg这个方法的主要作用是:一次校验页面上的所有非空的比录项. 今天在使用这个方法的时候,遇到了这样一个问题,自己在页面上明明都录入有值,但是在还是报页面的录入信息不完整.阻断.很郁闷. debug了一圈,找到原因了.因为页面上一个模块被自己隐藏掉了,但是该方法也会去取隐藏掉的input框中的内容.问题找到了,这就好解决了,那就不隐藏了,直接使用前端的知识将这个模块的内容移除掉,这问题就解决了. mySql = new SqlClass(); mySql.setResour…
方法引用 若Lambda体中的内容有方法已经实现了,我们可以使用"方法应用",可以理解为方法引用是Lambda表达式的另外一种表现形式. 使用操作符"::"将方法名和对象或类的名字分隔开 对象 :: 实例方法名 Consumer<String> consumer = (x) -> System.out.println(x); 等同于 Consumer<String> consumer = System.out::println; 类 :…
接着上一次[http://www.cnblogs.com/webor2006/p/8318066.html]继续对Collector进行javadoc详读,上一次读到了这: 接下来一条条来过目一下: 要理解这段说明,则首先先要了解Collector接口的三个泛型,如下: 比如说: 其实也就是累积生成的集合类型,如: 理解了这三个泛型的含义之后,接下来再来看一下对于Collector很重要的这四个方法的定义: 理解了泛型的类型之后,接下来再回过头来理解刚才第一个约束所说: 这句话的意思其实就是说在…
修改某个表的字段类型及指定为空或非空 >alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空],变更字段名称及属性 >alter table 表名称 modify 字段名称 字段类型 [是否允许非空],只更改字段属性 .stream().map()内调用方法 package com.langhua.demo; import java.util.ArrayList; import java.util.List; import java.util.stream…
当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等. 同时,色彩动画并不包含在核心 jQuery 库中. 如果需要生成颜色动画,您需要从 jQuery.com 下载 Color Animations 插件.…
Map<String , SonCargosForm> orderCargosMap = sonTemporaryForm.getOrderCargosList().stream() .collect(Collectors.toMap(SonCargosForm::getOrdCargoId, Function.identity(),(entity1, entity2) -> entity1)); 避免出现 java.lang.IllegalStateException: Duplica…