Java ---- 遍历链表(递归与非递归实现)
摘要:二叉树的遍历 二叉树的遍历分为三种:前序遍历 中序遍历 后序遍历 前序遍历:按照“根左右”,先遍历根节点,再遍历左子树 ,再遍历右子树 中序遍历:按照“左根右“,先遍历左子树,再遍历根节点,最后遍历右子树 后续遍历:按照“左右根”,先遍历左子树,再遍历右子树,最后遍历根节点 其中前,后,中指的是每次
阅读全文
Java ---- 链表逆序
摘要:public class LinkedListRevert { public static void main(String[] args) { Node next3 = new Node(4,null); Node next2 = new Node(3,next3); Node next = new Node(2,next2); ...
阅读全文
Java ---- 快速排序
摘要:public class QuickSort { public static void main(String[] args) { int[] arr = { 49, 38, 65, 97, 23, 22, 76, 1, 5, 8, 2, 0, -1, 22 }; quickSort(arr, 0, arr.length - 1); Sys...
阅读全文
Java ---- 二分查找
摘要:public class binSearch { public static void main(String[] args) { int ary[] = {1,5,3,54,32,643,34,2543}; System.out.println(binSearch(ary,0,ary.length-1,643)); } publi...
阅读全文
深入理解Major GC, Full GC, CMS
摘要:很多人都分不清Major GC, Full GC的概念,事实上我查了下资料,也没有查到非常精确的Major GC和Full GC的概念定义。分不清这两个概念可能就会对这个问题疑惑:Full GC会引起Minor GC吗? 经过一系列的查找和对JVM表现的分析,基本可以给Full GC和Major G
阅读全文
分布式事务处理
摘要:从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,
阅读全文
分布式面试题(含解答)
摘要:分布式事务 指事务的每个操作步骤都位于不同的节点上,需要保证事务的 AICD 特性。 1. 产生原因 数据库分库分表; SOA 架构,比如一个电商网站将订单业务和库存业务分离出来放到不同的节点上。 2. 应用场景 下单:减少库存同时更新订单状态。库存和订单不在不同一个数据库,因此涉及分布式事务。 支
阅读全文
优化sql
摘要:我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,
阅读全文
数据库事务的四大特性以及事务的隔离级别
摘要:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致
阅读全文
Java单例模式之懒汉模式线程安全
摘要:单例模式是设计模式中用得比较多的一种设计模式,它的主要优点有: 1.访问受控,保证访问的是唯一的实例。 2.由于只有一个实例,所以节省资源。 缺点: 灵活性低,如果对象的应用场景多变,则不适用单例模式。 如何实现单例模式? 1.1 懒汉模式(线程不安全) 想要实现单例,莫非就是要适用static关键
阅读全文