自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式回顾

设计模式本人比较倾向于敏捷开发的时候最好用(大神请忽略),总体设计比较倾向于自顶向下的设计。设计模式主要是根据设计原则在不同场景的使用经验的出来的,我们站在巨人的肩膀上来看看吧。http://c.biancheng.net/design_pattern/本人面试问的最多的是:什么是面向对象,讲讲你的理解?往往很少人能说好,只能说面向对象有三大特征:封装、继承、多态。背过无数次深入...

2019-07-13 23:39:10 152

翻译 多线程设计模式之两阶段停止

本人来自《java多线程实战指南》一书的内容java多线程停止实际上是一个很复杂的任务,有各种各样的情况,比如:线程还有没有进行完的任务,比如还有处于阻塞状态的任务等等。那么怎么实现有效的停止呢? 就像现实中的跑步一样,飞奔的过程中突然停止总是很难的,总需要一个准备阶段和一个打断的阶段。我们先来看看线程的运行情况: 那么准备阶段我们需要做什么呢?1.我们应该告诉线程...

2019-06-16 23:30:50 196

原创 领域驱动设计(二)

1.在分析模型中最难做的就是分离领域,如何分离领域?每层之间如何联系?每层做什么?我们为什么使用框架? 只有分离领域才能将分而治之的思想用到,才能模块化具体化。从抽象概念到领域设计必经之路。2.基本的模型划分:用户界面层=》应用层=》领域层=》基础设施层3.面向对象的程序中,常常将业务对象直接写入用户界面、数据库访问等支持代码。而一些业务逻辑则会被嵌入到用户界面组件和数据库脚本中...

2019-05-31 00:40:58 288

原创 领域驱动设计

领域设计随着微服务的越来越火,领域设计也越来越火。什么是领域设计?一、了解领域设计,如何通过模型来吸收知识 一些设计因素是技术上的。大批开发人员很注意培养自己的技能,并紧跟每一次技术进步。很多的应用程序主要的复杂性不在于技术上,而来自于领域本身、用户的活动或者业务。领域设计注重领域模型的建立。模型:用来描绘人们所关注的现实或想法的某个方面,模型是一种简化。它是对现实的解释...

2019-05-25 22:48:45 644

原创 骚操作系列(一)

1.每当看到一些好的操作总会记录下来。这次看看hbase源码中的骚操作吧: 一、创建对象: 如何灵活增加删除接口的实现类呢?保证使用的时候只加载一次呢?看看hbase源码如何做的 1.1@InterfaceAudience.Privatepublic class CompatibilitySingletonFactory extend...

2019-05-12 21:11:37 959

原创 python爬取hbase信息

1.随着业务系统的越来越庞大,hbase的表越来越多,分区规则,TLL时间等需要时刻去维护。所以从0到1学会用python爬取hbase信息。第一步下载hbase:https://mirrors.cnnic.cn/apache/hbase/1.3.3/第二步解压:tar -zxvf hbase-1.3.3-bin.tar.gz第三步下载hadoop :http://mirrors.ad...

2019-05-07 22:44:11 597

原创 python的日志

官方文档如下:This module defines functions and classes which implement a flexible event logging system for applications and libraries.这个模块定义函数和类可以用于应用程序和类库去实现灵活的日志系统。The key benefit of having the loggi...

2019-04-21 22:01:22 96

翻译 Kafka之生产者 笔记二

1.客户端请求分为响应式的请求和非响应式的请求: 不需要响应的流程: 开始发送请求->添加客户端请求到队列->发送请求->请求发送成功->从队列中删除请求->构造客户端响应。需要响应的流程: 开始发送请求->添加客户端请求到队列->发送请求->请求发送成功->等待接收响应->接收响应->...

2019-04-08 21:15:27 135

翻译 Kafka之生产者 笔记一

文章内容选自《Kafka技术内幕图解》1.消息系统通常是由三大块组成:生产者、消费者、消息代理。 功能:生产者会将消息写入消息代理中,消费者会从消息代理中读取消息。对于消息代理而言,消费者和生产者都是客户端。2.通信步骤: 1.生产者客户端应用产生消息。 2.生产者包装消息到请求头中,发送到客户端。 3.服务端对象负责接收请求,并将消息以文件形式...

2019-03-31 22:32:20 120

原创 谈谈设计模式之观察者模式

观察者模式场景是什么?设计的本质是什么?首次很多场景中都有观察者,观察者的功能是【发现和通知】。发现如何设计,通知又如何设计?选自《大话设计模式》的场景。前台服务去观察老板是否回来,回来的话就通知同事不要玩游戏了。对场景中的对象进行抽象最终的模式图:看一篇关于这个的博文:https://www.cnblogs.com/fingerboy/p/6393644....

2019-03-17 21:44:21 127

原创 Structured Streaming之StateStoreProvider

这个类主要作用是状态更新,描述如下: An implementation of [[StateStoreProvider]] and [[StateStore]] in which all the data is backed by files in a HDFS-compatible file system.All updates to the store has to be don...

2019-03-10 21:46:49 437

原创 Java面试之JVM(一)

(JVM)请介绍类的加载过程,什么是父类委托机制(双亲委派模型不准确的叫法)?加载过程有哪些?这些过程有什么作用?各个过程有问题又会怎么样?为什么叫做双亲委派模型?好处是什么?坏处是什么?有什么解决方式吗?类加载:JVM将编译好的.class文件(字节码文件)以二进制流的方式加载到我们内存中,并且将二进制流中静态的数据结构转换成我们方法区中动态运行数据结构,并且在对堆内存生成一个java.l...

2019-03-03 16:08:09 137

原创 Hadoop全局排序报错

