自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 2-深入理解Hbase

深入理解hbase1 HBase简介1.1 什么是HBaseHBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。官方网站:http://hbase.apache.org– 2006年Google发表BigTable白皮书– 2006年开始开发HBase– 2008年北京成功开奥运会,程序员默默地将HBase弄成了Hadoop的子项目– 2010年HBase成为Apache顶级项目– 现在很多公司二

2021-11-08 17:59:21 329

原创 1-ZooKeeper深入理解

1 ZooKeeper详解ZooKeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。1-1 ZooKeeper工作机制Zookeeper从设计模式角度来理解:是一个基于观察者设计模式的分布式服务管理框架,他负责储存和管理发家都关心的数据,然后接收和观察者的注册,一旦这些数据的状态发生变化,ZooKeeper就讲负责通知已经在Zookeeper上注册的那些观察者做出响应的反应。1-1-1 ZooKeeper特点1)Zookeeper:一个领导者(leader),多个跟

2021-11-08 10:16:42 705

原创 设计模式(1)-工厂模式

设计模式-工厂模式工厂模式是java中最常用的设计模式之一。这种类型的设计模式属于创建模式,应为此模式提供了创建对象的最佳实践之一。在factory模式中,我们创建对象而不讲创建逻辑暴露给客户端,并使用公共接口引用新创建的对象。实现我们将创建一个Shape接口和实现Shape接口的具体类。 工厂类ShapeFactory被定义为下一步。FactoryPatternDemo ,我们的演示类将使用ShapeFactory来获取Shape对象。它会将信息( CIRCLE/RECTANGLE/SQUAR

2021-08-02 14:49:58 154

原创 spring-core中的Assert工具类

spring-core中的Assert工具类1-1 前言我们编码的过程中,会有各种各样的判断逻辑,并且对不合法的判断逻辑需要抛出相应异常根据设计模式的理念,我们需要提出公共的代码块。所以Assert工具类就诞生了,在下面的例子中简单介绍了,常见的判断代码块和一些常见的使用。1-2 Assert工具类使用1-3 Assert 源码解读package org.springframework.util;import java.util.Collection;import java.util

2021-07-27 18:07:42 305

原创 2-Java函数式接口之Supplier

Java函数式接口之Supplier1-1 简述supplier接口生产型接口指定为什么类型,那么get就会生产什么类型的对象数据get是接口中的方法1-2 例子一import java.util.function.Supplier;/* 常用的函数式接口 java.util.function.Supplier<T>接口仅包含一个无参的方法:T get()。用来获取一个泛型参数指定类型的对象数据。 Supplier<T>接口被称之为生产型

2021-07-27 17:54:19 269

原创 12 详解scalal中的特质(Traits)和混入的结合

详解scalal中的特质(Traits)1-1 特质定义特质 (Traits) 用于在类 (Class)之间共享程序接口 (Interface)和字段 (Fields)。 它们类似于Java 8的接口。 类和对象 (Objects)可以扩展特质,但是特质不能被实例化,因此特质没有参数。...

2021-01-12 09:59:42 483

原创 11 详解scala中函数默认参数和命名参数

详解scala中函数默认参数我们前端都是写道函数默认参数的一些问题,这里我们再拿出来说一下。基本上官方的分文档还是写的比较的详细。在看一些基础的时候可以学习下。Scala具备给参数提供默认值的能力,这样调用者就可以忽略这些具有默认值的参数。def log(message: String, level: String = "INFO") = println(s"$level: $message")log("System starting") // prints INFO: System st

2021-01-11 14:59:37 240

原创 10 详解scala中的类

1 详解scala中的类基本思路还是跟到官网文档走,遇到一些特别的点,增加对应的补充。官网文档:https://docs.scala-lang.org/zh-cn/tour/classes.htmlScala中的类是用于创建对象的蓝图,其中包含了方法、常量、变量、类型、对象、特质、类,这些统称为成员。1-1 类定义一个最简的类的定义就是关键字class+标识符,类名首字母应大写。class Userval user1 = new User关键字new被用于创建类的实例。User由

2021-01-11 14:34:55 339

原创 09 详解scala统一类型

1 详解scala统一类型前言基本思路还是参考官方文档官方文档地址:https://docs.scala-lang.org/zh-cn/tour/unified-types.html1-1 Scala类型层次结构在Scala中,所有的值都有类型,包括数值和函数。下图阐述了类型层次结构的一个子集。Any是所有类型的超类型,也称为顶级类 型。它定义了一些通用的方法如equals、hashCode和toString。Any有两个直接子类:AnyVal和AnyRef。AnyVal代表值类型。有

2021-01-06 14:16:06 94

原创 08 scala中的延迟加载

1 scala中的延迟加载1-1 代码示例1-1-1 没有执行延迟加载代码object Scala06_Lazy { def main(args: Array[String]): Unit = { def sum(x: Int, y: Int): Int = { println("sum方法被调用了") x + y } // lazy val num: Int = sum(1, 10) val num: Int = sum(1, 10)

2021-01-05 17:22:29 158

原创 07 详解scala函数编程

1 详解scala函数编程1-1 函数编程简述面向对象,解决问题时,将问题拆解成一个一个小问题(形成的对象),分别解决。函数式编程关心是的问题的解决的方案(封装功能),重点在于函数(功能)函数的入参,出参函数和java中的method java中的method依赖于某个对象 函数就可以独立声明 他们的一直点 都是对功能的封装scala的语法十分灵活,在任意语法中可以声明其他语法规则在main函数体外面的源码 def test(str: String): Unit = { //函

2021-01-05 15:57:19 113

原创 06 详解scala的for循环

1 for循环1-1 to关键字1-1-1 源码 // 使用 1 to 5 标识循环的范围 从1到5 for (i <- 1 to 5){ println(s"i = ${i}") }1-1-2 说明scala 不需要声明 变量的类型, 对比java中的”i“需要指定类型start to end 标识从start 到end 包括end1-2 unitl关键字1-2-1 源码for (i <- 1 unt

2021-01-05 11:21:52 451

原创 05 java和scala中中静态导入对比

导入指定类的某个静态成员变量、方法。导入指定类的全部的静态成员变量、方法。java代码import static java.lang.System.*;import static java.lang.Math.*;public class JavaSaticTest { public static void main(String[] args) { long num = round(123.123); out.println(num); }.

2021-01-05 10:50:28 178

原创 深思java中关于i++3三中方式

1 关于i++的三种思考方式1-1 源码 public static void main(String[] args) { int i = 0; int i = i++; System.out.println("i="+i); }1-2 结果i=01-3 第一次思考– 可以看到上面“i=0”,我们在最开始学习java的时候, “ int i = i++;”容易理解为i先赋值给一个中间变量,然后再执行“+1”的行为。这样理解比较片

2021-01-04 18:17:46 621

原创 04 scala中字符串的格式化输出

1 Scala中字符串的格式化输出1-1 字符串格式化输出(java)源码 val name = "张三" val age = 1 val url = "www.baidu.com" // s是字符串,d是数值输出 println("name = " + name + " age =" + age + " url = " + url)1-2 字符串格式化输出(C语言) val name = "张三" val age = 1 val url =

2021-01-04 16:31:48 962

原创 Protobuf整合netty多种消息类型处理方案

Protobuf整合netty多种消息类型处理方案1-1 前言大致上和前一篇文档里写的类似。其关键点还是procto文件的中做的文章,大致上的思路是我们定义一个消息类型在最外层,然后需要的消息类型包装在里面,让后定义一个枚举,枚举里面就是定义各种消息类型的标识,通过这样一种方式,可以实现动态的多消息类型的传输。1-2 proto文件syntax = "proto2";package com.zt.proto;option optimize_for = SPEED;option java_

2020-12-17 11:43:14 1023 1

原创 Protocol Buffer整合netty

Proto2在netty中的实践1-1 前言我们是在学习netty的背景下,学些protocol Buffer的,所以我们在我们的实践文档,也是在这样的背景下整理出来的。1-2 编辑简单的Proco文件1-2-1 Student .protosyntax = "proto2";package com.zt.proto;option optimize_for = SPEED;option java_package = "com.zt.proto";option java_outer_c

2020-12-17 10:41:27 176 1

原创 Protocol Buffer 官网文档整理

proto2官网文档1-1 前言 网上很多proto2的教程很多,我这里本来再看Netty的源码, 涉及到RPC的框架,加上公司有点项目也涉及的gRpc一些相关的开发,所以我这里这整理下Protocol Buffers的官方教程。1-2 定义消息类型// 官网例子message SearchRequest { required string query = 1; optional int32 page_number = 2; optional int32 result_per_pa

2020-12-16 16:17:48 1257

原创 MySQL Percona-server版本的安装,初始化

1 Percona数据库的安装,初始化前言 这里简单说下,应该很多同学都是清楚的,mysql 分支,mysql的官方开源版本,一个mysql之父搞得MariaDB社区版本,还有就是Percona-server这个版本,基本上冲大并发这块,percona优于MariaDB,MariaDB优于mysql官方开源版本。 mysql被oracle收购了,那么MySQL存在比闭源的风险,所以大公司有些就换了数据的原型,淘宝换成了mysql的Percina-server ,Google\Wikipedia选

2020-11-19 17:02:32 1132

原创 CommonLang3中的DateUtils的Api源码解读

1 CommonLang3中的DateUtils的Api源码解读1.1 add**源码public static Date addYears(Date date, int amount) { return add(date, 1, amount); } public static Date addMonths(Date date, int amount) { return add(date, 2, amount); } public

2020-11-05 17:51:33 378

原创 CommonLang3中的ArrayUtils的Api源码解读

1 CommonLang3中的ArrayUtils的Api源码解读ArrayUtils里面有很多方法的只是参数不一样,其他的都是差不多的.,我就主要常用的将一些方法从源码的角度来解读下.1.1 toString源码 public static String toString(Object array) { return toString(array, "{}"); } public static String toString(Object array, St

2020-11-05 16:15:27 284

原创 CommonLang3中的StringEscapeUtils的Api源码解读

StringEscapeUtils这个类里提供了很多转义的方法,比如可以转成json、xml、html等格式下面是里面的方法: 可以看到方法还是不少的,我就简单些几个例子,在看下源码解读下,是怎末实现的。 下面简单写了些例子: // 转义成Unicode编码 转成Unicode编码:\u9648\u78CA\u5174 String unicode="陈磊兴"; String esc_unicode=StringEscapeUtils.escapeJava(un

2020-11-05 11:38:30 486

原创 CommonLang3中的StringUtils的Api源码解读

前言这个包其实我们在平时开发使用的是很频繁的,但是很多时候都没自己从源码的解读下。刚好这段时间有点时间,我就去搞下。1 StringUtils方法介绍StringUtils是提供字符串操作的工具类。提供的方法很多,我们就常见的方法看下。1.1 isEmptyStringUtils源码 public static boolean isEmpty(CharSequence cs) { return cs == null || cs.length() == 0; }说

2020-11-05 11:17:58 249

原创 5 Netty整合socket分析

Netty整合socket先上代码,将代码跑起来,再分析1.1 服务端代码1.1.1 MyServerpackage com.netty.websocket.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopG

2020-10-28 16:07:58 392

原创 4 Netty多客户端连接与通信

1 Netty多客户端连接与通信 前言 上篇写到netty的socket简单的例子,这里将上篇的例子改一改,来分析多客户端连接与通信的情况。下面还是直接上代码。1.1 服务端1.1.1 MyServerpackage netty.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;impo

2020-10-27 15:55:14 1192 1

原创 3 Netty的Socket编程详解(一)

1.1 服务端先上干货,在后面做代码分析1.1.1 MyServer启动项MyServerpackage com.netty.server;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io

2020-10-26 17:46:04 216

原创 2 Netty回调与Channel执行流程分析

1 Netty回调与Channel执行流程分析1.1 演示NettyDemo1.1.1 TestServerInitailizerpackage com.zt.netty;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.socket.SocketChannel;import io.netty.handler.codec.http

2020-10-26 14:21:07 716

原创 1_Netty宏观理解

1.1 Netty宏观理解1.1 Netty的概念 Netty是一个NIO客户端服务器框架,可快速轻松地开发网络应用程序,例如协议服务器和客户端。它极大地简化和简化了网络编程,例如TCP和UDP套接字服务器。“快速简便”并不意味着最终的应用程序将遭受可维护性或性能问题的困扰。Netty经过精心设计,结合了许多协议(例如FTP,SMTP,HTTP以及各种基于二进制和文本的旧式协议)的实施经验。结果,Netty成功地找到了一种无需妥协即可轻松实现开发,性能,稳定性和灵活性的方法。1.2 Nett

2020-10-23 15:06:34 101

原创 H2数据安装和整合SpringBoot

1 H2 数据库的简单使用1.1 H2 数据库简述H2是一个Java编写的关系型数据库,它可以被嵌入Java应用程序中使用,或者作为一个单独的数据库服务器运行。H2数据库的前身是 HypersonicSQL,它的名字的含义是 Hypersonic2,但是它的代码是从头开始编写的,没有使用HypersonicSQL或者HSQLDB的代码。关系数据库(英语:Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实

2020-10-13 12:04:21 655

原创 win10 安装mysql8.x版本修改区分的大小写的配置出现“Different lower_case_table_names settings for server (‘1‘) and data

win10 安装mysql8.x版本修改区分的大小写的配置问题描述 在做quartz分布式解决方案的时候,出现一个问题就是就是MySQL数据库区分大小写得的问题,本来在win上面很简单 在mysql 安装路径里面my.ini跟该 lower_case_table_names=2,在重启下就完了 ,但是出现了“Different lower_case_table_names settings for server ('1') and data dictionary ('0').” 这个问题。在

2020-10-12 17:02:36 14652 2

原创 java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is unrecognized

问题描述java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized原因是为 驱动包里面的时区和数据的时区不一致的引起的,所以就有了下面的解决方案解决方案方法 1 更改驱动的版本既然驱动的时区不一致,我们就改版本 ,让时区的一直即可方法二 指定url时区在驱动连接jdbc url上面指定时区也可以解决这个问题,没有加时区url:jdbc:mysql://127.0.0.1:3306/qua

2020-10-12 10:56:35 695

原创 在安装虚拟机centos6.5没有下一步处理方法?

处理方式: 在虚拟机设置里面设置下 显示屏的分辨率就可以了。我这边调成了800*600 ,问题解决

2020-08-04 10:14:43 359

原创 Redis各种数据类型的实例

String类型实例package com.zt.redis;import redis.clients.jedis.Jedis;import java.util.List;public class RedisStringTesting { public static void main(String[] args) throws InterruptedException { //连接本地的 Redis 服务 Jedis jedis = new Jed.

2020-07-31 11:07:50 383

原创 安装Redis单机版本(Linux)

安装rz szyum install lrzsz# rz:从本地上传文件至服务器# sz filename:从服务器下载文件至本地上传 redis-3.2.5.tar.gz 上传路径为/opt/softrz解压 redis-3.2.5.tar.gz 解压路径 /opt/redistar -zxvf redis-3.2.5.tar.gz在redis-3.2.5目录下执行make命令# 执行命令后会出现 “gcc:命令未找到” 的情况# 需要安装其他环境(需要能连.

2020-07-31 10:32:14 121

原创 SpringBootzhong@Enable的特性原理分析

SpringBoot中@Enable*的特性原理分析1.1 @Enable*的两个例子1.1.1 特性一: @EnableConfigurationProperties 从配置文件中获取属性注入到bean中TomcatConfigpackage com.spring.enbale;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.ster

2020-07-28 11:09:11 249

原创 Spring的@Condidtion注解解析

Spring框架中Condidtion注解1.1 装配bean简单过滤1.1.1 实现接口EcondingConvertpackage com.spring.condition;public interface EcondingConvert {}1.1.2 创建GBKEcondingConvert,UTF8EcondingConvert实现EcondingConvertpackage com.spring.condition;public class GBKEcondingConve

2020-07-22 17:01:56 903

原创 Spring中bean的装配

Spring基础1.1 Spring中注入bean1.1.1 通过@bane实现bena的装配1.1.1.1 创建一个beanpackage com.zt.spring;public class MyBean { private String userName; private Integer userAge;}1.1.1.2 配置Config 配置beanpackage com.zt.spring;import org.springframework.con

2020-07-22 10:46:24 138

原创 SpringBoot配置分析

SpringBoot配置分析1.1 两种获取配置文件的值1.1.1 application.properties配置文件server.port=8080local.ip=192.168.1.1local.port=8089#变量引用local.ipAndPort="ip"+${local.ip}+"port"+${local.port}company.id=companyIdcompany.name=companyName1.1.2 配置类package com.spring.l

2020-07-22 10:44:24 248

原创 Java多线程编程核心

Java多线程编程入门1. 多线程编程基础1.1 进程、线程1.1.1 进程狭义:进程是正在运行的程序的实例。广义:进程是一个具有一定独立功能的程序,关于某个数据集合的一次运行活动。进程是操作系统动态执行的基本单元,在传统的操作系统中, 进程即是基本的分配单元,也是基本的执行单元。1.1.2 线程线程是操作系统能够进行运算调试的最小单位。它被包含在进程中,是进程中的实际动作单位。一个线程指的是进程中的一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程执行不同的任务。1.1.3 多线

2020-07-09 10:30:37 167

原创 python(dict字典)

dict 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 一个简单的字典实例: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '32

2020-05-28 16:43:28 123

空空如也

空空如也

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

TA关注的人

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