- 博客(23)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Netty应用高级篇一
本篇主要介绍Netty基于HTTP协议的开发应用 一,概念介绍 HTTP协议是建立在TCP传输协议之上的应用层的面向对象的协议。主要特点如下:1,支持Client/Server模式;2,简单。客户端向服务端请求服务时,只需指定服务URL,携带必要的请求参数或者消息体;3,灵活。HTTP允许传输任意类型的数据对象,传输的内容类型由HTTP消息头中的Content-...
2017-11-04 13:23:26
1035
原创 ElasticSearch问题求解:master not discovered yet: have discovered
ElasticSearch版本7.1.1问题环境:一台CentOs机器启动两个ElasticSearch实例,始终只能启动一个Master节点,Slave节点一直启动失败?使用docker-compose进行配置,配置文件截图如下:启动后es71_02报错信息如下:...
2020-12-14 18:54:14
3036
4
原创 编程游记七 《基于原型的编程》
基于原型的编程其实也是面向对象编程的一种方式。没有class化的,直接使用对象,又叫基于实例的编程,其主流的语言JavaScript, 与传统面向对象比较如下:基于类的编程中,对象总共有两种类型。类定义了对象的基本布局和函数特性,而接口是"可以使用的"对象,它基于特定类的样式。此模型中,类表现为行为和结构的集合,对所有接口来说这些类的行为和结构都是相同的。 原型编程,基于类的语言提倡使用一个...
2019-09-22 08:12:54
221
原创 编程游记六 《面向对象编程》
函数式编程总结起来就是把一些功能或逻辑代码通过函数拼装方式来组织的玩法。这其中涉及最多的是函数,也就是编程中的代码逻辑。但是代码中还需要处理数据的,这些就是所谓的"状态",函数式编程需要我们写出无状态的代码。对于状态和数据的处理,我们就必要提一下"面向对象编程"。面向对象编程三大特性:封装,继承,多态。面向对象编程是一种具有对象概念的程序编程范型,同时也是一种程序开发的抽象方针,它可能包含...
2019-09-21 15:17:51
174
原创 编程游记五 《Decorator模式》
Python之DecoratorPython的Decorator在使用上和Java的Annotation很相似,就是在方法名前面加一个@XXX注解来为这个方法装饰一些东西。但是Java的Annotation也很让人望而却步,太过于复杂了,需要了解一堆Annotation的类库文档。Python使用了一种相对于Decorator Pattern和Annotation来说非常优雅的方法,完全就...
2019-09-21 14:48:30
112
原创 编程游记四 《函数式编程》
函数式编程对于函数式编程来说,它只关心定义输入数据和输出数据相关的关系,数学表达式里面其实是在做一种映射,输入的数据和输出的数据关系是什么样的,是用函数来定义的。特征:stateless:函数不维护任何状态。函数式编程的核心精神是stateless,简而言之就是它不能存在状态,你给我的数据我处理完扔出来,里面的数据是不变的。 immutable:输入数据是不能动的,动了输入数据就有危...
2019-09-21 12:02:39
102
原创 编程游记三 《类型系统和泛型的本质》
类型系统一般来说,编程语言会有两种类型,一种是内建类型(int,float,char),一种是抽象类型(struct,class,function)。抽象类型在程序运行时,可能不表示为值。类型系统在各种语言之间有非常大的不同,最主要的差异存在于编译时期的语法,以及运行时期的操作实现方式。程序语言的类型系统主要提供如下的功能:程序语言的安全性。使用类型可以让编译器侦测一些代码的错误。 ...
2019-09-21 09:28:40
154
原创 编程游记二 《C++》
C++语言C++对C语言的贡献非常之大,因为C++很大程度就是用来解决C语言中的各种问题和不方便的。用引用来解决指针的问题。 用namespace解决名字空间冲突的问题。 通过try-catch来解决检查返回值编程的问题。 用class来解决对象的创建,复制,销毁的问题,从而可以达到在结构体嵌套时可以深度复制的内存安全问题。 通过重载操作符来达到操作上的泛型。 通过模板templ...
2019-09-21 09:01:00
100
原创 编程游记一 《C语言》
C语言特性:C语言是一个静态弱类型语言,在使用时需要声明变量类型,但是类型间可以有隐式转换。 不同的变量类型可以用结构体组合在一起,以此来声明新的数据类型。 C语言可以用typedef关键字来定义类型的别名,以此来达到变量类型的抽象。 C语言是一个有结构化程序设计,具有变量作用域以及递归功能的过程式语言。 C语言传递参数一般是以值传递,也可以传递指针。 通过指针,C语言可以容易地对内...
2019-09-20 21:19:22
270
原创 文件系统
一,什么是文件,文件系统?文件系统有哪些功能?计算机资源:硬件资源和软件资源。硬件资源:CPU,存储器和设备等;软件资源:系统程序,系统应用程序,库函数,用户应用程序等。文件:文件是一段程序或数据的集合。在计算机系统中,文件被解释为一组赋名的相关联字符流的集合,或者是相关联记录的集合。文件系统:操作系统中与管理文件有关的软件和数据称为文件系统。它负责为用户建立,撤销,读写,修改和复制文...
2019-09-10 10:28:21
751
原创 数独-回溯算法
package com.lzq.study.algorithms.test;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import java.util.List;import java.util.Map;import java.util.Random;import j...
2019-08-22 14:22:59
192
原创 JVM小记四
JVM对于静态绑定可以在链接解析阶段直接识别目标方法的情况;对于动态绑定需要在运行的时候根据调用者的情况去查询方法表的索引来获取对应的目标方法。动态绑定包括:invokevirtual, invokeinterface方法表本质上是一个数组,每个数组元素指向一个当前类及其祖先类中非私有的实例方法。满足两个特质:1,子类方法表包含父类方法表中所有方法2,子类方法在方法表中的索...
2019-03-22 10:11:37
77
原创 JVM小记三
JVM如何执行方法调用的?说到JVM执行方法调用,主要是指JVM如何识别class文件中指定的方法的。确定方法的唯一标识:包名 + 类名 + 方法名 + 方法的入参 + 方法的返回参数。对于Java代码来说,只需通过包名 + 类名 + 方法名 + 方法的入参 就可以唯一标识一个方法,JVM虚拟机中还加入的方法的返回参数。所以对于Java来说就引入了重载和重写的概念?重载:同一个...
2019-03-21 21:46:00
92
原创 JVM小记二
C和C++代码无需额外的运行,可以直接编译成CPU能够理解的机器码,为什么Java要在虚拟机里运行?1,Java作为一门高级程序语言,语法非常复杂,抽象程度很高,直接在硬件上运行并不现实。2,脱离底层硬件的依赖,只要能够安装虚拟机,就可以实现一次编写,到处运行。3,虚拟机带来了托管环境,能够替代码处理冗长而且容易出错的部分。如自动内存管理,垃圾回收,数组越界,动态类型转换等。...
2019-03-21 10:50:18
112
原创 JVM小记一
作为Java程序员,JVM似乎已经成为你成长阶段必须要掌握的一项技能。无论是Java程序的系统调优,还是OOM。一些看似貌似很高深的问题,背后都隐藏的JVM技能。这也成为我一个具备5年Java开发经验的人,必须去深入了解一下JVM的原因。学习要了解点:1,JVM如何加载JAVA字节码,转换为机器码?2,JVM如何管理JAVA的内存?3,JVM使用了哪些垃圾回收机制和算法?...
2019-03-20 16:37:18
104
原创 Oracle数据库基础
一,数据库系统中什么是稀有资源在数据库管理系统中最宝贵的稀有资源是内存。为了高效地使用内存这种稀有资源,同时保证不会丢失任何数据库中的数据,数据库管理系统引入了非常复杂的体系结构。内存的访问速度是电子速度,而硬盘的数据访问主要取决于机械速度,如果一个数据库管理系统能够使绝大多数数据操作在内存中完成,那么该数据库管理系统的效率将非常高。 二,Oracle体系结构的轮廓主要包括...
2019-01-28 22:32:58
161
原创 Netty应用高级篇三
本篇主要介绍Netty基于UDP协议的开发 一,UDP协议介绍 UDP:无连接的,通信双方不需要建立物理链路连接。在网络中它用于处理数据包,在OSI模型中,它处于第四层传输层,即位于IP协议的上一层。它不对数据报分组,组装,校验和排序,因此是不可靠的。 UDP协议的特点:1,UDP传送数据前并不与对方建立连接,即UDP是无连接的。在传输数据前,发送方和接收方相互交换...
2017-11-17 22:49:13
229
原创 Netty应用高级篇二
WebSocket协议开发 一,背景 一直以来,网络在很大程度上都是围绕着HTTP的请求/响应模式而构建的。所有HTTP通信仍然是客户端控制的,需要用户进行互动或定期轮询,从服务端加载新数据。 HTTP协议的弊端如下:(1)HTTP协议为半双工协议。数据在客户端和服务端两个方向上传输,但是不能同时传输。这意味着在同一个时刻,只有一个方向上的数据传送。(2)HTT...
2017-11-13 21:25:32
374
原创 微服务入门介绍
一,微服务架构背景介绍 随着业务的发展,应用规模不断扩大,系统内部的巨无霸应用越来越多,常规的垂直应用架构已经无法应对复杂业务带来的各种挑战。通过将业务公共能力抽象成原子服务,对服务应用进行水平拆分和服务化,实现服务消费者和提供者的解耦。 1,传统垂直应用架构LAMP架构 = Linux + Apache + PHP + MySQL;MVC架构 = Spring + S...
2017-10-29 10:24:34
263
原创 Netty应用基础篇
本篇主要介绍Netty解决TCP粘包和拆包问题。概念介绍TCP是个”流"协议,所谓流,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。产生原因:1,应用程序write写入...
2017-10-21 23:23:22
91
Netty入门
引入Netty背景 目前使用JDK的NIO类库进行开发问题较多如下:1,NIO的类库和API繁杂,使用麻烦,需要熟练掌握Selector,ServerSocketChannel,SocketChannel,ByteBuffer等。2,需要具备其他的额外技能做铺垫,例如熟悉Java多线程编程。3,可靠性能力补齐,工作量和难度都非常大。4,JDK NIO的BUG,如epoll...
2017-10-15 22:12:47
113
原创 Java之NIO
演进之路 JDK1.4推出Java NIO之前,基于java的所有Socket通信都采用了同步阻塞模式BIO,对于这种一个请求,一个应答的通信模型简化了上层的应用开发,但是在性能和可靠性方面却存在着巨大的瓶颈。当并发访问量增大,响应时间延迟增大之后,采用Java BIO开发的服务端软件只有通过硬件的不断扩容来满足高并发和低延迟。从JDK1.0到JDK1.3,Java的I/O类库都非...
2017-10-14 10:20:19
183
原创 三年小记
2017年初就想开始自己的博客生涯,一晃大半年都要过去了,还没有记录一篇文章。拖拖拉拉的习惯终究是不好,最近时间比较充裕,正式开始启动自己的博客生涯。以后争取每周更新一篇,记录自己技术成长的历程。 三年感悟:2014年6月进入华为到今天,差不多三年半的时间了。还记得当初进入华为的时候,自己带着一颗一定要成功的决心。三年的时间过去,当初的那颗心慢慢的被磨平了。工作中各种各样的细节,
2017-09-24 16:27:22
178
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人