1.在多个reducetask的并且进行全局排序的时候报出错误: java.io.IOException:wrong key class: org.apache.hadoop.io.Text is not class org.apache.hadoop.io.LongWritable这个问题原因是输入的Key和输出的key不一致导致的。为什么会导致这个问题呢?Hadoop 全局排...

2019-02-17 12:26:32 324

原创 Spark之MetricsSystem

1.看启动start方法,spark中有哪些类调用了MetricsSystem类的start方法  SparkEnv,Master,SparkContext,Worker,ExternalShuffleService,主要讲ExternalShuffleService  ExternalShuffleService:这个类的作用是提供一个服务来读取shuffle程序,可以防止executo...

2019-02-12 23:24:41 391

原创 Spark源码之SparkListener

1.看看SparkListener提交的过程,如何提交的?LiveListenerBus类中大小和存储结构,存储通过LinkedBlockingQueue来管理的,里面存放事件类型的数据。private lazy val EVENT_QUEUE_CAPACITY = validateAndGetQueueSize()private lazy val eventQueue...

2019-01-29 23:57:33 400

原创 sparkLauncher源码之LauncherServer

1.这个类主要作用是接受消息然后调用listener监听 * * ----------------------- ----------------------- * | User App | spark-submit | Spark App | * ...

2019-01-26 23:41:38 712

原创 SparkStreaming随笔之Receivcer

1.sparkstreaming的receiver启动流程。     首先是:StreamingContext的start方法。    然后到JobScheduler的start方法,这个时候已经产生了ReceiverTracker对象。  ReceiverTracker对象调用了start方法。start方法中核心代码如下:         if (!receiverInputS...

2019-01-19 23:20:36 173

原创 Sparkstreaming之JobScheduler

1.processEvent方法//接口继承关系private[scheduler] sealed trait JobSchedulerEventprivate[scheduler] case class JobStarted(job: Job, startTime: Long) extends JobSchedulerEventprivate[scheduler] case clas...

2019-01-16 22:56:41 347

原创 SparkStreaming之StreamingContext

 1.startSparkStreaming 入口类,提供了大量根据不同数据源创建DStream的方法。def start(): Unit = synchronized { state match {  //INITIALIZED表示context被创建,但是并不没有开始它。输入流,转换,和输出操作都被创建。 case INITIALIZED =>//设置代表用户...

2019-01-15 23:29:36 1053

原创 sparkSQL入数据库源码解析

1.用sparkSQL入mysql和sparkcore入mysql有啥区别呢?我们看看sparksql源码:写入:df.write.jdbc(url1, "TEST.TRUNCATETEST", properties)转化一下配置信息:def jdbc(url: String, table: String, connectionProperties: Properties): ...

2019-01-13 11:24:33 650

原创 需求分析

       需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行...

2019-01-06 23:16:01 1718

转载 netty入门demo

netty原理链接 https://www.oschina.net/question/16_9863本文主要是手写一个demo入门: 服务器:public class MyNettyServer { private static String IP="127.0.0.1"; private static int port=1234; ...

2019-01-06 14:44:29 179 2

原创 JAVA注解

 1.阅读源码时经常会有一些注解,通常是为了更加灵活的设计。代码片段一选自Netty源码:@Inherited@Documented@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@interface Sharable { // no value}Inherited应用在类上,继承的子类会自动向上查...

2019-01-01 22:00:31 76

原创 UML总结(一)

      在软件开发中,尤其是从事Java开发,核心代码可能很少。但是随着需求的修改,代码变得越来越难以维护。如何让自己的代码变的扩展性更加强呢?先从软件设计入手,拒绝没有设计而开始开发的产品。现在给大家将一个对于需求分析,和软件设计的工具UML。      软件建模包含两个方面:一是静态方面,一是动态方面。比如静态方面:服务器如何搭建,动态建模:通常是软件的交互。  三大要素:  ...

2019-01-01 16:43:59 718

原创 netty学习必备基础

1.IO第一阶段,BIO,阻塞式IO  服务器端代码:import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public abstract class Server { public static int DEFAULT_HOSTS=7778; public...

2018-12-30 20:27:40 510

原创 JDK源码分析系列.Semaphore

/** * A counting semaphore. Conceptually, a semaphore maintains a set of * permits. Each {@link #acquire} blocks if necessary until a permit is * available, and then takes it. Each {@link #rele...

2018-12-23 18:21:18 145

翻译 多线程系列(一)线程基础知识

 本文选自【JAVA并发的艺术】一书的内容 1. 如何减少上下文切换?         减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。·         无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。·         CAS算法。Java...

2018-12-18 23:45:41 213

原创 面试题系列(一):hashmap的底层实现put操作,扩容机制

1.Hashmap原理及内部数据结构:    底部采用hash表数据加链表的形式,1.8以后引入了红黑树的数据结构。时间复杂度由O(n)变为O(logn)   节点结构:重写了equals方法:        1.1扩容规则是什么?     初始化数组长度为16.    最大长度限制   获取在数组中的位置:当数组长度到0.75时扩容:...

2018-12-16 23:11:33 5090

转载 如何写好代码

这篇博客不错转载一下     http://www.phpxs.com/post/5046

2016-05-02 13:55:37 159

原创 unity3D的update·函数

这是我的第一篇博客,希望和大家一起学习,一起进步,有不对的地方还望指出。   我在做游戏中遇到了一个对角色控制不起作用的问题,原因是动画和控制的动作都在每一帧时进行的。所以无法控制,需要将脚本中的update函数改为LateUpdate函数。 借助unity的帮助文档可以发现。LateUpdate is called every frame, if the Behaviou

2015-07-20 13:46:50 1989

编译原理.pdf

学习编译器,无论是入门还是精通,这都是一本很好的书籍

2015-04-05

空空如也

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

TA关注的人

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