源码
Java技术小吴
+V:YDT929 领取主流架构师资料和大厂面试题
展开
-
微服务架构篇之由浅入深彻底掌握SpringCloud
微服务架构 Spring Cloud作为当下主流的微服务框架,可以让我们更简单快捷地实现微服务架构。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包 对于目前的Java程序员来讲,熟悉并且理解微服务,成为了不可或缺的一项技能! 微服务设计其实是很早就有的设计思想,因为随着虚拟化技术的崛起,微服务可..原创 2020-10-12 16:25:07 · 118 阅读 · 1 评论 -
一些大牛常用的 Java 编程技巧
任何事情有可能出错,没错,的确如此。 这就是为什么我们要采用“防御性编程”,即一些偏执习惯的原因。下面是我个人认为的 10 个最有用但偏执的 Java 编程技术。一起来看一看吧: 1.将 String 字符串放在最前面 为了防止偶发性的 NullPointerException 异常,我们通常将 String 放置在 equals() 函数的左边来实现字符串比较,如下代码: //Bad if(variable.equals("literal")){...} //Good if("...原创 2020-10-12 10:39:16 · 106 阅读 · 1 评论 -
交流下Mybatis 的设计模式,文章内附源码
虽然我们都知道有20多个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。 Mybatis至少遇到了以下的设计模式的使用: Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder; 工厂模式,例如SqlSessionFactory、Objec..原创 2020-10-08 10:17:31 · 71 阅读 · 0 评论 -
阿里大牛整理的高性能MySQL笔记
一、MySQL架构与历史A.并发控制 1.共享锁(shared lock,读锁):共享的,相互不阻塞的 2.排他锁(exclusive lock,写锁):排他的,一个写锁会阻塞其他的写锁和读锁 B.事务 1.事务ACID * 原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作 * 一致性(consistency)数据库总是从一个一致性的状态转换到另外一个一致性的状态 *..原创 2020-09-27 15:42:08 · 269 阅读 · 1 评论 -
Java必学(2)之Redis设计规范
一、键值设计 1. key名设计 (1)【建议】: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id (2)【建议】:简洁性 保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如: (3)【强制】:不要包含特殊字符 反例:包含空格、换行、单双引号以及其他转义字符 2. value设计 (1)【强制】:拒绝bigkey(防止网卡流量、慢查询) string类型控制在10KB以内,hash、list、se..原创 2020-09-27 15:15:56 · 96 阅读 · 0 评论 -
阿里大牛帮你看鸿蒙源码:从进程/线程视角看内存
本章开始说内存,内存的管理是极其复杂的模块,涉及到非常多概念,光地址就有逻辑,线性,物理地址三个,网上文章很多,参差不齐,没有很好基础或实战经验的同学基本得懵掉,本篇最后也有这些概念介绍。系列篇打算用三篇来讲述鸿蒙内核的内存管理机制。由浅入深,层层递进。我们换个视角切入,将从进程和线程创建的视角看内存的运作机制。为何从进程和线程角度? 两个原因:1.内存就是给他们使用的,只是分了内核空间和用户空间。用户空间的进程分配用到了虚拟内存,线程(task)需要分配栈空间 2.系列文章对进程和线程的管理和调度已经说原创 2020-09-26 15:33:26 · 3189 阅读 · 1 评论