Java Swing
摘要:public static void main(String[] args) { // 创建 JFrame 实例 JFrame frame = new JFrame("标题"); // Setting the width and height of frame frame.setSize(1150,
阅读全文
消息中间件之ActiveMQ
摘要:一、为什么需要MQ? 主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达MySQL,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请
阅读全文
对象的四种引用关系
摘要:1、强引用只要引用存在,垃圾回收器永远不会回收 如 obj.equels(new Object()); 而这样 obj 对象对后面 new Object 的一个强 引用,只有当 obj 这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。 2、软引用 非必须引用,内存溢出之前进行回
阅读全文
kafka 在java中的使用
摘要:kafka Producer Api Procuder API有两种:kafka.producer.SyncProducer和kafka.producer.async.AsyncProducer.它们都实现了同一个接口: class Producer { /* 将消息发送到指定分区 */ publi
阅读全文
Kafka史上最详细原理总结下
摘要:3.Partition Replication原则 Kafka高效文件存储设计特点 Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。 通过索引信息可以快速定位message和确定response的最大大小。 通过
阅读全文
java jdk原生的http请求工具类
摘要:package com.base; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.i
阅读全文
kafka(一)
摘要:Kafka Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/
阅读全文
MySQL:互联网公司常用分库分表方案汇总
摘要:一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1、IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓
阅读全文
密码正则
摘要:长度8 以上,大小写、数字,特殊字符至少3种 public static boolean passWordCheck(String passWord){ if (null==passWord||passWord.length()<8) { return false; } List<String> l
阅读全文
springboot 打war包
摘要:由于springboot 内嵌了tomcat,打包成war包需要剔除tomcat,防止其影响项目在其他web 容器运行。 1、修改 pom.xml Packaging 修改为war: <packaging>war</packaging> 在 <dependencies></dependencies>
阅读全文
oracle存储过程的一些使用
摘要:存储过程 Oracle存储过程基本语法 存储过程 CREATE OR REPLACE PROCEDURE 存储过程名 IS BEGIN NULL; END; CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存
阅读全文
对象的深度克隆
摘要:Object的clone()只是浅克隆,除了基础数据和String类型的不受影响外,其他会受到影响。换句话说,克隆对象时仅仅克隆对象本身(包括对象中的基本变量),而不克隆对象包含的引用指向的对象。 深度克隆不仅克隆对象本身,而且克隆对象包含的引用指向的所有对象。 对象的深度克隆原理:将对象序列化后写
阅读全文
垃圾回收算法- 三色标记
摘要:GC目前的问题是,会暂停、阻碍代码的运行,即stop the world。增量式GC处理的就是这个问题。将GC变得可一阶段一阶段进行。 分阶段运行的思路并不难,但具体要解决的问题其实是分阶段GC后,如何保证下次继续时,中断过程中引用关系的变化不会对GC造成影响。 三色标记法是一个逻辑上的抽象(物理上
阅读全文
JVM -- Full GC触发条件总结以及解决策略
摘要:前言 Full GC相对于Minor GC来说,停止用户线程的STW(stop the world)时间过长,至少慢10倍以上,所以要尽量避免,首先说一下Full GC可能产生的原因,接着给出排查方法以及解决策略。 1、System.gc()方法的调用 在代码中调用System.gc()方法会建议J
阅读全文
java实现-图的相关操作
摘要:import java.util.LinkedList; public class Graph { private int vertexSize;//顶点的数量 private int[] vertexs;//顶点数组 private int[][] matrix;//矩阵 private bool
阅读全文
Integer的intValue()方法
摘要:Integer n1 = 123; Integer n2 = 123; Integer n3 = 128; Integer n4 = 128; System.out.println(n1 == n2);// true System.out.println(n3 == n4);// false Sys
阅读全文
Java transient关键字
摘要:1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开
阅读全文
redis--高级应用
摘要:Redis-事务 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作,事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行 事务的上个步骤:
阅读全文
Redis 单线程模型介绍
摘要:1. 理解单线程模型 redis 会将每个客户端都关联一个指令队列。客户端的指令通过队列来按顺序处理,先到先服务。 在一个客户端的指令队列中的指令是顺序执行的,但是多个指令队列中的指令是无法保证顺序的,例如执行完 client-0 的队列中的 command-0 后,接下去是执行哪个队列中的第一个指
阅读全文
String类的intern()方法 -- 重用String对象,节省内存消耗
摘要:String str1 = new String("SEU")+ new String("Calvin"); System.out.println(str1.intern() == str1); System.out.println(str1 == "SEUCalvin"); jdk 为1.8 输出
阅读全文
数据库阿里连接池 druid配置详解
摘要:java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。接下来本教程就说一下druid的简单使用。 配置 缺省值 说明1、连接池队列参
阅读全文
redis 实现发布/订阅模式
摘要:类似于MQ的主题模式-只能消费订阅之后发布的消息,一个消息可以被多个订阅者消费) 1.客户端发布/订阅 1.1 普通的发布/订阅 除了实现任务队列外,redis还提供了一组命令可以让开发者实现"发布/订阅"(publish/subscribe)模式。"发布/订阅"模式同样可以实现进程间的消息传递,其
阅读全文
Redis实现队列
摘要:消息通知使用Redis实现任务队列使用列表, lpush 和 rpop 命令实现队列的概念 添加数据 public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 1000; i++)
阅读全文
redis 实现分布式锁
摘要:单系统的时候可以通过 同步锁等机制实现,但是多个服务器多个进程如何实现呢。首先看一下分布式锁的必要条件: 1)原子性:加锁和释放锁的操作必须满足原子性 2)不会产生死锁,有各种原因会导致锁没有被释放从而产生死锁 3)互斥性,某个时间只能有一个线程占有锁,其他线程处于阻塞状态 4)可重入性,也就是释放
阅读全文
zookeeper(七):开源客户端Curator
摘要:Curator 客户端解决了Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher等,实现了Fluent 风格的API接口。 Curator包含的包 curator-framework:对zookeeper的底层api的一些封装curator-client:提供一些客户
阅读全文
zookeeper(六):开源客户端ZkClient
摘要:ZkClient 是git上一个开源的Zookeeper客户端,ZkClient 在 Zookeeper 原生API接口的基础上进行了包装,是一个更加易用的Zookeeper客户端。同时,ZkClient在内部实现了 Session 超时重连、Watchar 反复注册等功能。 引入jar包 <dep
阅读全文
关于zookeeper连不上解决方法暨使用外网访问阿里云服务器安装的ZooKeeper以实现服务的注册
摘要:阿里云禁止我的这个外网访问,解决如下: 将云服务器的/etc/hosts文件外网IP地址修改为内网IP地址 .1进入阿里云ECS实例控制台 2.选择更多-安全组配置 3.选择配置规则 4.选择添加安全组规则 5.添加安全组规则 可根据需要选择协议类型及设置对应端口范围,为了省事,我选择协议类型为全部
阅读全文
开启iptables-service,查看、增加、删除防火墙端口
摘要:背景:在阿里上买了台服务器,然后安装zookeeper,然后没有回调 好像没有设置防火墙 需要注意的是:CentOS7默认的防火墙不是iptables,而是firewalle. 解决方法一、保持firewall方式管理如果要添加范围例外端口 如 1000-2000语法命令如下:启用区域端口和协议组合
阅读全文
springboot应用如何提高服务吞吐量
摘要:# 背景 生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议。 # 方案 1、undertow替换tomcat 电子商务类型网站大多都是短请求,一般响应时间都在100ms,这时可以将web容器从tomcat替换为undertow,下面介绍下步骤: 1)增加pom配置 <de
阅读全文
使用mybatis插件自动生成实体(pojo)类
摘要:2016-04-21 09:58:09 首先下载我已经搭好的工程,下载下来按照下面的操作配置和运行下就能轻松搞定! 地址:http://pan.baidu.com/s/1jIhJFTG 这是一个maven搭建的工程,将项目导入到工程中,导入完之后目录: 先看第1步: 打开generatorConfi
阅读全文
随机数和随机字母
摘要:随机数 Random random = new Random(); Float i = random.nextFloat(); System.out.println((int)(i*1000000));// 815214 Random random = new Random();//默认构造方法Ra
阅读全文
MyBatis可视化代码生成工具
摘要:原文: https://blog.csdn.net/qq_40087415/article/details/85041995
阅读全文
zookeeper(二):linux centos下安装zookeeper(单机和集群)
摘要:下载 http://zookeeper.apache.org/releases.html 解压 tar –zxvf zookeeper-3.4.6.tar.gz 解压文件到"/usr/local/zookeeper-3.4.6". 复制conf目录下的zoo_sample.cfg,并命名为zoo.c
阅读全文
linux安装jdk
摘要:cd /usr/local mkdir java -- 上传 rz jdk-8u161-linux-x64.tar.gz -- 解压 tar -zxvf jdk-8u161-linux-x64.tar.gz 修改环境变量 vim /etc/profile 添加以下内容 export JAVA_HOM
阅读全文
zookeeper(一):功能和原理
摘要:简介 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等
阅读全文
强大易用的日期和时间库 Joda Time
摘要:Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成,并且它是线程安全的。 Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取"正常的"的日期变得
阅读全文
zookeeper(五):Zookeeper中的Access Control(ACL)
摘要:传统的文件系统中,ACL分为两个维度,一个是属组,一个是权限,子目录/文件默认继承父目录的ACL。而在Zookeeper中,node的ACL是没有继承关系的,是独立控制的。 Zookeeper的ACL,可以从三个维度来理解:一是scheme; 二是user; 三是permission,通常表示为sc
阅读全文
ZOOKEEPER(四):核心原理(Watcher、事件和状态)
摘要:zookeeper主要是为了统一分布式系统中各个节点的工作状态,在资源冲突的情况下协调提供节点资源抢占,提供给每个节点了解整个集群所处状态的途径。这一切的实现都依赖于zookeeper中的事件监听和通知机制。 zookeeper中的事件和状态 事件和状态构成了zookeeper客户端连接描述的两个维
阅读全文
ZOOKEEPER(三):java使用zookeeper
摘要:通过创建一个zookeeper实例来链接zookeeper服务器。 注意:zookeeper客户端和服务器端会话的建立是一个异步的过程,也就是说在程序中,我们程序方法在处理完客户端初始化后,立即返回(程序往下执行代码,这样,大多数情况下我们并没有真正构建好一个可用会话,在会话的声明周期处于"CONN
阅读全文
Eclipse安装反编译插件JD-Eclipse
摘要:进入JD官网http://jd.benow.ca/,下滑页面看到JD-Eclipse如下,下载 Release jd-eclipse-site-1.0.0-RC2.zip,大红箭头标着呢 (积分多任性?资源传送门在这:https://download.csdn.net/download/qq_317
阅读全文
JVM深入解析
摘要:java 运行时数据区 java虚拟机在执行java程序的过程中会将其管理的内存划分为若干个不同的数据区域 ,这些区域有各自的用途、创建和销毁的时间,有些区域岁虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。java虚拟机锁管理的内存包括以下结果运行时数据区域,如图: 1、
阅读全文
ScheduledExecutorService 定时任务运行原理(三)
摘要:Executor JUC 包中的 Executor 架构带来了线程的创建与执行的分离。Executor 的继承者 ExecutorService 下面衍生出了两个重要的实现类,他们分别是 ThreadPoolExecutor 线程池 ScheduledThreadPoolExecutor 支持周期性
阅读全文
ThreadPoolExecutor详解(二)
摘要:在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecut
阅读全文
Future模式详细讲解及实例分析
摘要:1.1、Future模式是什么 先简单举个例子介绍,当我们平时写一个函数,函数里的语句一行行同步执行,如果某一行执行很慢,程序就必须等待,直到执行结束才返回结果;但有时我们可能并不急着需要其中某行的执行结果,想让被调用者立即返回。比如小明在某网站上成功创建了一个账号,创建完账号后会有邮件通知,如果在
阅读全文