optional

sharding sphere 4.0.0-RC1版本 按年分表(后续优化)

故事扮演 提交于 2020-02-27 03:41:44
1. sharding sphere 4.0.0-RC1版本 按年分表(后续优化) 1.1. 概述 关于上一篇中 LogShardingAlgorithm 的 tables ,我原先是在第一次调用的时候初始化,这样做虽然能实现功能,但每次调用都会走这个if判断,虽然性能损耗不大,但我觉得这不是业务应该走的逻辑顺序,我的理想是在 LogShardingAlgorithm 被实例化后去自动初始化 tables 现在面对的问题是 LogShardingAlgorithm 的实例化是在Spring初始化中间执行的,且它本身的创建不是通过Spring的 @Component 等注解生成,而是通过反射实例化。若在实例化刚开始,也就是构造方法执行的时候执行初始化,那时候 applicationContext 还没有初始化完毕,拿不到环境参数,连 Datasource 也还没开始初始化 1.2. 解决方法 经过改造后,代码如下,单独拎出一个初始化方法,在类对象实例化后调用 /** * @author: laoliangliang * @description: 日志分片 * @create: 2020/1/2 10:19 **/ @Slf4j public class LogShardingAlgorithm implements PreciseShardingAlgorithm,

sklearn常用的API参数解析:sklearn.linear_model.LinearRegression

六眼飞鱼酱① 提交于 2020-02-26 23:40:31
sklearn.linear_model.LinearRegression 调用 sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None) Parameters fit_intercept 释义:是否计算该模型的截距。 设置:bool型,可选,默认True,如果使用中心化的数据,可以考虑设置为False,不考虑截距。 normalize 释义:是否对数据进行标准化处理 设置:bool型,可选,默认False,建议将标准化的工作放在训练模型之前,通过设置sklearn.preprocessing.StandardScaler来实现,而在此处设置为false 当fit_intercept设置为false的时候,这个参数会被自动忽略。 如果为True,回归器会标准化输入参数:减去平均值,并且除以相应的二范数 copy_X 释义:是否对X复制 设置:bool型、可选、默认True,如为false,则即经过中心化,标准化后,把新数据覆盖到原数据上 n_jobs 释义:计算时设置的任务个数,这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用 设置:int or None, optional, 默认None,如果选择

jdk1.8新特性

杀马特。学长 韩版系。学妹 提交于 2020-02-26 23:28:28
1. optional 例如: public CmsPage findById(String id) { if (id == null) { //抛出参数为空的异常 ExceptionCast.cast(CmsCode.CMS_GENERATEHTML_DATAURLISNULL); } Optional<CmsPage> optional = cmsPageRepository.findById(id); if (optional.isPresent()) { return optional.get(); } return null; } 来源: oschina 链接: https://my.oschina.net/u/3631797/blog/3163198

Builder一个对象

纵饮孤独 提交于 2020-02-26 06:20:25
一般新建对象我们都是直接new一下 public class GirlFriend { private String name; private int age; // 省略 getter & setter ... public static void main(String[] args) { GirlFriend myGirlFriend = new GirlFriend(); myGirlFriend.setName("小美"); myGirlFriend.setAge(18); } } 没问题,老铁!但如果对象的属性太多,咋办? public class GirlFriend { private String name; private int age; private int bust; private int waist; private int hips; private List<String> hobby; // 等等等等 ... // 省略 getter & setter ... public static void main(String[] args) { GirlFriend myGirlFriend = new GirlFriend(); myGirlFriend.setName("小美"); myGirlFriend.setAge(18);

通过键值获取字典的对应的值时,返回的值是optional类型的

强颜欢笑 提交于 2020-02-26 05:46:04
let studentsAndscores = ["Amy": 88, "James": 55, "Helen": 99] Then your function should print 99. But you don't know what the scores are, so your program has to handle all possibilities! Hint: When you get the value out of a dictionary using a key, the value that comes out is an Optional! 也就是说此时你需要用 let amyScore = studentsAndscores["Amy"]! 解包为Int类型的值 ,然后才能进行比较。 另一个示例: class ViewController : UIViewController { let eggTime :[ String : Int ] = [ "Soft" : 5 , "Medium" : 7 , "Hard" : 12 ] @IBAction func hardnessSelected ( _ sender: UIButton ) { print (sender. currentTitle !) let hardness = sender.

Java8新特性

守給你的承諾、 提交于 2020-02-26 05:35:11
Java8新特性 1.1 Lambda表达式 1.1.1 函数式编程思想 面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情. 函数式编程思想: 只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程 Java8引入了Lambda表达式之后,Java也开始支持函数式编程。 Lambda表达式不是Java最早使用的,很多语言就支持Lambda表达式,例如:C++,C#,Python,Scala等。如果有Python或者Javascript的语言基础,对理解Lambda表达式有很大帮助,可以这么说lambda表达式其实就是实现SAM接口的语法糖,使得Java也算是支持函数式编程的语言。Lambda 写的好 可以极大的减少代码冗余,同时可读性也好过冗长的匿名内部类。 备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实 底层的实现原理仍然是迭代器,这便是“语法糖”。从应用层面来讲,Java中的Lambda可以被当做是匿名内部 类的“语法糖”,但是二者在原理上是不同的。 1.1.2冗余的匿名内部类 当需要启动一个线程去完成任务时,通常会通过 java.lang.Runnable 接口来定义任务内容,并使用 java.lang.Thread 类来启动该线程。代码如下: public

Java8,java9和java11的特性与区别!

爱⌒轻易说出口 提交于 2020-02-26 05:02:30
Java8,java9和java11的特性总结! Java 8 的主要新特性 1. Lambda 表达式 Lambda 允许把函数作为一个方法的参数传递进方法中。 作用:解决 Java 被诟病的匿名内部类的问题。 2. 接口中可增加了默认方法 作用:在接口中也可以有实现方法了。 3. HashMap 底层数据结构的变化 java 8 之前,HashMap 底层的数据结构是数组+链表实现的, Java 8 之后是数组+链表+红黑树实现的,当链表的长度超过 8 之后,会转换成红黑树。 作用:解决因哈希冲突导致的链表过长,查询效率低的问题。 4. Stream API 新添加 Stream API (java.util.stream),把真正函数式编程的风格引入 Java。 5. 提供一个新的 JavaScript 引擎 Java 8 提供了一个新的 Nashorn JavaScript 引擎,它允许在 JVM 上运行特定的 JavaScript 应用。 作用:解决日益增长的 Java 跟 JS 交互混合的需求。 Java 9 新特性 1. 模块系统 模块是一个包的容器,Java 9 最大的变化之一是引入模块系统。(Jigsaw 项目) 作用:解决大型项目模块化开发的需求。 2. 支持 HTTP/2 标准 HTTP/2 标准是 HTTP 协议的最新版本,新的 HTTPClient API

《软件架构基础》- 函数式编程

假装没事ソ 提交于 2020-02-25 23:16:26
函数式编程 它属于“结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用 特点 函数作为一等公民 $("button").click(function(){ $("li").each(function(){ alert($(this).text()) }); }); 无副作用 函数的副作用指的是函数在调用过程中,除了给出了返回值外,还修改了函数外部的状态,比如,函数在调用过程中,修改了某一个全局状态。函数式编程认为,函数的副用作应该被尽量避免。 函数做了除了约定之外的其它事情 引用透明 引用透明(Referential transparency),指的是函数的运行不依赖于外部变量或“状态”,只依赖于输入的参数,任何时候只要参数相同,引用函数所得到的返回值总是相同的。 申明式的(Declarative) 相对于命令式(imperative)而言,命令式的程序设计喜欢大量使用可变对象和指令 申明式的编程:申明你的用意 public static void imperative(){ int[] iArr={1,3,4,5,6,9,8,7,4,2}; for(int i=0;i<iArr.length;i++){ System.out.println(iArr[i]); } } public static void declarative(){ int[] iArr={1

Is Java 8 missing an OptionalBoolean?

為{幸葍}努か 提交于 2020-02-12 19:14:14
问题 As a primitive version of Optional*, Java 1.8 provides OptionalInt, OptionalLong and OptionalDouble. But I cannot find the equivalent OptionalBoolean class. Are there any technical reasons against having an OptionalBoolean ? * An Optional may or may not have the presence of a value, is used as an alternative to null . 回答1: This quote explains the considerations behind having primitive streams. I'm assuming the same applied to primitive Optionals. In short, primitive streams (and probably

Naming convention for optional binding

北城以北 提交于 2020-02-12 02:42:46
问题 One thing that originally discouraged me from incorporating too much optional binding in my code was the addition of more variable names. For example, I'd generally write: if bananasInBarrel != nil{ print("We have \(bananasInBarrel!) bananas in the barrel.") } Because the alternative seemed to get a bit messy: if let safeBananas = bananasInBarrel{ print("We have \(safeBananas) bananas in the barrel.") } That's a lot of bananas. I've seen people use something like b as the new variable name