- 博客(28)
- 收藏
- 关注
原创 一个例子让你明白Scala中的call by name和call by value
先看一个例子def get(x:Int):Int={println(s"$x")x}def getByValue(y:Int):Int={x+x}def getByName(y: =>Int):Int={x+x}getByValue(get(1))getByName(get(2))(1)get方法该方法传入x,先打印x,然后将x作为返回值。(2)getByValue和getByName这两个方法定义非常相似,参数写法不同,getByName参...
2020-05-30 18:09:07 736
原创 大数据生态HA(全)
目录Hadoop HANameNode FederationHBase HAStorm HAFlink HA先安装好ZooKeeper。Hadoop HA1、集群规划host HDFS Yarn ZK HA bigdata111 NameNode SecondaryNameNode ResourceManager QuorumPeerMain bigdata112 DataNode...
2020-05-28 18:13:45 516
原创 Java设计模式(十五)之访问者模式(Visitor)
本文以学校领导访问学生和教师为例介绍。被访问者首先抽象被访问者的“可被访问”特征,然后定义两个具体的被访问者“教师”和“学生”,如下:/** * Created by leboop on 2020/5/26. * 该接口对被访问者的“可访问性”进行抽象 */public interface IVisitable { /** * 表示接受访问者访问 * @param visitor 访问者 */ void accept(IVisitor...
2020-05-26 15:51:14 428
原创 Java设计模式(十四)之状态模式(State)
本文以十字路口红绿灯为例介绍。红绿灯有3个颜色,我们使用如下Color枚举类来表示:/** * Created by leboop on 2020/5/26. */public enum Color { RED, GREEN, YELLOW}红绿灯有三个状态:红灯状态,绿灯状态和黄灯状态,先抽象出三个状态的抽象类State,然后再分别定义三个具体的状态类RedState,GreenState,YellowState,分别如下:/** * Created by lebo...
2020-05-26 14:28:46 572
原创 Java设计模式(十三)之组合模式(Composite)
本文以磁盘杀毒为例介绍。先定义一个磁盘接口,如下:/** * Created by leboop on 2020/5/26. */public interface Disk { String name = ""; void add(Disk disk); void remove(Disk disk); void kill();}给磁盘杀毒的本质,是给磁盘下的每个目录杀毒,所以下面我们定义一个文件目录类,如下:/** * Created b...
2020-05-26 12:36:36 320
原创 Java设计模式(十二)之适配器模式(Adapter)
本文以JDK源码为基础介绍。FileInputStream,InputStreamReader,BufferedReader。
2020-05-26 10:42:34 326
原创 Java设计模式(十一)之装饰模式(Decorator)
本文以JDK中IO流源码为基础介绍。被装饰者/** * Created by leboop on 2020/5/25. */public abstract class MyInputStream { public abstract int read(String content);}MyInputStream是被装饰者超类,具备读取各种设备的数据功能。MyFileInputStream是MyInputStream的实现类,如下:/** * Created by l...
2020-05-25 18:19:05 400
原创 Java设计模式(十)之代理模式(Proxy)
目录静态代理动态代理cglib代理静态代理/** * Created by leboop on 2020/5/25. */public interface IStar { void sing(String songName);}/** * Created by leboop on 2020/5/25. */public class PopStar implements IStar { @Override public void sing(St
2020-05-25 16:45:01 419
原创 Java设计模式(九)之责任链模式(Chain)
目录Request和ResponseFilterFilterChainMain 在tomcat的catalina.jar和servlet-api.jar源码中使用了责任链模式,本文以该源码的简化版为例介绍。模拟客户端请求过滤处理和响应原理。Request和Response 先定义请求Request和Response实体类,如下:/** * Created by leboop on 2020/5/25. */public class Requ...
2020-05-25 13:17:12 1081
原创 Java设计模式(八)之观察者模式(Observer)
本文以JDK源码介绍。观察者Observerpublic interface Observer { void update(Observable o, Object arg);}被观察者Observablepublic class Observable { private boolean changed = false; private Vector<Observer> obs; public Observable() {...
2020-05-24 14:42:57 367
原创 Java设计模式(七)之迭代器模式(Iterator)
目录自定义ArrayList自定义LinkedList自定义Collection自定义Iterator和Iteratable Iterator模式在Java的集合框架中有使用。本文尽量使用源码解释Iterator模式。自定义ArrayList 我们先自定义MyArrayList类,如下:package main.design_pattern.iterator;import java.util.Arrays;/** * Created b...
2020-05-24 13:23:53 416
原创 Java设计模式(六)之模板模式(Template)
TemplateMethod是指在抽象类或者接口中定义一系列操作的框架,而将具体的操作交给子类来实现,使得子类可以在不改变框架的结构下可重定义框架的具体步骤细节。比如Runnable接口中的run方法就可以看成是一种模板方法,该方法定义了线程运行的框架,run中具体执行什么样的逻辑,交给子类来实现。下面以客户去银行办理业务为例介绍。客户去银行办理业务通常由如下几个步骤:(1)取号排队;(2)办理业务;(3)评价服务;/** * Created by leboop on...
2020-05-24 09:56:07 483
原创 Java设计模式(五)之建造者模式(Builder)
目录重叠构造器JavaBeansBuilder模式 建设现在有一个实际问题:使用一个类表示包装食品外面显示的各种营养标签。这些标签中有几个属性是必须:每份的含量和每份的卡路里。还有超过20个可选的属性:总脂肪量、钠含量、蛋白质含量等等。大多数产品在某几个可选的属性中会有非零的值。对于这样的类,如何构建呢?重叠构造器 如下我们使用很多个构造器实现了该类:/** * Created by leboop on 2020/5/24. */public ...
2020-05-24 09:14:56 393
原创 Java设计模式(四)之原型模式(Proto)
目录对象拷贝浅拷贝深拷贝原型模式对象拷贝 Person类定义如下:/** * Created by leboop on 2020/5/23. */public class Person { private String name; private Integer age; private City city; public Person(String name, Integer age, City city) { ...
2020-05-23 23:40:31 587
原创 Java设计模式(三)之策略模式(Strategy)
假设现在有一个实体类Person,代码如下:/** * Created by leboop on 2018/11/18. */public class Person { private String name; private Integer age; public Person(String name, Integer age) { this.name = name; this.age = age; }...
2020-05-23 21:42:07 418
原创 Java设计模式(二)之工厂模式(Factory)
目录简单工厂静态工厂抽象工厂简单工厂先创建两个类Car和Bike,看成是工厂要生成的两类产品,代码如下:/** * Created by leboop on 2020/5/23. */public interface Movable { void go();}/** * Created by leboop on 2020/5/23. */public class Car implements Movable{ @Override pub
2020-05-23 14:32:43 414
原创 Flink多种模式任务提交
目录界面方式命令方式测试代码如下:package wordcountimport org.apache.flink.api.java.utils.ParameterToolimport org.apache.flink.streaming.api.scala._/** * Created by leboop on 2020/5/19. */object StreamWordCount { def main(args: Array[String]): Unit = {
2020-05-20 11:21:56 1650 3
原创 IDEA搭建Flink开发环境及WordCount
1、创建一个Maven项目并配置Java SDK和Scala SDK,如图:这里选择的是jdk1.8和scala2.12版本。2、添加pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
2020-05-19 23:13:54 2736 1
原创 Linux安装Flink
1、下载flink-1.9.3-bin-scala_2.11.tgz2、解压tar -zxvf flink-1.9.3-bin-scala_2.11.tgz -C /opt/解压到/opt/目录下3、配置环境变量打开配置文件:vi /etc/profile配置内容如下:# Flinkexport FLINK_HOME=/opt/flink-1.9.3export PATH=$FLINK_HOME/bin:$PATH保存配置:source/etc...
2020-05-19 15:32:52 3538 1
原创 主题模型LSA/LSI、PLSA和LDA
目录LSA/LSIPLSA潜在狄利克雷分配(latent Dirichlet allocation,LDA)伯努利分布(Bernoulli Distribution)二项分布(Binomial Distribution)多项分布(Multinomial Distribution)贝塔分布(beta distribution)狄利克雷分布(Dirichlet distribution)共轭先验(conjugate prior)潜在狄利克雷分配模型LSA/LSI.
2020-05-16 16:11:36 1581
原创 Level3 — 集成学习 — 提升法Boosting — AdaBoost
Boosting算法是一种集成学习算法。基本思想如下:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的样本在后续受到更多关注,然后基于调整后的样本分布训练下一个基学习器,如此重复进行,直到基学习器数据达到事先指定的值T,最终将这T个基学习器进行加权结合。与Bagging算法相同的是:(1)它们都是一类算法的抽象框架,(2)都由多个弱学习器组成,(3 )每个弱学习器对样本都有一个预测值,最后综合每个弱分类器的结果得到最终的预测值。
2020-05-11 21:27:27 693 1
原创 Level3 — 集成学习 — 袋装法Bagging — 随机森林(Random Forest)
Bagging(Bootstrap Aggregating)算法是建立在一种随机抽样的基础之上的,这种随机抽样叫Boostrap Sample,自助抽样,有的地方也叫自助法。所以介绍Bagging算法之前需要介绍Bootstrap抽样。
2020-05-11 12:27:12 1056 1
原创 机器学习和深度学习CSDN文章目录
经典学习机器学习之支持向量机SVM(理论基础)机器学习之支持向量机SVM(完整版)机器学习聚类之K-means算法机器学习之降维算法(PCA和LDA)机器学习之决策树(ID3、C4.5、CART、剪枝)机器学习常见模型评估指标详解(持续更新)拟合问题中偏差与方差分解公式证明机器学习之梯度下降法(GD)、随机梯度下降法(SGD)和随机平均梯度下降法(SAGD)隐马尔可夫链真相——从理论证明、算法实现到实际应用线性回归之总离差平方和=回归平方和+残差平方和(TSS ...
2020-05-09 21:45:31 377
原创 机器学习聚类之K-means算法
目录聚类K-means算法算法复杂度K值选择K-means算法收敛性聚类 聚类属于无监督学习问题,目标是将样本分成多个类别,保证类别内样本之间相似度高,类别间样本之间差异性高,这些类被称之为簇(cluster)。聚类是分类问题,它的目标是确定每个样本归属的类别,与有监督分类算法(比如SVM支持向量机)相比,这里的样本的类别初始是不知道的,而是通过聚类确定,但是类别个数可以人工设定。假设有一个样本集,含有个样本,如下:聚类其实是将样本集划分成一些不相交的样本子...
2020-05-09 14:06:28 416
原创 机器学习之降维算法(PCA和LDA)
目录降维的例子主成分分析(Principal Components Analysis,PCA)线性判别分析(Linear Discriminant Analysis,LDA)降维的例子 很多时候给定的数据向量维数都很高,典型的一个例子就是自然语言处理中词的One-hot编码,编码后的向量维数和词典的大小相同,但是词典通常有十几万甚至更多的词,也就是一个词表示...
2020-05-08 19:34:39 641 1
原创 机器学习之决策树(ID3、C4.5、CART、剪枝)
假设有个数据,每一个数据由个特征构成,如下: feature_1 feature_2 feature_n value 1 ... 2 ... . . . . ...
2020-05-07 16:20:52 662 1
原创 机器学习常见模型评估指标详解(持续更新)
我们以二分类问题为例,表格如下: 真实值 1 0 预测值 1 TP FP 0 FN TN 表格中,1表示正样本,0表示负样本。TP表示真阳性(True Positive),FP表示伪阳性(False Positive),FN表示伪阴性(False Negative),TN表示真阴性(True Neg...
2020-05-06 18:33:21 661
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人