2020年8月31日
摘要: 架构师成长路线图 阅读全文
posted @ 2020-08-31 22:03 pipizhou 阅读(904) 评论(0) 推荐(0) 编辑
摘要: Spring整合Mybatis原理 在介绍Spring整合Mybatis原理之前,我们得先来稍微介绍Mybatis的工作原理。 Mybatis的基本工作原理 在Mybatis中,我们可以使用一个接口去定义要执行sql,简化代码如下: 定义一个接口,@Select表示要执行查询sql语句。 publi 阅读全文
posted @ 2020-08-31 22:01 pipizhou 阅读(1708) 评论(2) 推荐(0) 编辑
摘要: Spring中一些概念的总结 对象和Bean的区别? 个人观点:所谓的bean也是一个java对象,只不过这个对象是通过spring定义的,而一开始就是通过<bean>标签定义的,所以叫做bean。 普通对象和Bean对象还有其他区别,因为Bean对象是由Spring生成的,Spring在生成Bea 阅读全文
posted @ 2020-08-31 21:56 pipizhou 阅读(241) 评论(0) 推荐(0) 编辑
摘要: Spring中的循环依赖 什么是循环依赖? 很简单,就是A对象依赖了B对象,B对象依赖了A对象。 比如: // A依赖了B class A{ public B b; } // B依赖了A class B{ public A a; } 那么循环依赖是个问题吗? 如果不考虑Spring,循环依赖并不是问 阅读全文
posted @ 2020-08-31 21:55 pipizhou 阅读(877) 评论(1) 推荐(0) 编辑
摘要: HASHMAP(JDK1.7)最详细原理分析(二) 昨天的博客我解释了HASHMAP(JDK1.7)在PUT的时候会发生冲突,而解决冲突的方式就是使用链表,那么我们假设HASHMAP存储结构如下图: 那么节点1和节点2组成了一个链表,那么现在如果再来PUT一个节点3,假设节点3也需要插在这个链表中, 阅读全文
posted @ 2020-08-31 18:54 pipizhou 阅读(223) 评论(0) 推荐(0) 编辑
摘要: Adblocker HASHMAP(JDK1.7)最详细原理分析(一) 在JDK1.7中,HASHMAP是由数组+链表实现的,原理图如下: HashMap map = new HashMap(); // 伪初始化 map.put("键","值"); // 真初始化 HashMap的构造方法在执行时会 阅读全文
posted @ 2020-08-31 18:50 pipizhou 阅读(484) 评论(0) 推荐(0) 编辑
摘要: Adblocker 常见的哈希算法与碰撞算法 哈希算法 直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址。 数字分析法:提取关键字中取值比较均匀的数字作为哈希地址。 除留余数法:用关键字k除以某个不大于哈希表长度m的数p,将所得余数作为哈希表地址。 分段叠加法:按照哈希表地址位数将 阅读全文
posted @ 2020-08-31 18:45 pipizhou 阅读(1596) 评论(0) 推荐(0) 编辑
摘要: String.intern()使用总结 First Blood 先看下面的代码: String s = new String("1"); String s1 = s.intern(); System.out.println(s == s1); 打印结果为: false 对于new String("1 阅读全文
posted @ 2020-08-31 17:24 pipizhou 阅读(359) 评论(0) 推荐(0) 编辑
摘要: Integer.highestOneBit(int i)方法的作用与底层实现 在Integer类中有这么一个方法,你可以给它传入一个数字,它将返回最大的小于等于这个数字的一个2的幂次方数。这个方法就是highestOneBit(int i)。 比如下面的Demo,注意方法的输入与返回值: Syste 阅读全文
posted @ 2020-08-31 17:22 pipizhou 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 在平时看各种框架的源码的过程中,经常会看到一些位移运算,所以作为一个Java开发者是一定掌握位移运算的。 正数位移运算 Java中有三个位移运算: <<:左移 >>:右移 >>>:无符号右移我们直接看一下Demo: System.out.println(2 << 1); // 4 System.ou 阅读全文
posted @ 2020-08-31 17:09 pipizhou 阅读(973) 评论(0) 推荐(0) 编辑
摘要: Zookeeper如何解决脑裂问题 什么是脑裂 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。 脑裂通常会出现在集群环境中,比如ElasticSearch 阅读全文
posted @ 2020-08-31 17:03 pipizhou 阅读(999) 评论(2) 推荐(0) 编辑
摘要: Adblocker Zookeeper请求处理原理分析 Zookeeper是可以存储数据的,所以我们可以把它理解一个数据库,实际上它的底层原理本身也和数据库是类似的。 数据库的原理 我们知道,数据库是用来存储数据的,只是数据可以存储在内存中或磁盘中。而Zookeeper实际是结合了这两种的,Zook 阅读全文
posted @ 2020-08-31 17:00 pipizhou 阅读(435) 评论(0) 推荐(0) 编辑
摘要: Zookeeper快速领导者选举原理 本文略长,更适合在电脑端观看,可以收藏或直接关注微信公众号:1点25 人类选举的基本原理 正常情况下,选举是一定要投票的。 我们应该都经历过投票,在投票时我们可能会将票投给和我们关系比较好的人,如果你和几个候选人都比较熟,这种情况下你会将选票投给你认为能力比较强 阅读全文
posted @ 2020-08-31 16:57 pipizhou 阅读(1008) 评论(0) 推荐(1) 编辑
摘要: 摘要 JDK13中将加入文本块功能。 本篇文章将有以下内容: 新版JDK中加入文本块的动机是什么? 文本块如何使用 文本块的编译 文本块的连接 目标 简化跨越多行的字符串,避免对换行等特殊字符进行转义,简化编写Java程序。 增强Java程序中字符串的可读性。 动机 在Java中,通常需要使用Str 阅读全文
posted @ 2020-08-31 16:55 pipizhou 阅读(271) 评论(0) 推荐(0) 编辑
摘要: Lambda表达式为什么运行效率低 准备 我为什么说Lambda表达式运行效率低。 先准备一个list: List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10000; i++) { list.add(i); } 先用Lambda 阅读全文
posted @ 2020-08-31 16:50 pipizhou 阅读(3601) 评论(2) 推荐(0) 编辑
摘要: Mysql5.7 下载镜像 > docker pull mysql:5.7 # 下载需要一定时间 # 下载完成后可以使用以下命令查看镜像 > docker images 创建并运行容器 docker run -di --name mysql5.7 -p 33306:3306 -e MYSQL_ROO 阅读全文
posted @ 2020-08-31 16:46 pipizhou 阅读(711) 评论(0) 推荐(0) 编辑
摘要: Mysql中的降序索引底层实现 什么是降序索引 大家可能对索引比较熟悉,而对降序索引比较陌生,事实上降序索引是索引的子集。 我们通常使用下面的语句来创建一个索引: create index idx_t1_bcd on t1(b,c,d); 上面sql的意思是在t1表中,针对b,c,d三个字段创建一个 阅读全文
posted @ 2020-08-31 16:44 pipizhou 阅读(644) 评论(0) 推荐(0) 编辑
摘要: GITHUB慢! 怎么办? 修改系统hosts文件,内容为: 192.30.255.113 github.com 151.101.13.194 github.global.ssl.fastly.net 这种方式只能稍微提点速。 使用proxychains: https://www.cnblogs.c 阅读全文
posted @ 2020-08-31 16:43 pipizhou 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 程序员要搞明白CDN,这篇应该够了 最近在了解边缘计算,发现我们经常听说的CDN也是边缘计算里的一部分。那么说到CDN,好像只知道它中文叫做内容分发网络。那么具体CDN的原理是什么?能够为用户在浏览网站时带来什么好处呢?解决这两个问题是本文的目的。 CDN概念 CDN全称叫做“Content Del 阅读全文
posted @ 2020-08-31 16:42 pipizhou 阅读(404) 评论(0) 推荐(0) 编辑
摘要: Adblocker HTTP长连接 什么是HTTP长连接,底层是如何工作的?Tomcat是如何实现长连接的? 要明白HTTP长连接,得先明白Socket连接 什么是Socket?百度一下,根本看不懂 要理解Socket,得先理解TCP TCP是传输层协议,有Linux、Windows等操作系统实现 阅读全文
posted @ 2020-08-31 16:39 pipizhou 阅读(567) 评论(0) 推荐(0) 编辑