摘要: 1. 你们的项目为什么要分库分表? 随着业务的发展,公司项目的日活翻了几十倍,订单表Order每月新增数据100万左右,有部分场景查询效率不太高了。通过升级配置、业务规避、缓存集群、归档历史数据等手段,也能够满足当前的查询要求。但是业务是呈加速度增长的,未来的数据会更多。虽然深知过早优化的弊端,但是 阅读全文
posted @ 2019-10-14 15:05 编码专家 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 1. 线程池的使用场景有哪些 线程池适合单系统的大量的异步任务处理,比如发送短信、保存日志。 2. 说说创建线程池的重要参数 corePoolSize:线程池的大小。线程池创建之后不会立即去创建线程,而是等待线程的到来。当前执行的线程数大于该值时,线程会加入到缓冲队列。 maximumPoolSiz 阅读全文
posted @ 2019-10-12 16:04 编码专家 阅读(3978) 评论(0) 推荐(1) 编辑
摘要: 计算字符串num1和num2的和值字符串,num1和num2只包含数字,不允许将字符串转化为整型再计算 阅读全文
posted @ 2019-10-11 21:31 编码专家 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 问题描述:从数组中取出任意两个元素计算和值,根据和值反推元素下标。 阅读全文
posted @ 2019-10-10 22:02 编码专家 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 1. 说说Eureka的高可用方案 至少3个Eureka实例才能满足高可用,配置方法如下: 1. 准备三个节点node1,node2,node3。 1. 在每个实例的application.xml文件里加入 ,address是其他节点的地址。如果是node1,address就是 ,其他节点依次类推。 阅读全文
posted @ 2019-10-09 10:15 编码专家 阅读(1879) 评论(2) 推荐(1) 编辑
摘要: 面试连环炮系列汇总,涉及Java基础、数据库、分布式理论、中间件等等 阅读全文
posted @ 2019-10-08 16:08 编码专家 阅读(2118) 评论(0) 推荐(3) 编辑
摘要: 1. HTTP状态码302的跳转逻辑 302状态码表示重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B。 2. 302与301的区别和使用场景 301是永久重定向,而30 阅读全文
posted @ 2019-10-08 16:06 编码专家 阅读(1649) 评论(0) 推荐(0) 编辑
摘要: 问题描述:计算一个字符串的最长子串的长度,子串不允许包含重复字符 阅读全文
posted @ 2019-10-08 10:49 编码专家 阅读(1387) 评论(0) 推荐(0) 编辑
摘要: 1. 实现一个线程有几种方法? 通过实现Runnable接口 通过继承Thread接口 通过Callable和Future创建线程 2. Callable和Runnable接口有什么区别 Runnable没有返回值;Callable可以返回执行结果,是个泛型,和Future、FutureTask配合 阅读全文
posted @ 2019-10-08 09:36 编码专家 阅读(712) 评论(0) 推荐(0) 编辑
摘要: 1. 说说Atomiclnteger的使用场景 AtomicInteger提供原子操作来进行Integer的使用,适合并发情况下的使用,比如两个线程对同一个整数累加。 2. 为什么Atomiclnteger是线程安全的,原理是什么 AtomicInteger是对int类型的一个封装,提供原子性的访问 阅读全文
posted @ 2019-10-05 12:12 编码专家 阅读(1149) 评论(0) 推荐(0) 编辑
摘要: 1. 说说你们的分布式ID设计方案 我们采用Snowflake算法,生成一个64bit的数字,64bit被划分成多个段,分别表示时间戳、机器编码、序号。 41位的时间序列(精确到毫秒,41位的长度可以使用69年)。 10位的机器标识(10位的长度最多支持部署1024个节点)。 12位的计数顺序号(1 阅读全文
posted @ 2019-09-29 13:25 编码专家 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 一个线程调用两次start会怎么样,谈谈线程的生命周期和状态转移,怎么让线程安全的停下来 阅读全文
posted @ 2019-09-28 10:32 编码专家 阅读(1105) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap为什么是线程安全的,那说说JDK1.7中Segment的原理,为什么不推荐使用HashTable呢 阅读全文
posted @ 2019-09-27 16:11 编码专家 阅读(4716) 评论(0) 推荐(0) 编辑
摘要: 服务器CPU飙升100%怎么排查,Java应用导致的100%怎么定位故障原因,full gc有哪些原因 阅读全文
posted @ 2019-09-26 10:51 编码专家 阅读(1569) 评论(0) 推荐(0) 编辑
摘要: 1. HashMap的put操作做了什么? HashMap的是由数组和链表构成的,JDK7之后加入了红黑树处理哈希冲突。put操作的步骤是这样的: 1. 根据key值计算出哈希值作为数组下标。如果数组的这个位置是空的,把k放进去,put操作就完成了。 2. 如果数组位置不为空,这个元素必然是个链表。 阅读全文
posted @ 2019-09-24 15:32 编码专家 阅读(1586) 评论(0) 推荐(2) 编辑
摘要: 1. 说说JVM的内存分区 线程私有的区域 程序计数器:JVM中程序计数器相当于汇编语言中的CPU中的寄存器,保存程序当前执行的指令的地址。 虚拟机栈:Java方法执行的栈由许多个栈帧构成,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表(Local Variables)、操作数栈(Operan 阅读全文
posted @ 2019-09-23 14:46 编码专家 阅读(1719) 评论(0) 推荐(2) 编辑
摘要: 这套2019的蚂蚁金服的Java面试题,覆盖的知识面相当广,包括Java基础、网络基础、中间件、项目实操等。我自己写了一些答案,也从其他博主收集了部分,实际面试的时候一定要用自己的语言总结。 阅读全文
posted @ 2019-09-19 12:21 编码专家 阅读(8118) 评论(1) 推荐(4) 编辑
摘要: 网络收集的Netty面试题和解答,这些面试题出现频率很高。Netty是知名的NIO框架,通常用于中间件开发,即使不从事中间件开发,也有必要了解一下。 阅读全文
posted @ 2019-09-16 17:06 编码专家 阅读(23145) 评论(0) 推荐(5) 编辑
摘要: 两步验证是指用户登录账户的时候,除了要输入用户名和密码,还要求用户输入一个动态密码,为帐户添加了一层额外保护。这个动态密码要么是专门的硬件,要么由用户手机APP提供。即使入侵者窃取了用户密码,也会因不能使用用户手机而无法登录帐户。许多游戏客户端和网银采用这种方式。以银行为例,当用户进行转账操作时,第一步输入6位取款密码,第二步输入动态密码器上数字,这个密码器是开户时银行提供的硬件。 阅读全文
posted @ 2019-09-15 21:20 编码专家 阅读(1669) 评论(1) 推荐(1) 编辑
摘要: 1. Dubbo应用为什么要部署Zookeeper? Zookeeper用来注册和发现服务,简单说就是提供端注册接口信息到Zookeeper,调用端在Zookeeper上查找接口对应的服务IP和端口。由于Zookeeper集群的高可用性,Dubbo推荐采用Zookeeper作为服务治理的基础组件。 阅读全文
posted @ 2019-09-12 10:16 编码专家 阅读(1381) 评论(2) 推荐(0) 编辑