面试

SpringBoot图文教程5—SpringBoot 中使用Aop

感情迁移 提交于 2020-12-31 09:29:11
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 大哥大姐新年好,点赞转发不要少 SpringBoot 图文系列教程技术大纲 鹿老师的Java笔记 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+案例 思维导图」「基础篇上」 SpringBoot图文教程2—日志的使用「logback」「log4j」 SpringBoot图文教程3—「‘初恋’情结」集成Jsp SpringBoot图文教程4—SpringBoot 实现文件上传下载 前言 在Spring中,不管是学习还是面试,有两个点是永远绕不过去的,一个是IOC,另一个就是Aop,Spring中使用Aop是非常简单的,可以通过xml和注解两种方式写出aop的代码,那么在SpringBoot中有什么变化吗? 在SpringBoot中使用aop实际上没有太多的变化,关于SpringBoot实际上就是对Spring和SpringMVC的进一步封装,因此在 SpringBoot 中同样支持Spring框架中AOP切面编程,不过在SpringBoot中为了快速开发仅仅提供了注解方式的切面编程。 SpringBoot 注解式 aop 的使用

经典面试题:接雨水问题详解

女生的网名这么多〃 提交于 2020-12-31 09:22:31
接雨水这道题目挺有意思,在面试题中出现频率还挺高的,本文就来步步优化,讲解一下这道题。 先看一下题目: 就是用一个数组表示一个条形图,问你这个条形图最多能接多少水。 int trap(int[] height); 下面就来由浅入深介绍暴力解法 -> 备忘录解法 -> 双指针解法,在 O(N) 时间 O(1) 空间内解决这个问题。 PS: 我认真写了 100 多篇原创,手把手刷 200 道力扣题目,全部发布在 labuladong的算法小抄 ,持续更新 。建议收藏, 按照我的文章顺序刷题 ,掌握各种算法套路后投再入题海就如鱼得水了。 一、核心思路 我第一次看到这个问题,无计可施,完全没有思路,相信很多朋友跟我一样。所以对于这种问题,我们不要想整体,而应该去想局部;就像之前的文章处理字符串问题,不要考虑如何处理整个字符串,而是去思考应该如何处理每一个字符。 这么一想,可以发现这道题的思路其实很简单。具体来说,仅仅对于位置 i,能装下多少水呢? 能装 2 格水。为什么恰好是两格水呢?因为 height[i] 的高度为 0,而这里最多能盛 2 格水,2-0=2。 为什么位置 i 最多能盛 2 格水呢?因为,位置 i 能达到的水柱高度和其左边的最高柱子、右边的最高柱子有关,我们分别称这两个柱子高度为 l_max 和 r_max ; 位置 i 最大的水柱高度就是 min(l_max, r

编程入门到进大厂,分享一点学习经验

穿精又带淫゛_ 提交于 2020-12-31 09:01:49
编程学习道阻且艰,大厂仿佛遥不可及?我总结了一套学习架构,阅读之后,你将不再迷茫,全力迸发。 我相信大多数学习编程的同学都有着对大公司的憧憬。技术、声望、薪资、福利,这些都足以成为吸引你进入大厂的理由。 但是,如何进入大厂呢? 对于很多同学来说,通往大厂的道路并不明朗,不知道是否有希望,也不知道怎么努力,感觉遥不可及。 其实,我身边有很多成功拿到大厂 offer 的同学,他们并不都是大家想象中的 985 名校硕士、竞赛金牌、开源大佬、编程神童。相反,我看到了很多背景一般却凭实力冲进大厂的同学,而且他们在工作中的表现非常出彩! 通过和这些同学的交流,我发现他们在编程学习和求职方法上有一些共性,再结合自己的真实经历,我总结了一套较通用的编程学习和求职架构。 无论你现在处于编程学习的哪个阶段,又或者只是对编程有兴趣,下面的内容都会对你有一定帮助。让你看到更清晰的未来,并为之而努力。 首先,要明确一点,编程学习没有捷径!必须明晰目标、拉长战线、掌握技巧、持续学习、做足准备,才能立于不败之地。 下图是我总结的编程学习架构: 如图,我将编程学习分为 7 个部分。为什么叫做 “学习架构” 而不是 “学习路线” 呢?因为在编程学习中,有些事情不是严格按照顺序去做,而是在我们整个学习过程中都要长期坚持的。 下面详细解释一下这套编程学习架构的 7 个部分。 1. 初入茅庐,海纳百川 刚开始学习编程时

职场怪谈:技术面试过了一般HR多久联系?

空扰寡人 提交于 2020-12-31 08:18:54
问题 之前在看准上看到一个问题: 技术面试过了一般HR多久联系? 技术面试过了,说等hr会联系,但是等了几天也没有消息。这是什么情况。当时分管领导以及说技术面试过了。 分析   这个问题估计是跳槽求职的朋友们比较关心的问题:时间和精力都付出了,什么时候能够给答复呢?这里具体多久回复,每家公司情况都不太一样,这里我从公司的角度分享下我的看法。 我经历过大厂,也经历过创业公司,相对比较有发言权吧。不同的公司,流程虽有不一样,但是大概上是一致的,例如: 一面:一面面试官一般是你的同事,可能是高级别的,相当于初筛,绝大多数人一面都能通过,就是进入二面。 二面:大公司的二面面试官一般是资深的技术人员或者是主管/经理;中小型公司里二面面试官可能直接就是总监或者老板(也有小公司和老板和hr一起面试你) 三面:大公司可能会由总监/vp过来面试;小公司可能三面就hr这一关了 四面:大公司一般会有hr终面把关;小公司四面的情况相对少些。   当然也有一些互联网有五六面的情况。但不管怎样,最后一面一般是hr或者大boss,之前面试环节且统称为技术面吧。   还是回到今天的问题: 技术面过了,是不是hr应该马上面试你,或者是hr之后联系你 ?   大多数的情况下,如果面试官说“之后hr会联系你”,一般不通过的概率比较大,为什么这么说?且听我分析:   说hr之后会联系你,一般有如下情况:   第一种情况

我在阿里工作五年,面试一个小公司竟然挂了....

戏子无情 提交于 2020-12-31 01:47:54
一名阿里员工在互联网社区吐槽,称自己工作经验丰富,在阿里工作了五年,去面试一个小互联网创业公司竟然挂了,真是无力吐槽: 我就郁闷了,在阿里工作五年,去面试某公司,上来啥都不问, 就两道算法题我没有第一时间给出最优解,想了一会儿才做出来 ,结果就把我挂了,工作那么多年了,还这样面试也是令人醉了。 很快,这样的吐槽就获得了不少同行的关注。 有不少程序员表示这种公司不去也罢,仗着自己是外资,以为有多高大上,在其本国就是个low货,一跑到这边来就变得高大上,这样的企业不稀罕去,还不如国内的互联网公司:这种公司不去也罢,能在阿里呆5年,这就不用面试,直接进,你要了解这种公司都是这个风格;外企主要就是面算法小,跟国内企业完全两种面试套路。 不过也有同行表示:美企都是这种面试风格,即使你刷过了一遍leetcode,你也不一定能现场解出一道变形题,我觉得比起问项目经验、问那些搜索一下就能搜到答案的吹牛皮题目,问算法题要靠谱得多。 大部分同行都对这样的企业嗤之以鼻:你还认真去做,而且做出来了,要我看到出这种题就走了, 最烦上来拿卷子做的公司了,招人不多,待遇一般,要求还很高,不去也罢 ,不知道是什么给他们的企业,现在国内的互联网不比国外差,没必要去外资企业。 如今,争相想进入大厂的梦终于不再那么实现了。然而,大厂出来的人也不如以前那么的满身「金光闪闪」了。因为, 无论你是从大厂来,进入小厂

为什么算法专家都建议学习C++?

早过忘川 提交于 2020-12-31 01:18:57
在TIOBE指数发布的编程语言排行榜中,C++一直都是名列前茅。并且自2002年至今,不管时代如何发展,C++的排名连续18年稳定在前五。 各大编程语言的历史排名(1988-2020) 这也意味着,尽管不断受到Java、Python等后来者的冲击,至今已经30多岁的C++仍具有不可替代的地位。作为软件工业的底层基础,它的应用无处不在: 服务器、嵌入式、物联网、移动互联网、信息安全、游戏引擎、人工智能…… 还有人说,C++是一门“ 万能 ”的编程语言。因为,但凡能用其他语言写的程序,都可以用C++来写。由于它的知识体系更接近系统底层,C++基础好的人学习新的语言时上手更快、学得更深入。 不过,尽管C++的优势和魅力都摆在那了,真正学习深耕这一门语言的人却并不多,每年市场上的C++ 人才缺口高达10万 ,并且这一数字还在逐年上升。 这主要是因为C++的学习难度在各大编程语言里面算中等偏上的,很多人一听到C++难就望而退步,学过一些基础的人也是浅尝辄止。 殊不知,C++的学习是很看重方法的。难点不在于各种各样的语法知识,而在于如何掌握语言实现背后的原理,例如 运行环境、操作系统、网络知识、算法数据思维 等。 针对不少人认为C++难学、学不会、学不懂的问题,开课吧的教研团队联合ACM金牌得主胡船长打造了一个 《C++难点突破训练营》 。 旨在帮助对C+

CSS盒模型

帅比萌擦擦* 提交于 2020-12-31 00:03:10
盒子模型: 盒子模型,又称框模型 (Box Model) 盒子模型主要的属性:width、height、padding、border、margin; width:内容的宽度 height:内容的高度(不是盒子的宽度、高度) padding:内边距 border:边框 margin:外边距 例: <style type="text/css"> div{ width: 200px; height: 200px; border: 1px solid red; padding: 50px; </style> 标准盒模型与IE盒模型: 标准盒模型 : 【标准盒子模型的范围包括margin,border,padding,content,并且content部分不包含其他部分;】 IE盒模型 : 【IE盒子模型的范围包括margin,border,padding,content,和标准盒子模型不同的是:IE盒子模型的 content 部分包含 border 和 pading;】 标准盒子模和IE盒模型的区别: 标准盒子模型中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。 IE盒子模型中,width 和 height 指的是内容区域+border+padding的宽度和高度。 盒子模型面试题 1

总结一波 Redis 面试题,收藏起来!

半世苍凉 提交于 2020-12-30 23:37:07
本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Redis 集群方案应该怎么做?都有哪些方案? 有没有尝试进行多机redis 的部署?如何保证数据一致的? 对于大量的请求怎么样处理 Redis 常见性能问题和解决方案? 讲解下Redis线程模型 为什么Redis的操作是原子性的,怎么保证原子性的? Redis事务 Redis实现分布式锁 Redis 持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。 实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。 RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件

老大爷都能看懂的RecyclerView动画原理

孤人 提交于 2020-12-30 21:05:55
如何阅读本篇文章 本文主要讲解RecyclerView Layout变化触发动画执行的原理。前半部分偏重原理和代码的讲解,后半部分通过图文结合场景讲解各个阶段的执行过程。 建议先粗略阅读前半部分的原理和代码篇,做到心中有概念,带着理论知识去阅读后半部分的场景篇。最后结合全文学到的知识,带着问题去阅读源码,效果会更好。 原理篇 1. Adapter的notify方法 用过RecyclerView的同学大概都应该知道Adapter有几个notify相关的方法,它们分别是: notifyDataSetChanged() notifyItemChanged(int) notifyItemInserted(int) notifyItemRemoved(int) notifyItemRangeChanged(int, int) notifyItemRangeInserted(int, int) notifyItemRangeRemoved(int, int) notifyItemMoved(int, int) 稍微有点开发经验的同学都知道,notifyDataSetChanged()方法比其它的几个方法更重量级一点,它会导致整个列表刷新,其它几个方法则不会。有更多开发经验的同学可能还知道notifyDataSetChanged()方法不会触发RecyclerView的动画机制

轮子虽好,也要知其所以然!(Lombok操作实例)

元气小坏坏 提交于 2020-12-30 17:58:54
前提 自从进公司实习后,项目代码中能用 Lombok 的都用了,毕竟这么好的轮子要充分利用好。也可以减少一些 get/set/toString 方法的编写,虽说 IDEA 的插件可以自动生成 get/set/toString 方法,但是使用 Lombok 可以让代码更简洁。 下面看看如何在 IDEA中如何安装 Lombok: 安装 打开 IDEA 的 Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories” 在输入框输入”lombok”,得到搜索结果,点击安装,然后安装提示重启 IDEA,安装成功; 引入依赖 在自己的项目里添加 lombok 的编译支持,在 pom 文件里面添加 dependency <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency> 复制代码 怎么使用? 在实体类上引入相关的注解就行: 有哪些注解? @Data @Setter @Getter @Log4j @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode