![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 85
毛发旺盛的程序员
比你优秀的对手在学习,你的仇人在磨刀,你的闺蜜在减肥,隔壁老王在练腰,我们必须不断学习,否则我们将被学习者超越。”当然一个人学习是枯燥的,还需要一个良好的学习氛围,因此我组建了一个学习交流探讨的社群,欢迎大家一起来交流探讨共同进步。还有一些收集整理的资料,感兴趣的可以加群668470172
资料包括但不限于:分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货
展开
-
JavaArrayList源码分析(含扩容机制重点问题分析)
1. ArrayList 概述1.1 List 是什么?List 在 Collection中充当着一个什么样的身份呢?——有序的 collection(也称为序列)实现这个接口的用户以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。与 set 不同,列表通常允许重复的元素。1.2 ArrayList 是什么?ArrayList 的底层就是一个数组,依赖其扩容机制(后面会提到)它能够实现容量的动态增长,所以 ArrayL转载 2021-02-06 11:00:54 · 561 阅读 · 0 评论 -
volatile 和原子类的异同,画个图理解一下
volatile和原子类原子类和 volatile 的使用场景总结volatile和原子类我们首先看一个案例。如图所示,我们有两个线程。在图中左上角可以看出,有一个公共的 boolean flag 标记位,最开始赋值为 true。然后线程 2 会进入一个 while 循环,并且根据这个 flag 也就是标记位的值来决定是否继续执行或着退出。最开始由于 flag 的值是 true,所以首先会在这里执行一定时期的循环。然后假设在某一时刻,线程 1 把这个 flag 的值改为 false 了..转载 2021-02-05 14:21:17 · 409 阅读 · 0 评论 -
SpringBoot实现对HikariCP连接池的整合
池化思想分析池化思想是我们项目开发过程中的一种非常重要的思想,如整数池,字符串池,对象池、连接池、线程池等都是池化思想的一种应用,都是通过复用对象,以减少因创建和释放对象所带来的资源消耗,进而来提升系统性能。例如Integer对象的内部池应用,代码如下:package com.cy.java.pool;public class TestInteger01 { public static void main(String[] args) { Integer n1=100;//In转载 2021-02-05 14:07:01 · 590 阅读 · 1 评论 -
AOP实战篇 如何轻松实现日志功能,戳这
前言你是不是还在类里面直接拿到日志对象调用方法来输出日志?接下来教你如何简单使用AOP+自定义注解优雅的实现一个日志记录功能提示:以下是本篇文章正文内容,案例仅供参考一、技术介绍1.AOP是什么?在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各转载 2021-02-04 14:24:27 · 675 阅读 · 0 评论 -
JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比
谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解了前面的前置知识,有利于对垃圾回收器的理解。什么是垃圾?垃圾,主要是指堆上的对象,那么如何确定这些对象是可以被回收的呢?大概思路就是,如果一个对象永远不可能被访问到,那么就是垃圾,可以被回收了如何确定对象永远不会被使用呢?引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。但是,在Ja转载 2021-02-03 15:07:14 · 351 阅读 · 1 评论 -
内存屏障在CPU、JVM、JDK中的实现
前言内存屏障(英语:Memory barrier),也称内存栅栏,内存栅障,屏障指令等,是一类同步屏障指令,它使得 CPU 或编译器在对内存进行操作的时候, 严格按照一定的顺序来执行, 也就是说在内存屏障之前的指令和内存屏障之后的指令不会由于系统优化等原因而导致乱序。大多数现代计算机为了提高性能而采取乱序执行,这使得内存屏障成为必须。语义上,内存屏障之前的所有写操作都要写入内存;内存屏障之后的读操作都可以获得同步屏障之前的写操作的结果。因此,对于敏感的程序块,写操作之后、读操作之前可以插入内存屏障。转载 2021-02-02 14:54:33 · 252 阅读 · 0 评论 -
你真的了解LinkedHashMap吗?进来看看
一、前言LinkedHashMap 继承于 HashMap,因此,建议在学习本篇内容前,先学习 HashMap系列,这样使得更加容易理解。二、LinkedHashMap使用可能很多人会说,LinkedHashMap谁不会用?你真的确定你会用?上例子之前,先写几个工具方法,以便后面理解方便:public class Main { // 字符串左对齐(未考虑中英文长度,仅便于观看) private static String spaceFill(Object object) {转载 2021-02-01 16:38:36 · 412 阅读 · 0 评论 -
Spring Boot 项目的这些文件都是干啥用的?
本文我们了解下 Spring Boot 的目录结构,了解一个事物,清楚了它的结构,明白了内部元素各自的职责,就能很好的认识到它的组织方式和运行机制。我们以 IntelliJ IDEA 这个 IDE 生成的 Spring Boot 应用为例,详细地看一下应用里边都有哪些东西。下图是在上一讲中我们用 IntelliJ IDEA 生成的 Spring Boot 应用,详情戳: 五分钟快速构建第一个 Spring Boot 应用 。乍一看,内容是挺多。不过上边不全是 Spring Boot 本身的文件,还包转载 2021-01-29 11:43:13 · 297 阅读 · 0 评论 -
狠心闭关,21天后,我终于4面拿下字节跳动offer,啃完这283页pdf,你也可以
写在开篇闲话(长话短说):今年的开端有些特殊,疫情的缘故对我们的生活造成了很大的影响,这对于一名求职者来说,更是添上了一堵“难墙”,尽管如此,但我们也不能够错失金三银四的机会,该抓住的就要抓住。现在很多互联网公司都已经采取线上面试的方式,所以提前做好准备,投简历、顺利面试,定会拿下心仪的offer,而我也总算取得自己想要的成功,字节跳动成功4面通关。个人情况介绍:出生江南小镇,在北京读书,毕业之后就留了下来,学历是211本科,资历各方面都不错,因此在简历上也能够充分体现我自己的优势,年前海投简历之后原创 2021-01-28 10:59:56 · 255 阅读 · 0 评论 -
SpringBoot自动配置:Spring Data JPA
前言不知道从啥时候开始项目上就一直用MyBatis,其实我个人更新JPA些,因为JPA看起来OO的思想更强烈些,所以这才最近把JPA拿出来再看一看,使用起来也很简单,除了定义Entity实体外,声明自己的业务接口继承JpaRepository接口,什么逻辑也不用写,基本的增删改查,分页,排序就都搞定了。我在实现JpaRepository接口时就有个疑问,那么实现类是什么?如果用过MyBatis肯定也知道,是接口和实现类之间有一个代理类专门来处理这块的业务,那么JPA这块是否也会有一个代理类来处理同样的业转载 2021-01-28 10:09:57 · 774 阅读 · 0 评论 -
Java中,那些关于String和字符串常量池你需知道的东西
老套的笔试题在一些老套的笔试题中,会要你判断s1==s2为false还是true,s1.equals(s2)为false还是true。String s1 = new String("xyz");String s2 = "xyz";System.out.println(s1 == s2);System.out.println(s1.equals(s2));对于这种题,你总能很快的给出标准答案:==比较的是对象地址,equals方法比较的是真正的字符数组。所以输出的是false和true。上面的转载 2021-01-25 10:34:53 · 262 阅读 · 1 评论 -
细节决定成败,移除List中的元素,你的姿势对了吗?
之前遇到对List进行遍历删除的时候,出现来一个 ConcurrentModificationException 异常,可能好多人都知道list遍历不能直接进行删除操作,但是你可能只是跟我一样知道结果,但是不知道为什么不能删除,或者说这个报错是如何产生的,那么我们今天就来研究一下。一、异常代码我们先看下这段代码,你有没有写过类似的代码public static void main(String[] args) { List<Integer> list = new ArrayList&转载 2021-01-19 10:11:03 · 123 阅读 · 0 评论 -
谈谈Spring中Lookup配置的使用与原理
前言这篇文章我们就来具体使用下Spring提供给我们的Lookup方法。正文Xml配置lookup-method首先我们需要定义一个Java的抽象类命名为Fruit:public abstract class Fruit { // 抽象方法获取水果 protected abstract Fruit getFruit(String fruitName);}再定义两个公共类继承自上面的Fruit:public class Apple extends Fruit { publi转载 2021-01-18 10:50:03 · 823 阅读 · 0 评论 -
redis不小心清空了数据库(flushall),只能跑路吗
前言前段时间这个新闻在行业内闹的沸沸扬扬一名程序员因为对公司不满,删除了公司的数据库,后来被判7年,这也给咱们程序员敲响了一记警钟,无论发生什么,这种做法都是非常不妥当的,不光是职业道德的问题,而且还会收到法律的制裁。但是我们都知道redis中有一个叫flushall的命令,如果不小心在线上执行了会怎么办呢?tips:本文仅仅作为理论讲解,如果要尝试请在本地环境尝试,若在线上执行之后导致数据无法恢复,后果自负!!!恢复数据思路大家都知道redis和memcache都作为缓存使用,redis有转载 2021-01-17 20:44:53 · 734 阅读 · 0 评论 -
双非一本,代码写的烂才是原罪? 字节三面+微信四面+PayPal四面,大厂面经分享
本人双非一本非科班,之前在百度和字节实习过,这次其实没抱着什么特别大的希望投递,没想到字节可以再给我一次机会,还是挺开心的。几场面试下来,面试得自信,声音自信,给面试官一种你啥都会稳如狗的感觉(实际内心慌得不行…),然后表达流畅,吐字清晰,不卑不亢,说话要有逻辑性,不能吞吞吐吐半天说不明白,得总结自己的面经,形成自己的知识体系,别人的面经写的再好也是别人的,自己刷面经总结自己不会的点整理出来才是最有用的,文末我分享了一些我学习的方法和我收集的资源,我都整理成一套资源库了希望能帮到大家下面是面试经历全部写原创 2021-01-15 15:47:47 · 388 阅读 · 0 评论 -
简单几步!Windows下Clion结合docker调试openjdk8源码
废话不多说,开干!原理是通过Docker编译openjdk,然后结合clion通过gdbserver远程调试环境需求ClionDocker我测试的版本Docker for windows : Docker version 20.10.2, build 2291f61Clion : 2020.3.1构建镜像git clone https://e.coding.net/javalistcn/openjdk/build-openjdk-8.gitcd build-op转载 2021-01-15 14:40:02 · 1278 阅读 · 0 评论 -
放弃腾讯75W年薪,回老家当公务员,提离职被领导教育。网友:leader嫉妒了
一位腾讯员工自爆,“老家公务员政审已过,放弃腾讯75w年薪,提了离职被leader教育了”。并且这位员工还晒出了领导“教育”自己的聊天记录,引发网友们的热议。不少网友是非常赞同楼主回乡发展的:我初中同学和你差不多,每个人都有自己的选择,各自精彩,祝好;如果家里根基不错的话 建议回去 大都市 it也就那么回事;@华为技术有限公司员工:我很羡慕那种周末回老家的生活,我小时候就是这样过来的,很舒服,在大城市很孤独@少林弟子:我曾经也是bat出来的,风光也风光了,挤地铁和别人对喷也试过不少了,反正人生各有原创 2021-01-14 21:12:35 · 218 阅读 · 0 评论 -
大厂JAVA架构师必备秘籍十二本,涨薪升职全靠它,现在免费送给你
愿刷到这篇文章的每个人,2021都能身体健康并且学如逆水行舟,不进则退程序员找出路还是要尽量提前进行职业规划和准备,千万不要说什么:“走一步,算一步”的话。在这个一睁眼就是竞争的时代,你可以放松休息,但别人会继续前进,不会等你。不怕别人比你优秀,只怕比你优秀的人比你更努力!!最近整理了做了一个问卷调查,通过这个问卷调查,整理出了程序员必读书目前十二,见下由于篇幅有限,所有的书籍仅展示部分目录和内容截图,需要完整十二本书籍的朋友,一键三连,点击这里即可免费获取压缩包,金三银四就要到了,准备跳槽但原创 2021-01-14 14:26:33 · 145 阅读 · 1 评论 -
有OutOfMemoryError有关的JVM参数
JVM提供了有用的参数来处理 OutOfMemoryError 。在本文中,我们将重点介绍这些JVM参数。在排除OutOfMemoryError故障时,它可能会很方便。这些JVM参数是:1. -XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath2. -XX:onAutofmemoryError3. -XX:+ExitOnOutOfMemoryError4. -XX:+CrashOnOutOfMemoryError让我们在本文中详细讨论这些JVM参数。-X.转载 2021-01-13 21:37:44 · 499 阅读 · 0 评论 -
牛掰plus!裸辞后集中Java面试,凭借一个技术套路了多个面试官,最后竟然拿到7个offer!
前段时间开始集中面试,连拿了7个offer,虽然现在入职的不是BAT,但也算是细分领域里的准独角兽公司了。分享一下前段时间程序员小建第三面的面试经历吧,希望可以对你有所帮助哈。面试官:一面、二面他们对你的评价很高啊。我看你写着精通Spring,今天我们就聊聊Spring吧!程序员小建:走着!面试官:谈谈你自己对Spring的理解吧!**程序员小建:**我觉得Spring就是个万用排插,可以对接几乎一切的开源接口。像我接触过的项目有规则引擎,做推荐,做营销活动,做秒杀等等。面试官:你为什么用Sp.原创 2021-01-12 16:15:36 · 189 阅读 · 1 评论 -
不想搞Java了,4年经验去面试10分钟结束,现在Java面试为何这么难哪!?
作为一名优秀的程序员,技术面试都是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。如果你参加过一些大厂面试,肯定会遇到一些这样的问题:1、看你项目都用的框架,熟悉Spring、mybatis等框架实现原理吗?2、 看你上面有接触过消息中间件,负载均衡、RPC框架等技术吗,MySQL分库分表有做过吗?3、 分布式架构设计,Redis分布式锁呢?是不是看上去很难,是不是和自己准备的“题库”中的问题不一样?不知道从何处下手?如果你有这种感觉,那么说明你的技术原创 2021-01-11 21:35:25 · 215 阅读 · 1 评论 -
本科水平,社招5面蚂蚁,年薪60W+,分享一些小技巧
经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。这一个月与前几天不是现在哦,是10月13号去面试的,距离现在也在公司上了俩月班了,福利待遇他说很不错的所以在这里分享一下面试蚂蚁金服的面试题目,现在也在独角兽公司工作了,这些面试题也是最近整理出来的,在此分享一波给大家参考下,废话不多说。蚂蚁花呗一面(一个小时):JDK 中有哪几个线程池?顺带把线程池讲了个遍Java容器有哪些?哪些是同步容器,哪些是并发容原创 2021-01-11 15:54:56 · 407 阅读 · 2 评论 -
985毕业,半路出家28岁进军Java,坚持了三年现如今年薪36W+,也不算辜负自己了
背景26岁985研究生毕业,学的土木工程相关的专业。工作半年,存款3000,半年后调到深圳总部(公司央企),工作一年差不多也就几万存款,感觉生活无望,就直接决定转行。说实在的,转行就是奔着挣钱去的。最开始想到的是金融,入坑了后,发现原来还有金融农民工一说,二成人暴富,八成人shishi……万念俱灰。后来,觉得自己好歹过了计算机二级,也会些matlab,也听说IT工资高,就直接放弃金融农民工,转行IT。转行的时候有两点支撑着我:一是相信我读那么多书,学习能力绝对没问题,二是以我读书的经验,本科毕业也顶多原创 2021-01-08 10:23:36 · 254 阅读 · 0 评论 -
吃透 BATJ JAVA 面试精选 1000题,拿大厂offer 好像也没想象中那么难!
前言本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码。目录由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析,但是整理成了一份详细的PDF文档可分享给大家,戳这儿……………………原创 2021-01-07 15:10:49 · 151 阅读 · 6 评论 -
Java内存泄漏和垃圾收集器是什么样的关系呢
在这篇博文中,我想详细介绍一下 java.lang.OutOfMemoryError 错误这个错误是如何在Java应用程序中发生的。在前面的条目中,我们看到 **OutOfMemoryError **有完全不同的类型。然而,最常见的错误是Exception in thread "main": java.lang.OutOfMemoryError: Java heap space此错误意味着堆上不再有足够的可用内存来填充新对象的内存请求,即不能在堆上生成新对象。由于根据JVM规范,每个堆都必须有一个垃转载 2021-01-07 14:26:52 · 152 阅读 · 0 评论 -
都不懂怎么抛异常,凭什么说你会写Java
今天当我正在享受指尖跳动的(敲代码)律感时,突然被一个刺耳的声音打断,只听见近处传来一声 就这???? ,搞的我一脸懵逼我扭头过去发现原来这不是经常翻别人代码看的阿祥,我不屑的对他说就这?就这代码写的是不是很完美?只见他摇摇头,一个方法throw这多么异常,但是你知道这些异常存储在哪里(面带骄傲,赌我不知道),但是他却不知道我刚刚看完Class类文件。我轻蔑的跟他说小老弟,走找个会议室我跟你说道说道。于是我带着我的神兽(Macbook Pro)和阿祥来到了光明顶会议室。我:阿祥再转载 2021-01-06 16:15:38 · 117 阅读 · 0 评论 -
mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象
经过实测:mybatis 中的sql语句int类型 java接收的几种情况。1.用resultType=“int” (返回类型用int)1.1 如果 resultType=“int”, id 没做运算,<select id="getTest" resultType="int"> select id from ting_cmdb_physical_equipment where id=2897;</select>显示结果,java可以用 int 接收。1.转载 2020-12-24 14:06:24 · 1469 阅读 · 0 评论 -
Java后端面试25大专题面试题总结,斩获阿里P7 offer全靠它
容我小小的嘚瑟一下下啦~~这份神仙面试宝典总共有25大专题:专题一:JavaOOP面试题专题二:Java集合/泛型面试题专题三:Java中的IO与NIO面试题专题四:Java反射面试题专题五:Java序列化面试题专题六:Java注解面试题专题七:多线程&并发面试题专题八:JVM面试题专题九:Mysql面试题专题十:Redis面试题专题十一:Memcached面试题专题十二:MongoDB面试题专题十三:Spring面试题专题十四:Spring Boot面试题专题十五.原创 2020-12-22 11:15:59 · 527 阅读 · 0 评论 -
你来说一下springboot的启动时的一个自动装配过程吧
前言没有面试就继续夯实自己的基础,前阵子的在面试过程中遇到的各种问题陆陆续续都会总结出来分享给大家,这次要说的也是面试中被问到的一个高频的问题,我当时其实没答好,因为很早之前是看到springboot的启动的一个过程的源码的,但是时间隔得有点久了(两年多没用过springboot),所以当时也没答好。这次好好总结这部分知识。SpringApplication.run()我看网上好多介绍springboot自动装配过的文章时,上来就直接说@SpringBootApplication 注解是一个转载 2020-12-17 15:26:26 · 775 阅读 · 0 评论 -
SpringBoot 自动配置原理以及启动流程
@SpringbootApplication这个注解标记的类为Springboot程序的主配置类,进入这个注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUST转载 2020-12-16 14:44:52 · 394 阅读 · 0 评论 -
入职蚂蚁金服,年薪200万的大佬,随手扔给我的笔记,啃完后发现差距不止一点点!
前言2020终于迎来了最后的一个月,这一年,全世界都不安定,被疫情包围,渐渐治愈和免疫,国内虽然看着和往常没有多大的区别,但对于经济的冲击,不知道又倒退了多少年?大大小小的公司面临倒闭或已破产,对于职场上的我们而言,无疑是致命的打击,好了,回到主题,作为JAVA博主,看下JAVA近况~今年,从java转到别的行业的人不少,也有不少人挤进这个市场想要分得一杯羹。年复一年,年年如此。当然,Java程序员市场需求依然是比较大的,而且Java岗位晋升方向多,这就为许多人带去了机会。但是另一方面,高级人才紧缺,很原创 2020-12-15 16:20:18 · 1178 阅读 · 2 评论 -
不懂看这——Mybatis执行流程源码分析
第一部分:项目结构user_info表:只有id和username两个字段User实体类:public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.use转载 2020-12-15 15:23:20 · 108 阅读 · 0 评论 -
能详细讲一下Spring用了哪些设计模式吗?
思维导图概述一个优秀的框架肯定离不开各种设计模式的运用,Spring框架也不例外。因为网上很多文章比较散乱,所以想总结一下在Spring中用到的设计模式,希望大家看完之后能对spring有更深层次的理解。工厂模式工厂模式我们都知道是把创建对象交给工厂,以此来降低类与类之间的耦合。工厂模式在Spring中的应用非常广泛,这里举的例子是ApplicationContext和BeanFactory,这也是Spring的IOC容器的基础。首先看BeanFactory,这是最底层的接口。public i转载 2020-12-14 15:01:10 · 105 阅读 · 0 评论 -
凭借《Java核心知识点》拿到多个大厂offer,从基础到进阶,算法、源码、设计模式真的太香了
不知道大家在面试中有没有这种感觉:面试官通常会在短短两小时内对面试者的知识结构进行全面了解,面试者在回答问题时如果拖泥带水且不能直击问题的本质,则很难充分表现自己,最终影响面试结果。针对这种情况,这份阿里架构师纯手打的Java核心知识点笔记应运而生!这份笔记在讲解知识点时不拖泥带水,力求精简,详细介绍了Java程序员面试时常被问及的核心知识点。这份笔记总共九大部分,涵盖了Java开发1年到Java架构师层面的面试知识点总结,作者承诺:这份笔记100%免费获取!因为这份笔记的知识点太多,小编没办法为大家原创 2020-12-11 22:00:23 · 92 阅读 · 0 评论 -
Mybatis动态映射,这次终于搞明白了
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识转载 2020-12-11 17:15:59 · 582 阅读 · 11 评论 -
配置 Spring Batch 批处理失败重试机制
1. 引言默认情况下,Spring批处理作业在执行过程中出现任何错误都会失败。然而有些时候,为了提高应用程序的弹性,我们就需要处理这类间歇性的故障。在这篇短文中,我们就来一起探讨 如何在Spring批处理框架中配置重试逻辑 。2. 简单举例假设有一个批处理作业,它读取一个CSV文件作为输入:username, userid, transaction_date, transaction_amountsammy, 1234, 31/10/2015, 10000john, 9999, 3/12/20转载 2020-12-11 17:05:43 · 729 阅读 · 0 评论 -
高效并发下的高速缓存和指令重排
1. 前言关于计算机系统处理器资源的高效使用,计算机系统设计就引入 高速缓存 以解决CPU 运算速度与主内存存储速度之间的速度不匹配问题;引入 指令重排 来提升 CPU 内部运算单元的执行利用效率。提升计算机处理器的运算能力,最简单、最有效的手段是让计算机支持多任务处理,可以充分利用处理器的运算能力。当然计算机操作系统的运算能力不单单取决于处理器,还需考虑系统中并行化与串行化的比重,磁盘I/O读写速度,网络通信,数据库交互等。2. 高速缓存2.1 高速缓存与缓转载 2020-12-10 20:41:24 · 116 阅读 · 0 评论 -
mybatis-plus如何自动填充字段创建时间和修改时间
前言根据阿里巴巴开发手册,表必备三个字段:id,create_time, update_time,针对创建时间和修改时间我们有两种方式可以去生成——数据库层面和代码层面自动填充数据库层面数据库层面,就是在设计表的时候,针对某一个字段,可以设置一些更新策略。比如可以设置,当该记录添加的时候,自动设置创建时间为当前时间。当该条记录修改的时候,自动设置更新时间为当前时间。但是,由于数据库的设计非常重要,开发过程中不能随意修改数据库结构,故此种方法不作考虑代码层面代码层面,就是我们使用代码去填充创建时间转载 2020-12-09 16:09:31 · 3903 阅读 · 0 评论 -
工作10年+,从阿里P8出来,头发也没了,人也虚了,就剩下这份笔记了!
工作了11年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P8也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记。此笔记已助朋友拿到腾讯,阿里,美团等9个offer。由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsear原创 2020-12-09 14:54:51 · 964 阅读 · 17 评论 -
手写spring boot starter起步依赖demo
Spring Boot起步依赖(starter)大大简化了项目构建中的依赖配置,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖,这些依赖项是使项目快速启动和运行所需的依赖项,如spring-boot-starter-web起步依赖,聚合了spring-boot-starter、spring-boot-starter-json、spring-boot-starter-tomcat、spring-web、spring-webmvc等依赖,使得我们的web项目无需引入多个web相关的依赖转载 2020-12-08 17:40:34 · 279 阅读 · 0 评论