随笔分类 - 面试
摘要:1. java提供接口服务, 安全怎么保证 1. 请求合法性校验,考虑采用token方式保证接口不被其他人访问 2. 数据校验,白名单方式验证数据确保不出现异常数据和注入攻击。 3. 数据加密,对数据进行加密保证其他人无法非法监听或截取。 4. 错误处理,对系统返回结果编制返回码,避免堆栈信息泄露。
阅读全文
摘要:1 SpringBoot自动装配详解 SpringBoot启动类 @SpringBootApplication注解 SpringBoot启动类=>@SpringBootApplication @EnableAutoConfiguration注解 SpringBoot启动类=>@SpringBootA
阅读全文
摘要:1 2 3 4 高并发下服务限流的四种算法 5 6 SpringCloud和SpringCloudAlibaba都有哪些组件, 都解决了什么问题 Eureka, Hytrix, Feign, Zuul已经停止更新了 7 Hystrix 8 9 10
阅读全文
摘要:1 == 和 equals区别 2 ArrayList和ListedList区别 3 一、ConcurrentHashMap 底层原理ConcurrentHashMap 是线程安全的哈希表,它是 Java 并发包中提供的一种高效的并发 Map 实现。ConcurrentHashMap 底层采用了分段
阅读全文
摘要:1. 防止重复消费消息 消息发送端只发送一次, 消费端手动提交偏移量(偏移量可以存储在redis等,key为topic+group+partition, value为偏移量) 幂等校验(根据唯一字段,从数据库或redis中查询是否已经消费过) 2. 防止消息丢失 ISR中的leader partit
阅读全文
摘要:方案四: 多线程分页查询,将查询结果按照页号分别存入同一个map中,再由单线程将每一个页号的数据进行导出到每一个sheet中(easyexcel不支持多线程导出) 耗时23秒
阅读全文
摘要:1 使用工具包 jar包提供了一个ReadListener接口, 去实现此接口的invoke方法 每解析完一行数据,都会调用一次invoke方法进行数据入库, 这行数据会被封装成Salaries对象 结论一: 单线程解析和单线程单条数据插入数据库,两万条数据大概耗时2分钟 为了提升性能可以改为批量插
阅读全文
摘要:1 Sychronized 和 ReentrantLock区别 2 线程池 上图中的任务拒绝策略描述有误,上图是拒绝机制。拒绝策略有下面这4种 拒绝策略提供顶级接口 RejectedExecutionHandler ,其中方法 rejectedExecution 即定制具体的拒绝策略的执行逻辑。jd
阅读全文
摘要:相关面试题可以参考 1 缓存雪崩 在同一时间类,缓存大部分失效, 导致数据库并发压力过大挂掉 场景: 应用启动时,没有进行缓存; 所有缓存都设置的是同一时间; 缓存服务挂掉了 缓存预热 : 是在应用启动后先不对外提供服务, 可以写一些方法去调用接口触发缓存 互斥锁: 锁方法或锁key, 只允许一个请
阅读全文
摘要:1 存储引擎 2 explain各个字段含义 3 MyISAM和InnoDB mysql的data目录下的myisam文件.frm表结构文件, .MYD数据文件, .MYI索引文件 4 分库分表 常用的有mycat等 可分为水平拆分和垂直拆分, 垂直拆分是指将一个库中的表分散到多个库中,但是这个对性
阅读全文
摘要:1 pull 和push区别 2 kafka架构设计 3 kafka消息高可靠
阅读全文
摘要:1 静态代理 2 什么是动态代理? 动态代理是通过创建代理对象,在不改变原有代码的基础上,给程序增加新的功能,实现了程序的功能增强 3 动态代理有哪些 JDK动态代理 CGLB动态代理 4 jdk动态代理 使用了JDK中的InvocationHandler接口,Method类和Proxy类。JDK的
阅读全文
摘要:1 mvc定义 2 springmvc流程 3 4 相关注解 @Controller 控制器@Service 业务逻辑层@Repositry DAO层@Component 工具类相关的. @RequestParam @RequestMapping @RequestBody 3 执行流程源码分析
阅读全文
摘要:1 数据类型 2 ++i 和 i++ 3 堆存储的是实际值, 栈存储的是堆空间的引用 4 数组拷贝 5 排序算法 5.1 冒泡排序(bubble sort): 这是最简单的排序法,基本思路:对未排序的各元素从头到尾依次比较相邻的两个元素大小关系,若大于则交换位置 , 经过第一轮比较排序后可得出最大值
阅读全文