自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一种java对象转换成protobuf对象通用方法(bean转protobuf 类)

ps:该文默认读者熟悉protobuf直入正文, 总共2个类,一个是注解类,一个是工具类注解类 @ProtoField有两个作用1.标识某个bean的属性忽略转化 Ignore2.标识某个List属性对应proto文件中的哪个属性名,对应proto文件哪个协议类该类的创建模仿于fastjson中的JSONField, 源码如下:import java.lang.annotation...

2019-07-14 13:35:40 5670 4

原创 poi解析excel,将每一行数据注入到对应的entity实体对象对象中

贼好用的代码,直接上辽public class GameScene { public int id; public String name; public String getName() { return name; } public void setName(String name) { this.name = ...

2019-07-02 22:02:40 7148 9

原创 优雅的判空操作_对需要频繁判空的对象entity的代码优化

优雅的判空操作 --> 对需要频繁判空的对象entity的代码优化代码结构entity是本文用到的对象,里面还用到了entityReturn作为field和getEntityReturn的返回值,如下图红框Entity对应的接口:entity是Ientity的实现类,Nullentity也是这个接口实现类相同的,entityReturn也是相似的套路看红色箭头-&gt...

2018-11-25 16:48:26 1736 1

原创 enum实现的单例?(同时满足懒汉的懒加载和恶汉的线程安全)

enum实现的枚举是effective java中比较推荐的做法上代码public class enumSingleton { private enumSingleton(){} public static enumSingleton getInstance(){ return singleEnum.SINGLETON.getInstance()...

2018-08-05 16:11:40 1675 7

原创 用UUID做主键和用19位的bigint做主键,插入性能那个更ok?

解惑: 在公司的机器上跑了30万的数据,建了一个test_sg_student(主键为UUID)和 test_bigintAsString_t (主键为19位的bigint),分别用10个线程和批处理进行插入,发现性能相差接近100倍,很明显是UUID做主键的表插入时间是最慢的,根据底层索引B+树来思考,其实答案也油然生成,UUID的无序和空间占的大小导致插入时候要耗费更多的时间去创建和维护索引...

2018-08-03 22:09:23 9136

原创 mybatis数据库时间保存问题?

在用mybatis时,对mysql数据库是datatime字段添加值是,发现添加成功后查看数据库字段值是,只有年月日有值,时分秒则为0来表示的,更改为java.sql.date,time等也不行,如果将mybatis的映射xml的jdbcType=”DATE”改为=”TIME”,会报异常: com.mysql.jdbc.MysqlDataTruncation: Data truncation…...

2018-06-03 18:44:31 3048

原创 高并发下的缓存一致性,并发,穿透问题

缓存在高并发场景下的常见问题缓存一致性问题当数据时效性要求很高的时候,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也要保持一致,不能出现差异现象。这样就比较依赖缓存的过期和更新策略。一般会在数据库发生更改的时候,主动更新缓存中的数据或者移除对应的缓存。更新数据库成功—>更新缓存失败—数据不一致更新缓存成功—>更新数据库失败—数据不一致更...

2018-05-16 17:41:45 3247

原创 克鲁斯卡尔最短路径算法详解

对克鲁斯卡尔算法的代码解析

2017-11-25 21:23:51 4658

原创 记java工作中的坑

使用json中public static <T> T reSerializableJson(String jsonStr, TypeReference<T> type) { return JSONArray.parseObject(jsonStr, type); }这里将默认使用HashMap, 如果我们的类字段使用ConcurrentH...

2019-09-18 15:11:56 1718

原创 mysql正则匹配单个字符-神坑!

—在这里插入图片描述问个问题 mysql 我想匹配的字段 只存在一个“/” sql 怎么写?select * from table where path regexp ‘/{1}’ ?可适用如下select * from user where name regexp '^[^/]+(/{1})[^/]+$';...

2019-09-17 16:47:03 2384

原创 centos7 和主机建立共享文件(入坑总结)

!1 安装vmware tool , 网上教程不坑, 百度即可2 开始设置共享文件夹,https://www.cnblogs.com/zejin2008/p/7144514.htmlend

2019-01-07 10:16:42 1625

原创 Native Code To Gget Expensive Resource Such As Database Connection(Self Protection Mechanism)

emm, in our common application scenario, getting system resource such as database connection seems to be easy , but when we program in high concurrent scenario , it would be disorder. How can we prot...

2018-11-30 22:03:37 192

原创 gracefully cancel/shutdown the thread

for something we should care it when you read this article1. Interrupt operation in synchronized code block使用synchronized关键字获取锁的过程中不响应中断请求,这是synchronized的局限性,如果这对程序是一个问题,应该使用显式锁,java中的Lock接口,它支持以响应中...

2018-11-29 17:04:14 161

原创 被一道算法题所点化=>(0-9 a-z A-Z 四位全排列总数){..

package suanfa;import org.junit.Test;import java.util.concurrent.atomic.AtomicInteger;public class quanpailie { public static volatile AtomicInteger id = new AtomicInteger(0); public st...

2018-08-03 22:18:24 766

原创 分布式自增算法snowflake,但是效率 ?

生成的id结构SnowFlake所生成的ID一共分成四部分:1.第一位 占用1bit,其值始终是0,没有实际作用。2.时间戳 占用41bit,精确到毫秒,总共可以容纳约69 年的时间。3.工作机器id 占用10bit,其中高位5bit是数据中心ID(datacenterId),低位5bit是工作节点ID(workerId),做多可以容纳1024个节点。4.序列号 占...

2018-08-03 22:18:10 1133

原创 binlog的大量增长,单机的数据库读写分离能解决?

场景在一个机器上只有一个mysql实例,对它既读又写,binlog的大量增长占用了较多的磁盘和cpu,导致每次数据库的connection有些缓慢主从复制 读写分离1、 读写分离 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。...

2018-08-01 19:40:09 755

原创 InnoDB中事务隔离级别和锁的关系 思路?个人理解?

1 数据库遵循两段锁协议,加锁阶段和解锁阶段,在对任何数据进行读操作之前要申请并获得S锁,在写操作之前要申请并获得X锁 2 事务中的加锁方式,事务的四种隔离级别,未提交读,已提交读(RC),可重复读(RR),可串行化,各种隔离级别对应的脏读,不可重复读和幻读 3 锁的种类:行锁 表锁 重点讲行锁,由于行锁只锁住有限的数据,对于其它数据不加限...

2018-07-26 11:38:37 333

原创 SQL语句中exists和in的区别?

查询中涉及到的两个表,一个user和一个order表,具体表的内容如下: 书单(books)表: 借书表borrow IN一、确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。SELECT *FROM `books`WHERE ...

2018-06-23 15:09:07 392

原创 linux命令搜集?

1 在用linux命令时候, 我们经常需要同时执行多条命令, 那么命令之间该如何分割呢?分号: 顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会执行。&amp;&amp; : 顺序执行各条命令, 只有当前一个执行成功时候, 才执行后面的。|| : 顺序执行各条命令, 只有当前面一个执行失败的时候, 才执行后面的。 2 比较符号-eq ...

2018-06-02 21:34:48 125

原创 tcp的拥塞控制?

tcp的拥塞控制1.拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷地增大而下降拥塞控制:防止过多的数据注入到网络中,这样可用是网络中的路由器或链路不至过载。 拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,设计到所有主机、路由器,以及与降低网络传输性能有关的所有因素流量...

2018-06-02 21:01:44 1571

转载 zookeeper选举简单流程?

zk 投票数据结构  每个投票中包含了两个最基本的信息,所推举服务器的SID和ZXID,投票(Vote)在Zookeeper中包含字段如下  id:被推举的Leader的SID。  zxid:被推举的Leader事务ID。  electionEpoch:逻辑时钟,用来判断多个投票是否在同一轮选举周期中,该值在服务端是一个自增序列,每次进入新一轮的投票后,都会对该值进行加1操作。...

2018-05-22 20:00:35 697

原创 zk的一点学习感悟?

**状态感知、配置管理、主从选举 **zookeeper 是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务; 1.为别的分布式程序服务的 2.zookeeper本身就是一个分布式程序(只要半数以上的节点存活,zk就能正常服务) 3.zookeeper所提供的服务涵盖:主从协调,服务器节点动态上下线、统一配置管理、分布式共享锁,同意名称服务 4.虽然说可以提供各种服务,但是z...

2018-05-20 16:03:22 391

原创 rehash问题小记?

1、为什么hashmap中length是16,resize要是2的幂次的问题**hashcode(key)&amp;amp;amp;(length-1):16-1为二进制的1111,进行与运算的时候能够较为散列地计算key的index值,那为啥resize要2的次幂呢,道理是一样的,扩大2的一次方,length-1就是11111,进行与运算一看就知道。2 高并发下的rehash?**javadoc中关...

2018-05-19 22:05:59 662 1

原创 statement prepareStatement的一点体会?

1、PrepareStatement 是预编译的,对于批量处理(Batch)处理可以大大提高效率,也叫JDBC存储过程2、使用Statement对象。在对数据库只执行一次性存取的时候,用Statement对象进行处理,PrepareStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。3、statement每次执行sql语句,相关数据库都要执行sql语句的...

2018-05-19 16:55:02 870

原创 Redis与关系型数据库的同步问题

redis是一个高性能的kv数据库,redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部分场合key对关系型数据库起到很好的补充作用,它提供了py,ruby等客户端,使用很方便。一般使用redis场景都是程序处理,判断key是否存在,存在则读取redis中的数据返回给用户,不存在则获取db数据,再把数据缓存到redis中,同时返回数据给用户适合数据量...

2018-05-17 10:51:01 1524

原创 微博java正则匹配热搜页面热搜词+还原中文

import java.io.*;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Created by kd on 2018/5/9. */public class test { public static void main(Str...

2018-05-09 16:35:21 3384 1

原创 内存管理最先分配算法

import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import org.junit.Test;/** * 内存管理最先分配算法 * * @author LY * */public class caozuoxitong

2017-12-14 14:47:02 578

原创 每天一个设计模式之Decorator模式解决类间组合爆炸问题

模式动机Decorator模式是一种相对简单的对象结构性模式,动态和对象是个对应的关系,正如静态和类这样的对应关系,编译时能够决定的特质是静态特质,动态则表示在运行时进行操作,传统情况下使用的继承是静态的给类添加职责,动态的给对象添加职责,则是装饰者模式所要完成的事。 给类和给对象添加职责有什么不同呢 前者的灵活性要差,如果需要添加的职责很多,前者需要为每种情况都定义一个固定类,这里的

2017-12-07 17:45:39 1435

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

模式的动机在很多情况下,对象并不是孤立存在的,如股票的变动,倘若某支股票上涨,则应该让购买该股票的股民得到通知,并为之欣喜,否则就会失望悲伤,甚至演化出种种的事故… 从例子中我们不难可以分离出两类角色,一类我们称之为观察者,如股民,另一类就是被这些观察者观察的对象,如股票等;如果观察目标有某个动作发生。观察者就会相应,就像小时候的捉迷藏,躲着的我们在观察是否有人来抓你,有的话就会一下子

2017-12-05 22:17:30 1469

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

模式的动机在很多情况下,对象并不是孤立存在的,如股票的变动,倘若某支股票上涨,则应该让购买该股票的股民得到通知,并为之欣喜,否则就会失望悲伤,甚至演化出种种的事故… 从例子中我们不难可以分离出两类角色,一类我们称之为观察者,如股民,另一类就是被这些观察者观察的对象,如股票等;如果观察目标有某个动作发生。观察者就会相应,就像小时候的捉迷藏,躲着的我们在观察是否有人来抓你,有的话就会一下子四散逃跑,那

2017-12-05 22:14:27 3494

原创 MyBatis-plus在eclipse中的使用详解

MyBatis-plus在eclipse中的使用详解

2017-11-26 16:27:32 12405

原创 任意进制转化

任意进制的转化

2017-11-25 20:46:24 217

ChromeSetup.exe

chrome浏览器,下载安装,亲测好用,版本较为新 接近2020最新版本 ,好用的浏览器好用好用超好用卡卡卡卡卡

2020-04-27

空空如也

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

TA关注的人

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