摘要:
有些情况下,Spring事务会失效,比如我们在方法内部调用这个类的方法,那我们基于注解的Spring事务就会失效,因为我们在方法内使用的this 进行调用,而没有使用Spring提供的代理对象 还有我们使用异步处理时,由于Spring事务只存在于主线程中,我们采用异步的方式,是没办法用Spring事 阅读全文
摘要:
此文对于部分原理的解释不全,甚至有错误。建议同时参考一文解决内存屏障阅读。 在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中“出现频率最高 阅读全文
摘要:
纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。 这里讲解几种笔者常用的写法,但切忌生搬硬套,去记“茴香豆的写法”。编程最大的乐趣在于“know everything, control everyt 阅读全文
摘要:
问:如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。 面试题剖析 我举个例子,我们以前做过一个 mysql binlog 同步的系统,压力还是非常大的,日同步数据要达到上 阅读全文
摘要:
问:分库分表之后,id 主键如何处理? 面试官心理分析 其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持。所以这都是你实际生产环境中必须考虑的问题。 面试题剖析 基于数据库的实现方案 数 阅读全文
摘要:
问:如何决定使用 HashMap 还是 TreeMap? TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。 HashMa 阅读全文
摘要:
首先简单说一下(以下为一个回答的参考模板) 1、实例化一个Bean--也就是我们常说的new; 2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入; 3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递 阅读全文
摘要:
工欲善其事,必先利其器;士欲宣其义,必先读其书。后台开发作为互联网技术领域的掌上明珠,一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发,基于系统开发、架构设计、网络通信等几个方面让大家对后台开发有一个清晰的了解,讲解全面易懂。 系统开发 1. 高内聚/低耦合 高内聚指一个软件模块 阅读全文
摘要:
简单介绍 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。 Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View R 阅读全文
摘要:
单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数据在不同节点备份(replica ) ES集群相关概念: 集群(cluster):一组拥有共同的 cl 阅读全文