ZK Watcher 的原理和实现 什么是 ZK Watcher 基于 ZK 的应用程序的一个常见需求是需要知道 ZK 集合的状态。为了达到这个目的,一种方法是 ZK 客户端定时轮询 ZK 集合,检查系统状态是否发生了变化。然而,轮询并不是一种高效的方式,尤其是在状态变化的发生频率很低的时候 因此,ZK 提供了一种通过通知客户端感兴趣的具体时间来避免轮询造成的性能问题的方式,即设置 Watcher 的方式。通过设置 W...
Java8--Lambda表达式 一、Lambda简述 1.1、Lambda概述 Lambda 表达式可以理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名:它不像普通方法那样有一个明确的名称; 函数:Lambda 表达式是函数是因为它不像方法那样属于某个特定的类,但和方法一样,Lambda 有参数列表、函数主体、返回类型,还...
JVM垃圾回收 (转):https://www.cnblogs.com/godoforange/p/11552865.html 如何判断对象是否为垃圾对象? 1)引用计数法 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用技术器得值就+1,当引用失效的时候,计数器得值就-1算法缺点:循环引用无法回收。 2)可达性分析法 GCroot结点开始向下搜索,路径称为引用链,当对象没有任何一...
linux常用命令 系统信息: arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuin...
Excel函数 统计A列的值在B列中是否存在: --B:B表示整个B列,A1表示A列第一个单元格if(countif(B:B,A1)>0,"存在","不存在") 查找C列在目标区域(A1:Bn)匹配相等的值,返回第一列,精准匹配: VLOOKUP(C1,A1:Bn,1,FALSE) 转载于:https://www.cnblogs.com/jvStarBlog/p/11...
java--io 文件转字节数组: private byte[] fileConvertToByteArray(File file) { byte[] data = null; try { FileInputStream fis = new FileInputStream(file); ByteArrayOutp...
hdfs文件上传下载--client模式--Kerberos认证 准备工作:从hadoop集群找到core-site.xml,hdfs-site.xml,yarn-site.xml配置文件,放到项目对应资源配置目录下。这种方式属性配置全,自己配置容易遗漏配置,导致 一些无法预料的错误。 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileS...
java--正则表达式使用 解析ip: private String parseIp(String jdbc) { String pattern = "((25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))"; Pattern r = Pat...
druid配置详解 转:https://blog.csdn.net/flyjava_com/article/details/78438410 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。接下来本教程就说一下druid的简单使用。 ...
dubbo详细介绍 转:https://www.cnblogs.com/juncaoit/p/7686510.html 1.背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 2.架构 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和...
java--classpath classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构;这样,我们才好分析、理解classpath。而我们经常用到classpath的地方,就是在指定一些配置/资源文件的时候会使用到。比如说,我们在web.xml中指定springmvc的配...
RPC原理及分析 转:https://www.cnblogs.com/crazylqy/p/7995395.html 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 public class Test { public static void main(String[] ar...
SpringBoot自动配置注解原理解析 转:https://www.cnblogs.com/wenbochang/p/9851314.html 1. SpringBoot启动主程序类: 1 @SpringBootApplication 2 public class DemoApplication { 3 public static void main(String[] args) { 4 5 ...
spring--注解 注解是什么: Java5.0以后引入了注解的概念。注解就是类似于添加注释,但是又不跟注释完全一样,因此,我们可以将它理解为将类或者方法与特定的信息进行关联。 注解如何实现? 1、接口使用@interface定义。 2、通过继承以下注解,实现功能: 元注解:@Target,@Retention,@Documented,@Inherited @Target:表示该注解用于...
java--类加载 转:https://blog.csdn.net/xiaohai_chen/article/details/79538897 一、类的生命周期 一个类的生命周期包括了加载、验证、准备、解析、初始化、使用、卸载这七个阶段,一般我们只研究前五个阶段,这五个阶段又可以分为加载、连接(准备,验证,解析)、初始化 加载、验证、准备、初始化这几个阶段都是按顺序开始的,而解析阶段在某...
git使用小结 假设本地git已安装好。。。 第一次配置Git 如果第一次使用git,请在终端中运行此命令。 git config --global user.name "xxx" git config --global user.email "xxx@xx.com" 我只想克隆这个存储库 如果要简单地克隆此空存储库,请在终端中运行此命令。 git clone http://xxxx.gi...
Kafka--设计原理 (转):https://www.cnblogs.com/lbzhello/p/kafka-20190708.html#kafka-cons 什么是消息队列? 简单来说,消息队列是存放消息的容器。客户端可以将消息发送到消息服务器,也可以从消息服务器获取消息。 为什么需要消息系统? 削峰 数据库的处理能力是有限的,在峰值期,过多的请求落到后台,一旦超过系统的处理能力,可能会使系统挂...
spring--IoC容器 IoC 容器 Ioc(控制反转)是Inversion of Control的缩写,IoC容器是Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件。这些对象被称为 Spring Beans。通过阅读元数据配置信息,容器知道对哪些对象进行实例化,配置和组装。元数据可以...
java--clone浅拷贝和深拷贝 浅拷贝和深拷贝概念: 浅拷贝和深拷贝都是针对一个已有对象的操作。那先来看看浅拷贝和深拷贝的概念。 在 Java 中,除了基本数据类型(元类型)之外,还存在类的实例对象这个引用数据类型。而一般使用 『=』号做赋值操作的时候。对于基本数据类型,实际上是拷贝的它的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际上还是指向的同一个对象。 而浅拷贝...
IntelliJ Idea 常用快捷键 导入快捷键 Ctrl+Alt+O: 优化导入的类和包Alt+Insert: 生成代码(如get,set方法,构造函数,方法覆盖等)fori/sout/psvm + Tab:自动生成模板代码Ctrl+Alt+T 生成try catch 或者 Alt+enterCTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里Ctrl + O 重写方法Ct...