10 jjavaboy

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

Java的随机数原理

Java生成随机数时,可以会使用以下方法final int i = new Random().nextInt(int bound);或者final double v = Math.random();初一看,以为是两种方式,其实第二种的底层也是使用了Random的方法nextDouble(),所以我们主要看Random的方法即可。原理计算机生成随机数,有几种方式1.物理方式正在意义上...

2019-07-07 13:08:46

Redis(六)Script

Redis从2.6.0开始,可以使用命令EVAL,EVALSHA执行Lua脚本。脚本命令 EVAL script numkeys key [key ...] arg [arg ...] 比如 EVAL "return {KEYS[1], KEYS[2], ARGV[1], ARGV[2], ARGV[3]}" 2 key1 key2 a1 a2 a3双引号"…"的内容就...

2019-01-27 22:50:45

Redis(五)Pipeling

请求响应协议和RTTRedis是使用TCP的客户端-服务端模式,叫做请求-响应协议。例如 Client: INCR X Server: 1 Client: INCR X Server: 2 Client: INCR X Server: 3 Client: INCR X Server: 4像这样需要请求-响应4个链路周期,每次...

2019-01-20 19:14:31

MapStruct

       一般java web开发的程序员,都有一个共同的体会,接受请求参数都会使用一个vo类,这个vo类里封装了所有需要接受的参数,然后对参数进行业务逻辑处理,处理完后会持久化处理,通常每个业务表都会对应一个bean类,然后就需要将vo对象转化为bean对象再持久化,这个过程中,就需要new bean对象,给bean对象里的每个属性赋值;请求处理完,还需要有返回,通常返回也会封装一个vo类,...

2018-11-24 23:08:04

kafka(一)入门

kafka跟activemq,rocketmq类似,也是其中一种消息中间件。Step1:下载kafka包https://kafka.apache.org/downloads 下载 kafka_2.11-1.1.0.tgz>tar -zxvf kafka_2.11-1.1.0.tgz>cd kafka_2.11-1.1.0Step2:启动kafkakafka需要用到zookeeper,...

2018-06-19 00:43:22

查询: exists、in、not in 和 not exists

现在两个表`user`和`user_role`表:user:  user_role:1. 现在需要用 exists 作用子查询来查`user`表mysql> select * from user t where exists (select * from user_role r where t.id = r.user_id);2. 我们也可以用 in 来 查询`user`表mysql>...

2018-05-29 17:09:53

查询:group by和having

现在一用户表`user`,数据如下:1.查出名称`name`重复的记录mysql> select name, count(*) as name_count from user group by name having name_count > 1;2.查出年龄`age`大于1,名称`name`有多少种情况,分组:mysql> select age, name, count(*) ...

2018-05-29 14:16:02

跳跃表-skiplist

前序现在有一组数据,然后要从这组数组中找到某个数,比如要查找数7,一般来说,逐个逐个来查找的话,那么时间复杂度就是O(n),当n的数量达到上百万,或上千万时,那性能是非常差的,在我们系统中是不能接受的。也许我们想到了hash,平衡二叉树结构来提高性能,今天我们来讲另一个结构:跳跃表-skiplist。比如二叉树,它会提取一些节点作为树的根节点,当然这里树指整棵树也指树的子树,类似地,我们跳跃表也可...

2018-05-28 23:45:32

合并排序merge sort

合并排序算法是用分而治之的策略实现对n个进行排序。合并排序的基本思想:将需要排序的元素分成大概相同的2个子集合,分别给2个子集合进行排序,最终将2个排序好序的子集合合并成一个集合。<待续>...

2018-05-27 22:21:13

TCP协议-滑动窗口、拆包和粘包

TCP、UDP都可以完成从一端往另一端发送数据,只是UDP只是负责从发送端将数据发送出去就完了,不再管数据是否发送到接收端是否已经接收到了;而TCP不仅负责发送数据,还确保数据是否送达,TCP是可靠的,而且它也是可以流控的,管理发送的速度,不能超过设备的承受能力。TCP特性1.可靠性Reliability,TCP提供数据传的可靠性,确保接收端是否已接收到数据,如果超时没有收到接收端的确认,则会重新...

2018-04-22 11:14:40

Java的类装载体系

