近期Java高级开发岗面试总结哈喽大家好,我是walking,这是我的公众号:编程大道。很久没和大家见面了,文章更新的速度略有延后。这个公众号断断续续的也维护了有三年了,其实实际开始专心维护的时间也就从1年多前开始的,总是忙于工作,没有太多的时间静下心来好好写,好在有400多个小伙伴关注着,不离不弃的,加油,继续努力。上周抽空开放了一下招聘网站上的简历,抱着试一试的态度,主要是想检验一下自己这段时间学的怎么样...
2022-11-18 11:08:11 3645浏览 0点赞 0回复 0收藏
作为面试官,我总结了这几次面试,发现好几个应聘者存在以下几个问题:1、搞不清楚问题,对基本概念没吃透。2、准备不够充分,对面试不够重视。3、简历花里胡哨,甚至看不清字。4、写在简历上的技术却毫无准备。5、对自己做过的东西描述不清。下面就针对以上几个问题简要地聊聊。1、搞不清楚问题,对基本概念没吃透。有不少应聘者在回答问题之前没有搞清楚一些字面相近、容易混淆的概念,导致答的驴唇不对马嘴。如,springbean...
2022-11-18 11:07:33 4945浏览 0点赞 0回复 0收藏
真快,金三银四面试季就要过去了,你拿到心仪的offer了吗?因为这次疫情你觉得面试简单了还是更难了?我觉得既简单又难,简单是因为不需要背着包到处跑,不需要打印简历,都是电话面、视频面,非常的便利,难是因为有很多中小公司因此而裁员甚至倒闭。我的一个小伙伴也趁着这个机会面了几家试了试水,其中有面试官问到了一个问题:使用过单例模式吗?单例模式有哪些实现方式?你用过哪些?你的单例模式能保证百分之百单例吗?朋...
2022-11-18 11:06:59 4643浏览 0点赞 0回复 0收藏
这篇文章是去年三月份写的,当时首发在掘金忘记同步到公众号。今天整理文章时顺便也在公众号发一下。本文主要从一个需求入手,从前期的需求分析、表设计、系统设计到代码实现,一直到后期的一步步优化,主要涉及到一个需求从拿到需求到最后实现功能及优化的全过程,适合刚入行的程序员去了解开发流程,以及Redis在实际项目中的应用。Tip:如果你是新手,实际还没怎么用过Redis,你可以把这篇文章仔细看看,搞懂,面试的时候问你...
2022-11-18 11:05:31 3803浏览 0点赞 0回复 0收藏
设置过期时间、释放资源使用Redis做KV存储,一定要注意过期时间的把控,任何KV的存储都要设置过期时间,不管多长时间。一般在封装Redis操作工具类时提供默认使用系统公共超时时间的操作API,避免新手在使用时不设置过期时间,导致内存的浪费。另外,通过连接池JedisjedisJedisPool.getResource();这样获取Redis连接最好使用tryfinally块,并且在finally块中调用jedis.close();将连接归还给连接池,...
2022-11-18 11:04:33 3890浏览 0点赞 0回复 0收藏
引言上一篇文章《MySQL索引那些事》主要讲了MySQL索引的底层原理,且对比了B+Tree作为索引底层数据结构相对于其他数据结构(二叉树、红黑树、B树)的优势,最后还通过图示的方式描述了索引的存储结构。但都是基于单值索引,由于文章篇幅原因也只是在文末略提了一下联合索引,并没有大篇幅的展开讨论,所以这篇文章就单独去讲一下联合索引在B+树上的存储结构。本文主要讲解的内容有:联合索引在B+树上的存储结构联合索引...
2022-11-18 11:03:42 3208浏览 0点赞 0回复 0收藏
大家有没有遇到过慢查询的情况,执行一条SQL需要几秒,甚至十几、几十秒的时间,这时候DBA就会建议你去把查询的SQL优化一下,怎么优化?你能想到的就是加索引吧?为什么加索引就查的快了?这就要从索引的本质以及他的底层原理说起。索引是什么那索引到底是什么呢你是不是还停留在大学学『数据库原理』时老师讲的“索引就像字典的目录”这样的概念?老师讲的没错,但没有深入去讲。其实索引就是一种用于快速查找数据的数据结构,...
2022-11-18 11:02:43 4390浏览 0点赞 0回复 0收藏
疫情期间大家宅在家里是不是已经快憋出“病”了最近在家隔离期间,其实也是学的少玩的多。这不,今天在看Mybatis源码的时候发现了一款好用的Mybatis插件和一个转换工具,今天就赶忙写出来分享给大伙。我们大家在工作中应该都是用过Mybatis吧,有时候我们在本地调试的时候,会打开Mybatis的SQL日志打印,那么打印出来的SQL是下图这样的你可以看到预编译的SQL条件用占位符(?)了selectfromUserwhereid,并不是真实的SQLselectfr...
2022-11-18 11:01:19 6076浏览 0点赞 0回复 0收藏
在软件业,AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。SpringAOP的引入接口调用耗时现在我们有个...
2022-11-18 10:58:11 4333浏览 1点赞 1回复 0收藏
大家好,我是walking,今天我们来聊一聊什么是消息队列,为什么要用消息队列,有什么好处呢?同样使用消息队列有什么坏处?我们的项目要引入消息队列了,之前只是听说使用消息队列有什么什么好处,感觉挺高大上的,自己也只是看过各种消息队列的技术文章,流行的几种消息队列中间件也都自己搭建过,写过demo,所以现在要引入消息队列了,好激动啊,要用新技术了。出于大家都不了解消息队列,所以要在项目组内部对各位开发进行一...
2022-10-31 16:42:28 4071浏览 0点赞 0回复 0收藏
啥是分布式锁?我们学习Java都知道锁的概念,例如基于JVM实现的同步锁synchronized,以及jdk提供的一套代码级别的锁机制lock,我们在并发编程中会经常用这两种锁去保证代码在多线程环境下运行的正确性。但是这些锁机制在分布式场景下是不适用的,原因是在分布式业务场景下,我们的代码都是跑在不同的JVM甚至是不同的机器上,synchronized和lock只能在同一个JVM环境下起作用。所以这时候就需要用到分布式锁了。例如,现在有个场...
2022-10-31 16:41:54 5433浏览 0点赞 0回复 0收藏
初见MDC前两天看项目中的代码,无意中看到一个自定义的线程池MDCThreadExecutorextendsThreadPoolTaskExecutor主要针对springcontext中的ThreadPoolTaskExecutor线程池进行了扩展,但也没做多少扩展,仅仅是引入了两个属性,如下:privateMap<String,String>threadContext;privateBooleanuseThreadContext;publicMap<String,String>getThreadContext(){returnuseThreadContext(threadContextnullMDC.getCopyO...
2022-10-31 16:39:30 8315浏览 0点赞 0回复 0收藏
程序员,一个多么让人“敬仰”的职业。而程序员作为新一代的回归自然的“猿人”,也是属于新一代的第三类人种,程序员这个职业在外界眼中就是“人傻钱多死得早”的代名词,因为“高薪”的诱惑,不少其他行业的兄弟,转行做了程序员,而且近几年各种大大小小的培训机构如雨后春笋般遍地开花,越来越多的其他行业的从业者都在往程序员这一行业转,相信作为程序员的你身边多多少少都会有几个同事是从其他行业转行过来的。而在21世...
2022-10-31 16:36:14 6671浏览 0点赞 0回复 0收藏
不知道各位读者朋友有没有注意到,自己项目系统中都有哪些地方需要与外部系统进行交互,公司内部系统也好,对接外部三方系统也好,都使用的哪些方式对接的呢?自己有没有总结整理过?那么,今天就来谈谈企业中系统间的几种对接方式,聊一聊平时被大家忽略的问题。前言在系统设计之处,企业间的子系统都是为了解决各自特定的问题或业务需求,进行单独设计开发与应用的;后来,随着业务的发展和变化,需要进行系统间的集成和对接...
2022-10-31 16:35:44 1.2w浏览 0点赞 0回复 0收藏
Java8从发布到现在已经6年多了,java8在Java历史版本中是一个具有“里程碑”意义的重要版本,相信现在很多公司都用上了Java8这个版本,用了之后你就知道为什么说是“里程碑”了,然后你会觉得“真香”!但是事情总不是那么绝对,我相信目前还有很多公司依然在用java7甚至是java6,相信也会有很多小伙伴即便是用上了java8但是却还不知道它到底有哪些新的特性,那么今天就和大家一块看下java8比起以往的版本到底有哪些新的特性。...
2022-10-31 16:32:20 4975浏览 0点赞 0回复 0收藏
谈到程序员,对于外行人来说一贯的印象就是格子衫大裤衩外加人字拖,蓬头(秃头)垢面黑眼圈,还有就是“人傻钱多死得快”🤣,这是外界对程序员固有的思想,但是作为新世纪的程序员,我们可没那么邋遢,白衬衫西装裤黑皮鞋,整洁的发型,这才是新一代码农😎那对于我们内行人来说呢每天接触最多的就是代码,代码是程序员的一生挚友,一入代码深似海,所以代码也是评判一个程序员水平的标准。代码的简洁程度,API使用,代码逻辑,...
2022-10-31 16:31:40 6037浏览 0点赞 0回复 0收藏
在Java并发编程的世界里,synchronized和Lock是控制多线程并发环境下对共享资源同步访问的两大手段。其中Lock是JDK层面的锁机制,是轻量级锁,底层使用大量的自旋+CAS操作实现的。学习并发推荐《Java并发编程的艺术》那什么是CAS呢?CAS,compareandswap,即比较并交换,什么是比较并交换呢?在Lock锁的理念中,采用的是一种乐观锁的形式,即多线程去修改共享资源时,不是在修改之前就加锁,而是乐观的认为没有别的线程和自己争...
2022-10-31 16:30:02 4468浏览 0点赞 0回复 0收藏
在做项目的时候,几乎都会用到数据库,很多时候就只连一个数据库,但是有时候我们需要一个项目操作多个数据库,不同的业务功能产生的数据存到不同的数据库,那怎么来实现数据源的动态、灵活的切换呢?今天我们就来实现这个功能。前期准备工作我们需要有一台联网的电脑(用于maven自动下载依赖),并且电脑安装JDK8、IDEA、MySQL数据库、maven,首先创建一个springboot项目(SSM也行)。springboot版本和SSM版本的代码都已经放到...
2022-10-31 16:27:55 6255浏览 0点赞 0回复 0收藏
上一篇我们实现了多数据源动态切换的功能,这次我们来看一下是如何实现的。没看过上一篇的点击这里我们在DynamicDataSourceConfig中配置了所有数据源信息,并存在一个map中因为我们的DynamicDataSource继承了AbstractRoutingDataSource抽象类,AbstractRoutingDataSource中有几个重要的属性在这里我们用到了NullableprivateMap<Object,Object>targetDataSources;Nullablepriva...
2022-10-31 16:27:08 6204浏览 0点赞 0回复 0收藏
分布式对外高可用,对内如何让憋出的内伤消化消化。一、补偿机制的意义举例一个常见场景:客户端>购物车微服务>订单微服务>支付微服务为什么要考虑补偿机制呢因为一次跨机器的请求通信可能会通过DNS、网卡、交换机、路由机、负载均衡等设备,这些设备都不是一直稳定的,在数据传输的过程中只要一个问题出错,就会有问题的产生。在分布式里面,一次完整的业务流程是由多次跨机器的通信构成,那么产生问题的概率就会成倍的增加。...
2022-10-31 16:26:36 5597浏览 0点赞 0回复 0收藏