5 软匠

尚未进行身份认证

我要认证

learning, thinking and using

等级
TA的排名 3w+

Flink--实时流处理框架

上图是flink的工作流程首先,flink从source中获取数据,source是流入flink数据的来源,日常对接的source端有kafka,rabbitMQ等消息队列然后,获取到的数据流(dataStream) 按需来进行代码运算最后,将上一步运算的结果数据sink到落地的模块中,模块可以是数据库,也可以是服务(用户预警报警模板)。...

2020-06-02 16:31:49

thinking in Java faster—多态

前面我们大概讲解了Java中的继承,这里有一个很重要的知识点,比如:Class Student extends Person {}Class Worker extends Person {}那么,当基于student或者worker生成对象时,可以写成Person student = new Student()Person worker = new Worker()这里涉及到一个知识点:向上转型,即子类可以把类型向上转为父类。这个点很重要,也是Java如此灵活的一个原因,后边涉及多态再详细展

2020-05-26 08:29:48

thinking in Java faster—访问权限控制

废话不多说,直接上关键字,访问权限范围由大到小依次是:1、public 该关键字修饰的方法、类及属性(下边统一称为

2020-05-22 15:25:50

thinking in Java faster—继承

组合显式的给当前对象内置一个子对象继承语法何为继承Java的继承Class A extends Class B继承的特性,复用父类的方法,子类里定义新特性子类初始化过程—父类是子类的一个子对象,只不过这个过程是隐式的,构造器概念引入:默认构造器和带参数的构造器代理其实就是一种组合,目的是为了在导出类对象中可控的使用成员对象类,继承的话,父类的所有方法在导出类子类中都可使用,不可控,或许你只想使用父类的部分方法集。spaceship和spacecontrol的继承与代理(组合)组合和继承

2020-05-21 08:23:19

Mysql数据库数据实时监控之canal

目前遇到一个需求,是基于mysql某表数据得变动,同步捕获变动的数据,经分析,选择阿里巴巴的canal作为mysql实时监控的中间件。canal github地址流程如下,抄袭的canal官网上的流程canal我们可以选择 server-client模式,这样我们的client,就可以选择自己喜欢的实现方式和业务逻辑去读取server监听到的mysql数据变化了。首先,被监听的mysql需要开启binlog,也就是mysql数据的变化会写道一个二进制的log文件中。定位到mysql的my.cnf配

2020-05-12 14:57:31

机器学习之开篇

机器学习,本质来讲,就是基于大数量的数据,寻找一种规律。然后根据找寻出的规律将未知目标值的数据确认目标值的过程。期间涉及到了数据,算法。近几年由于计算机硬件的升级,大规模计算成为可能,所以机器学习又开始兴起。数据数据是学习的来源,起初你拿到的是一堆陌生的数据,老板可能给你一项任务,目标是在这一堆数据中确认某一项信息,比如,图像识别,给你一堆图片验证码,让你确认验证码里的字符。起初的数据是不合适学习的,需要对其进行处理加工,图片验证码是图片,而且有干扰线的多个字符,那我们需要做的可能是去除干扰线并切割成

2020-05-11 08:12:03

后浪时代的我们,该如何自处

最近B站的后浪势头有点意思,最开始被人民日报微博引用,有网友调侃说小破站出息了。但随之而来的是现实生活中后浪们的讽刺与嘲讽,演讲中的后浪们过着父辈前浪们无法企及的精彩人生,尽情追逐自己的爱好,享受着快乐的生活。其实演讲的初衷或许是好的,激励着一代年轻人珍惜当下,敢于尝试和挑战自己。但看完演讲视频,一番心情澎拜过后,回归到现实中的我们又不得不面对现实的残酷,学业的压力,工作的压力,买房还贷的压力,我们也可以活的如视频中那样,但不是持久的,我们没有可以一直这样的资本,我们不得不面对生活的高成本,我觉得这个国家也

2020-05-09 17:18:36

thinking in Java faster—学习Java知识点的顺序

学习Java,如果你不是为了快速适应工作,你可以按部就班的根据thinking in Java这部经典书籍的章节顺序来学习,但是我觉得作者可能基于Java语言的知识结构来安排的写作顺序,章节顺序并不适合急于找工作,希望尽快进入编程工作状态的初学者。结合我近五年左右的工作经验,我觉得Java的学习顺序应该是如下图所示操作符及控制执行流程OOP集合对于编程来说,最最基础的就是基本操作符和控制执行...

2020-05-07 17:53:30

thinking in Java faster—Class类的剖析

今天来对Class进行一下解剖,看看它内部究竟有什么????。类的外貌Class ATypeName { /** class body **/ }OK,上边这个就是一个class类的第一层结构,Class代表声明了一个类,ATypeName是类的名字,花括号内是这个类的具体声明,主要声明成员变量和成员方法,它们均是类的成员。成员变量和成员方法Class Cat { String co...

2020-04-30 08:05:07

面向对象编程,为之奈何

这里借用伟大神的一句话:刚才总结了个想法。学习一个东西到底是应该跟着别人学好还是自学好。我觉得学习一个东西,如果自己还没形成一套该东西的认知框架(通俗点来说就是入门),跟着别人比较好,这样可以少走弯路,初期大面积东西思考不明白也打击信心。但一旦有了自己的思考体系,碰到问题还是先自己尽量解决,因为自己的这个思考过程很有价值,自己想通的和别人告诉你再想通的,绝对不一样。自己想通的能发散思维,能加深理...

2020-04-22 09:52:19

thinking in Java faster-数据类型

Java中的基本类型有八种,四类八种。那四类呢,如何记呢,数据嘛,无非就是那么几种,文本型(字符型):byte和char; 数字型,又分整数型(short,int ,long) 和浮点型(float 和 double);还有一种就是布尔值(true or false),这样四类八种就齐活了。记住的要点主要是了解数据的分类,文本型、数字型及布尔型,再依次分析每一种类型下属的基本类型即可。这里要知道的...

2020-04-14 11:50:53

新手程序猿如何在工作中解决问题

好多猿类朋友是刚工作或者刚入行不久的程序猿,这个行业的从业人员在外界看来,薪水高,每天做着高大上的编程工作,业务和产品人眼里,他们无所不能,任何需求都可以实现,实现不了那就是你技术不行。服不服,不服也不行,除非你混到高高在上的架构师,CTO或者....我也不知道了。总之只要你是一个像我一样普普通通的小程序员,那你就不得不面临日常惆怅蛋疼地解决问题的问题。其实解决问题的思路相比大家都知晓:你遇到的...

2020-04-13 08:41:08

自学Java之—数据结构

废话不多说哦,写这篇软文的时候我尝试用逆向思维去思考我的学习之路。故事回到原点,看到这篇文章的童鞋请自行带入以下场景:你被带入一家加工工厂,你被分配的任务就是生产可以存放特定物品的箱子,这里你拥有了一台机器,可以制造任何你想要制造的箱子,只要你想得到的都可以。这些箱子里需要放什么呢,有三种物品需要存放:一是杂乱无章的玻璃珠,各种颜色,现在需要每种颜色只保留一个放到箱子里,可以随便放,让小孩子从箱子...

2020-03-26 18:11:34

图片验证码识别之卷积神经网络CNN

最近新冠肺炎肆虐,已在家办公三周左右,闲来无聊,来写一篇最近用到的卷积神经网络训练模型来识别图片验证码的blog。最近在做一个网络爬虫的项目,爬取官方网站上的信息,需要输入查询内容及图片验证码上边的1-9及A-Z(除去O和I)字符进行验证,验证通过方可获取到返回的数据内容。起初用到了python推荐的tesserocr lib,但识别效率不是很高,因为我需要识别的验证码是倾斜的,并且带有干扰线...

2020-02-22 19:50:43

ThreadLocal源码解析及一点思考

看一个案例:public static void main(String[] args) { ThreadLocal<String> own = new ThreadLocal<String>(); own.set(Thread.currentThread().getName()); System.out.println(own.get()); ...

2019-05-31 11:33:36

算法-排序算法

插入排序 /** * 插入排序 * @param arr */ public static <T extends Comparable<? super T>> void insertSort(T [] arr) { int j; for(int i=1 ; i<arr.length; i++) { T tmp = arr[i]; ...

2019-03-29 16:44:18

Spring boot 数据库里读取属性到system中,以便@Value(${})从system中获取属性值

之前梳理spring启动,bean实例化的时候 有一个知识点是 beanDefination中的property是在beanFactoryPostProcessor中将property文件中的属性值赋给beanDeifination的,但在代码中使用@Value(${property}),debug时(如下),发现是AutowiredAnnotationBeanPostProcessor将属性注入...

2019-03-08 11:12:43

AOP 拦截线程池执行新线程,保证上下文在父子线程间传递

从朋友那里借鉴来的思路,他当时遇到的业务情况是这样的:每个用户登陆系统后,该用户需要异步执行多个方法,方法内涉及到从securityContext和LogContext中读取用户信息抽象出来便是用户登录的主线程需要异步(多子线程)执行多个方法,方法中需要保持用户的上下文信息解决思路:aop拦截子线程的调用,将上下文通过封装的Runnable对象传递给子线程。因为aop是beanPos...

2019-03-07 15:31:23

SpringCloud微服务架构(github项目)

基于springcloud的微服务架构搭建项目见github项目:microservice-sc=v1.0 ,后续会不断更新搭建过程并添加底层业务组件,如果您喜欢的话给颗star小星星吧,您的肯定是我创作的动力!...

2019-02-27 10:52:32

java中到底是值传递还是引用传递

这个问题不用考虑太复杂,答案是值传递。首先java中的数据类型有两种:基本类型和引用类型基本类型的传递举个栗子:public class App { public static void main( String[] args ) { Integer i = 10; changeInteger(i); System.out.print...

2019-02-20 11:09:30

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。