在Java的沙箱中,类装载器体系结构的第一道防线。因为java的字节码是由类装载器装载入Java虚拟机的。不同的类装载器提供不同的命名空间,命名空间可以隔离不同的类装载喊之间装载的类,有助于安全的实现。一、class文件检验器class文件检验器保证装载的class文件内容有正确的结构,而且这些class文件相互协调一致。class文件检验器只是在字节码执行之前对class文件进行一次分析检验它的...

2018-04-18 00:21:42

HashMap笔记-JDK1.8

之前写过一篇HashMap笔记,不过是JDK1.7(含)之前HashMap,JDK在8后对HashMap做了很多的优化,在key冲突情况下的HashMap中的元素会形成一条链表,如果冲突key过多,则链表会越长,查询会变成线性时间复杂度O(log(n)),JDK8加入了红黑树来优化这种情况,所以也进行了再次研究下源码。我们先从put方法入手。JDK8的HashMap在插入元素时final V pu...

2018-04-07 22:31:00

红黑树

参照:http://daoluan.net/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E7%AE%97%E6%B3%95/2013/09/25/rbtree-is-not-difficult.htmlhttp://daoluan.net/%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/%E6%95%B0%E6%8D%AE%E7%BB%93...

2018-03-04 15:39:50

平衡二叉树

什么是平衡二叉树wiki:https://en.wikipedia.org/wiki/AVL_tree1.它是一颗空树,即是没有节点的树,或者是具有以下性质的二叉树: 2.树的左子树和右子树的高度之差(平衡因子)的绝对值不能超过1,并且左子树和右子树也是平衡二叉树,如此循环。其中,平衡因子:左子树的高度 - 右子树的高度,所以左子树高度比右子树高度小,则平衡因子就是负数,反之为正数,相等则为0。如...

2018-02-16 18:14:43

synchronized的实现原理

转自:http://blog.csdn.net/chenssy/article/details/54883355记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一

2018-01-21 15:30:58

(十七)分组聚合

一般来说,消费者进行远程调用时,会调用远程的一个提供者。现在可以消费者调用一个方法,可以调用提供者多个方法再聚合结果返回。public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException { url = url.setProtocol(url.getParameter(...

2017-12-14 17:32:59

MySQL(三)复制

MySQL复制功能,可以让一台服务器的数据与其他服务器保持同步,一台主库可以同步到多台备库,而一台备库只能有一台主库。MySQL支持的两种复制方式:基于行的复制和基于语句的复制。MySQL的复制步骤:1.主库将数据更新记录到二进制日志(BinLog);2.主库通知备库有数据更新;3.备库将主库的BinLog复制到自己的中断日志(Relay log);4.备库读取中断日志

2017-12-06 16:50:12

MySQL(二)BinLog恢复数据

有时,我们误删了MySQL数据库的一些数据,肯定希望能够恢复我们误删的数据,这是可以解决的。有一个解决的方案是使用MySQL的二进制日志,也是我们经常说的BinLog,不过前提是,在启动MySQL时已经启用BinLog功能。查看BinLog功能是否启用:mysql> show variables like 'log_%';看到第一行的Variable_name为log_bin,对应的V

2017-12-02 11:24:40

JMM-Java内存模型

JMM由来Java语言规范规定了JVM要维护内部线程类似顺序化语言:只要程序的最终结果等同于它在严格顺序化环境中执行的结果,允许编译器生成指令的次序跟源代码的次序不同,并且处理器可以乱序或者并行地执行指令,可以改变将处理器的高速缓存(寄存器)写入提交到主内存的变量的次序,所以存储在处理器缓存中的值,对于其他处理器并不可见。那为什么编译器改变源代码的执行次序,在近些年重新排序后的指令

2017-11-26 13:28:24

(十六)优雅停机

dubbo的优雅停机,借助于java虚拟机的关闭钩子来实现。打开关闭钩子需要配置dubbo启动参数dubbo.shutdown.hook为true,才会使用关闭钩子启用优雅停机。在钩子里,调用dubbo的容器(有spring,log4j,jetty等容器,即com.alibaba.dubbo.container.Container的实现类)的stop方法,释放相关资源。spring在关闭时,...

2017-11-24 16:01:05

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!