
Java
文章平均质量分 88
Java_supermanNO1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
含泪拿下腾讯60W Offer,五轮面试,六个小时,灵魂拷问,扶我起来我还能再战
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。但说实话,想进大厂还真没那么容易。我的一个朋友在入职腾讯之前,大大小小的面试经历了十几次,最后终于在 4 轮技术面+1 轮 HR 面之后成功接到 Offer,40k*16 薪!第一轮主要考察 Java 基础, 比如:hashmap的实现Java中的垃圾回收除了代码之外你还学习了什么技术,框架死锁是怎么产生的线程和进程的区别二、三原创 2021-06-24 22:26:23 · 10596 阅读 · 70 评论 -
【面试复盘】2021金三银四之后,这些大厂Java高频面试点你都知道吗?
时隔半年,历经金三银四之后,大厂招聘已然接近尾声,接踵而来的是下一波毕业季应届生招聘计划及金九银十。在这几个月里收到很多粉丝反馈,今年找工作太难了,好不容易有面试邀请,却倒在了前几轮技术面,据了解在大厂面试中基本都会问到Redis、分布式、高并发、JVM、源码框架、项目实战、微服务、消息中间件等这些热门知识点。然而这些知识点在平常工作中有些不一定会经常用到,让许多面试者很是头疼。在与他们交谈中,问了他们在面试中遇到了哪些问题,经过一个月时间,我把从他们那收集到的问题进行了分类整理,经过多方面资料查阅以及和原创 2021-06-18 14:15:09 · 644 阅读 · 22 评论 -
系统性能百倍提升典型案例分析:高性能队列Disruptor
Disruptor 是一款高性能的有界内存队列,目前应用非常广泛,Log4j2、SpringMessaging、HBase、Storm 都用到了 Disruptor,那 Disruptor 的性能为什么这么高呢?Disruptor 项目团队曾经写过一篇论文,详细解释了其原因,可以总结为如下:内存分配更加合理,使用 RingBuffer 数据结构,数组元素在初始化时一次性全部创建,提升缓存命中率;对象循环利用,避免频繁 GC。能够避免伪共享,提升缓存利用率。3. 采用无锁算法,避免频繁加锁、解锁的性能消原创 2021-03-26 20:48:50 · 659 阅读 · 1 评论 -
并发编程经典案例分析:高性能限流器Guava RateLimiter
Guava 是Google 开源的 Java 类库,提供了一个工具类 RateLimiter。我们先来看看 RateLimiter的使用,让你对限流有个感官的印象。假设我们有一个线程池,它每秒只能处理两个任务,如果提交的任务过快,可能导致系统不稳定,这个时候就需要用到限流。在下面的示例代码中,我们创建了一个流速为 2 个请求 / 秒的限流器,这里的流速该怎么理解呢?直观地看,2 个请求 / 秒指的是每秒最多允许 2 个请求通过限流器,其实在Guava中,流速还有更深一层的意思:是一种匀速的概念,2 个请求原创 2021-03-21 22:09:31 · 547 阅读 · 0 评论 -
你的线程很可能出现了:安全性、活跃性以及性能问题
并发编程中我们需要注意的问题有很多,很庆幸前人已经帮我们总结过了,主要有三个方面,分别是:安全性问题、活跃性问题和性能问题。下面我就来一一介绍这些问题。安全性问题相信你一定听说过类似这样的描述:这个方法不是线程安全的,这个类不是线程安全的,等等。那什么是线程安全呢?其实本质上就是正确性,而正确性的含义就是程序按照我们期望的执行,不要让我们感到意外。在上一篇《深入底层探究并发编程Bug罪魁祸首——可见性、原子性、有序性 》中,我们已经见识过很多诡异的 Bug,都是出乎我们预料的,它们都没有按.原创 2021-03-20 22:41:38 · 284 阅读 · 0 评论 -
Java架构进阶笔记:一不小心就死锁了,怎么办?
我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,例如账户 A 转账户 B、账户 C 转账户 D 这两个转账操作现实世界里是可以并行的,但是在这个方案里却被串行化了,这样的话,性能太差。试想互联网支付盛行的当下,8 亿网民每人每天一笔交易,每天就是 8 亿笔交易;每笔交易都对应着一次转账操作,8 亿笔交易就是 8 亿次转账操作,也就是说平均到每秒就是近 1万次转账操作,若所有的转账操作都串行,性能完全不能接受。那下原创 2021-03-19 12:04:03 · 205 阅读 · 0 评论 -
深入底层探究并发编程Bug罪魁祸首——可见性、原子性、有序性
如果你细心观察的话,你会发现,不管是哪一门编程语言,并发类的知识都是在高级篇里。换句话说,这块知识点其实对于程序员来说,是比较进阶的知识。我自己这么多年学习过来,也确实觉得并发是比较难的,因为它会涉及到很多的底层知识,比如若你对操作系统相关的知识一无所知的话,那去理解一些原理就会费些力气。大家都知道,编写正确的并发程序是一件极困难的事情,并发程序的 Bug 往往会诡异地出现,然后又诡异地消失,很难重现,也很难追踪,很多时候都让人很抓狂。但要快速而又精准地解决“并发”类的疑难杂症,你就要理解这件事情的本质,原创 2021-03-10 21:09:57 · 281 阅读 · 0 评论 -
Java内存模型:看Java如何解决可见性和有序性问题
什么是 Java 内存模型?你已经知道,导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化,但是这样问题虽然解决了,我们程序的性能可就堪忧了。合理的方案应该是按需禁用缓存以及编译优化。那么,如何做到“按需禁用”呢?对于并发程序,何时禁用缓存以及编译优化只有程序员知道,那所谓“按需禁用”其实就是指按照程序员的要求来禁用。所以,为了解决可见性和有序性问题,只需要提供给程序员按需禁用缓存和编译优化的方法即可。Java 内存模型是个很复杂的规范,可以从不原创 2021-03-09 22:33:50 · 222 阅读 · 0 评论 -
史前最详细的:Java线程池核心流程解析
1. 前言线程池是JAVA开发中最常使用的池化技术之一,可以减少线程资源的重复创建与销毁造成的开销。2. 灵魂拷问:怎么做到线程重复利用?很多同学会联想到连接池,理所当然的说:需要的时候从池中取出线程,执行完任务再放回去。如何用代码实现呢?此时就会发现,调用线程的start方法后,生命周期就不由父线程直接控制了。线程的run方法执行完成就销毁了,所谓的“取出”和“放回”只不过是想当然的操作。这里先说答案:生产者消费者模型3. ThreadPoolExecutor的实现3.1 结构首先看下原创 2021-03-03 22:54:01 · 376 阅读 · 1 评论 -
最详细教程:正则表达式匹配${key}并在Java中使用
1.正则表达式匹配${key}\$\{([a-z]+)\} 能够匹配字符串中以${key}形式的文本(其中key为小写应为字母).*\$\{([a-z]+)\}.* 可以用来检测文本中是否有${key}形式的文本解释如下:. 匹配除换行符 \n 之外的任何单字符* 匹配前面的子表达式零次或多次 要匹配 * 字符,请使用 \*{ 标记限定符表达式的开始。要匹配 { ,请使用&nb原创 2021-02-27 22:20:59 · 1344 阅读 · 3 评论 -
神操作:他凭借“Java核心技能精讲”,竟收割了21个Offer
作为一个资历不浅的 Java 开发,这几年我面试过不少人。 发现大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿到期望的薪资。在我看来,造成这种情况的原因,主要有这么两方面:第一,“知其然不知其所以然”。 做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,我很难定位他们日后的成长潜力,也不会放心把有一定深度的任务交给他们。第二,知识碎片化,不成系统。 事实上,当面试者无法完整、清晰地描述自己所开发的系统或使用的相关技术时,面试官就会怀疑他是否原创 2021-02-24 16:34:36 · 364 阅读 · 2 评论 -
阿里官方推荐:SpringMVC高能笔记,从头到尾,都是精华
公众号:【慕容千语】欢迎大家的关注前言在网络技术中基于浏览器的B/S结构无论在PC端还是手机端都充当着至关重要的角色。 PC端自不必说,手机中很多应用虽然是以APP的形式存在,但它采用的还是B/S结构。如今日头条、微信的朋友圈等,这些应用在内部封装了浏览器,后端仍然是 Web站点。在大型网站和复杂系统的开发中,Java无疑具有很大的优势,而在lava的Web框架中 Sprig MVC 以其强大的功能和简单且灵活的用法受到越来越多开发者的青睐。Spring MVC入门很简单,但是要想真正使用好却并非.原创 2021-02-07 17:02:31 · 394 阅读 · 0 评论 -
程序员进阶之路:Java之String重点解析
主题String s = new String("abc") 这段代码创建了几个对象呢? s=="abc" 这个判断的结果是什么? s.substring(0,2).intern()=="ab" 这个的结果是什么呢?s.charAt(index) 真的能表示出所有对应的字符吗?"abc"+"gbn"+s 直接的字符串拼接是否真的比使用StringBuilder的性能低?前言Java中的String对象特性,与c/c++语言是很不同的,重点在于其 不可变性 。那么为了服务字符串不可变性的设计,则原创 2020-12-19 21:48:24 · 308 阅读 · 1 评论 -
看完源码记不住?掌握这套方法,Alibaba不会少你一个工位
都说大厂面试必问源码,可很多人看完Spring、MyBatis等源码记不住,是脑子有问题吗?当然不是!是因为你没有掌握学习源码的技巧。看完源码的我…我的朋友子路,很多人都叫他路神,称他为“国内Spring讲解最好的第一人”。子路说他以前学习Spring、Spring boot源码,只能去翻书,去报个线下培训班,或者向其他公司的大牛请教,一个疑问有时候会卡好几天。但现在不一样,各种免费的资料和视频,学习成本太低了!但是网上的内容质量参差不齐,都是东拼西凑的,辛辛苦苦学半天,面试还是挂了…**学习成原创 2020-10-27 22:34:17 · 214 阅读 · 0 评论 -
Java年薪30W+面试必问知识之《2020年面试宝典总纲》
前言一份月薪30K的java开发岗位工作要求是怎样的呢?面试都会问到哪些呢?任职要求:1、计算机或相关专业本科(或以上)学历,具备3年以上Java服务端开发经验,熟悉常用的Java开源框架,如熟悉Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等,了解其原理和实现机制;2、擅长Java Web服务开发,熟悉掌握各种Web应用开发模式,具有丰富的高并发、大数据系统的设计、研发、调试经验者优先;3、精通Java及面向对象设计开发,熟悉常见设计模式,有系统设计原创 2020-10-22 16:09:51 · 1123 阅读 · 3 评论 -
你的业务代码中Spring声明式事务处理正确了吗?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等——20%的业务代码的Spring声明式事务,可能都没处理正确Spring 针对 Java Transaction API (JTA)、JDBC、Hibernate 和 Java Persistence API(JPA) 等事务 API,实现了一致的编程模型,而 Spring 的声明式事务功能更是提供了极其方便的事务配置方式,配合 Spring Boot 的自动配置,大多数 Spring Boot 项目只需要在方法上标记 @T..原创 2020-08-28 20:47:47 · 485 阅读 · 0 评论 -
面试官:请问如何提升TCP三次握手的性能?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文主要分享在 Linux 操作系统下,如何优化 TCP 的三次握手流程,提升握手速度。TCP 是一个可以双向传输的全双工协议,所以需要经过三次握手才能建立连接。三次握手在一个 HTTP 请求中的平均时间占比在 10% 以上,在网络状况不佳、高并发或者遭遇SYN 泛洪攻击等场景中,如果不能正确地调整三次握手中的参数,就会对性能有很大的影响。TCP 协议是由操作系统实现的,调整 TCP 必须通过操作系统提供的接口和工具,这就需..原创 2020-08-25 20:52:43 · 741 阅读 · 0 评论 -
阿里架构师讲解不一样的JVM——你真的了解JNI的运行机制吗
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我们经常会遇见 Java 语言较难表达,甚至是无法表达的应用场景。比如我们希望使用汇编语言(如 X86_64 的 SIMD 指令)来提升关键代码的性能;再比如,我们希望调用 Java 核心类库无法提供的,某个体系架构或者操作系统特有的功能。在这种情况下,我们往往会牺牲可移植性,在 Java 代码中调用 C/C++ 代码(下面简述为C 代码),并在其中实现所需功能。这种跨语言的调用,便需要借助 Java 虚拟机的 JavaNat..原创 2020-08-21 20:23:04 · 297 阅读 · 0 评论 -
Docker安全知多少?在虚拟的环境中,就不用考虑安全了吗?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等上一篇文章和大家分享了 Linux 系统安全。但是,当你在和同事讨论 Linux 系统安全的时候,同事表示,公司的服务都是通过 Docker 来进行容器化部署的。开发在操作中,并不会接触实际的 Linux 服务器,所以不会去关注 Linux 安全 。而且,因为容器是隔离的,就算容器被黑客攻击了,也只是容器内部受到影响,对宿主的 Linux 系统和网络都不会产生太大影响。事实上,我知道很多人都有这种想法。但是,你可以试着思考一下,.原创 2020-08-12 17:30:39 · 411 阅读 · 0 评论 -
阿里架构师深度剖析:微服务接口鉴权限流背后的数据结构和算法
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等微服务是最近几年才兴起的概念。简单点讲,就是把复杂的大应用,解耦拆分成几个小的应用。这样做的好处有很多。比如,这样有利于团队组织架构的拆分,毕竟团队越大协作的难度越大;再比如,每个应用都可以独立运维,独立扩容,独立上线,各个应用之间互不影响。不用像原来那样,一个小功能上线,整个大应用都要重新发布。不过,有利就有弊。大应用拆分成微服务之后,服务之间的调用关系变得更复杂,平台的整体复杂熵升高,出错的概率、debug 问题的难度都高了.原创 2020-08-07 17:38:48 · 461 阅读 · 0 评论 -
阿里架构师浅析负载均衡:怎样提升系统的横向扩展能力?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前曾写过高并发系统设计的三个通用方法:缓存、异步和横向扩展,到目前为止,你接触到了缓存的使用姿势,也了解了,如何使用消息队列异步处理业务逻辑,那么本文将带你了解一下,如何提升系统的横向扩展能力。在之前的文章中就曾提到过提升系统横向扩展能力的一些案例。比如,可以通过部署多个从库的方式,来提升数据库的扩展能力,从而提升数据库的查询性能,那么就需要借助组件,将查询数据库的请求,按照一些既定的策略分配到多个从库上,这是负载均衡服务器所.原创 2020-08-04 17:53:42 · 553 阅读 · 0 评论 -
一天一个大技巧,阿里架构师浅析缓存架构:如何减少不必要的计算?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等众所周知:互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成了巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算资源,以应对高并发带来的计算压力及资源消耗。那么有没有办法减少到达服务器的并发请求压力呢?或者请求到达服务器后,有没有办法减少不必要的计算,降低服务器的计算资源消耗,尽快返回计算结果给用户呢?有,解决的核心就是缓存。所谓缓存,就是将需要多次读.原创 2020-07-31 20:37:24 · 260 阅读 · 0 评论 -
注意细节,阿里架构师一文详解SpringDI的四种依赖注入方式
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等SpringDI(依赖注入)一、DI概述Dependency Injection即为依赖注入,简称DI。简单来说,在Spring创建对象的同时,为其属性赋值,称之为依赖注入。形象来说,组件之间依赖关系由容器在运行期决定的,即由容器动态的将某个依赖关系注入到组件之中。二、什么是DI2.1 了解DI的思想简单了解了DI(依赖注入),在看依赖注入这个词,我们也可以将依赖注入以IOC(控制反转)的形式拆分它。顾.原创 2020-07-18 20:27:06 · 319 阅读 · 0 评论 -
记一次MySQL字符串索引优化方案
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等字符串建立索引的优化1. 建立前缀索引假设建立一个支持邮箱登录的用户表,对于邮件字段来说,可以有以下几种建立索引的方式:①. 直接对整个字符串建立索引alter table SUser add index index1(email);②. 对整个字符串的前一部分建立索引 - 前缀索引alter table SUser add index index2(email(6));方式 2 相较于 方式 1 来说,利用前缀.原创 2020-07-15 21:03:41 · 378 阅读 · 0 评论 -
细说:程序运行的环境和运行过程,再看不懂请自行面壁
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等编译器的任务,是要生成能够在计算机上运行的代码,但要生成代码,我们必须对程序的运行环境和运行机制有比较透彻的了解。你要知道,大型的、复杂一点儿的系统,比如像淘宝一样的电商系统、搜索引擎系统等等,都存在一些技术任务,是需要你深入了解底层机制才能解决的。比如淘宝的基础技术团队就曾经贡献过,Java 虚拟机即时编译功能中的一个补丁。这反映出掌握底层技术能力的重要性,所以,如果你想进阶成为这个层次的工程师,不能只学学上层的语法,而是要.原创 2020-07-14 21:27:15 · 1343 阅读 · 0 评论 -
作为Java开发,你真的了解系统吗?技术架构又要解决什么问题?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等对于开发人员来说,我们每天都在用技术。但你要知道,我们写的代码,其实只是系统的一小部分,我们了解的技术,也只是系统用到的一小部分。要深入掌握技术架构,我们就需要了解整体的系统。面对一个复杂的系统,我想你可能经常会有以下困扰:不清楚系统整体的处理过程,当系统出问题时,不知道如何有针对性地去排查问题。系统设计时,经常忽视非业务性功能的需求,也不清楚如何实现这些目标,经常是付出惨痛的教训后,才去亡羊补牢。不知你是否还记得,在.原创 2020-07-13 21:57:31 · 630 阅读 · 0 评论 -
盘点:2020年最新、最全、最实用的Java岗面试真题,已收录GitHub
本文转载自:盘点:2020年最新、最全、最实用的Java岗面试真题,已收录GitHub文中涉及的面试真题请访问原文链接,点击文末的【阅读原文】即可获取文章目录一、Java快速面试1. Java基础知识面试题2. Dubbo面试题3. Java异常面试题4. Java虚拟机(JVM)面试题5. Java集合容器面试题6. Linux面试题7. MyBatis面试题8. MySQL数据库面试题9. Netty面试题10. Redis面试题11. Spring面试题12. Spring Boot面试题13.原创 2020-07-07 15:53:53 · 739 阅读 · 0 评论 -
阿里大牛的Kafka动态配置了解下?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等什么是动态Broker参数配置?在开始分享之前,我们先来复习一下设置 Kafka 参数,特别是 Broker 端参数的方法。在 Kafka 安装目录的 config 路径下,有个 server.properties 文件。通常情况下,我们会指定这个文件的路径来启动 Broker。如果要设置 Broker 端的任何参数,我们必须在这个文件中显式地增加一行对应的配置,之后启动 Broker 进程,令参数生效。我们常见的做法是,一..原创 2020-07-06 20:34:00 · 579 阅读 · 0 评论 -
如何迅速分析出系统I/O的瓶颈在哪里?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等性能指标老规矩,我们先来回顾一下,描述 I/O 的性能指标有哪些?你可以先回想一下文件系统和磁盘 I/O 的原理,结合下面这张 Linux 系统的 I/O 栈图,凭着记忆和理解自己写一写。或者,你也可以打开前面的文章,挨个复习总结一下。说了这么久的 I/O 性能知识,一说起 I/O 指标,你应该首先会想到分类描述。我们要区分开文件系统和磁盘,分别用不同指标来描述它们的性能。文件系统I/O性能指标我们先来看文件系统的情况..原创 2020-07-05 21:37:39 · 527 阅读 · 0 评论 -
JVM深度剖析:一文详解JVM是如何实现反射的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等文章目录反射调用的实现反射调用的开销总结与实践反射是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测,甚至是修改程序的动态行为。举例来说,我们可以通过 Class 对象枚举该类中的所有方法,我们还可以通过Method.setAccessible(位于 java.lang.reflect 包,该方法继承自 AccessibleObject)绕过 Java 语言的访问权限,在私有方法所在类之外的地方调用该.原创 2020-07-02 21:14:12 · 584 阅读 · 0 评论 -
详解Kafka设计架构核心——Kafka副本机制详解
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝。副本机制有什么好处呢?1. 提供数据冗余。即使系统部分组件失效,系统依然能够继续运转,因而增加了整体可用性以及数据持久性。2. 提供高伸缩性。支持横向扩展,能够通过增加机器的方式来提升读性能,进而提高读操作吞吐量。3. 改善数据局部性。允许将数据放入与用户地理位置相近的地方,从而降低系统延时。这些优.原创 2020-07-01 21:11:28 · 473 阅读 · 0 评论 -
阿里面试官:RocketMQ与Kafka中如何实现事务?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等RocketMQ的事务是如何实现的?首先我们来看 RocketMQ 的事务。我在之前的课程中,已经给大家讲解过 RocketMQ 事务的大致流程,这里我们再一起通过代码,重温一下这个流程。public class CreateOrderService { @Inject private OrderDao orderDao; //注入订单表的DAO @Inject private ExecutorService exe.原创 2020-06-30 21:30:57 · 642 阅读 · 0 评论 -
面试官:有做过高可用的K8S集群部署方案吗?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、涉及到的内容LVSHAProxyHarboretcdKubernetes (Master Worker)二、整体拓补图以上是最小生产可用的整体拓补图(相关节点根据需要进行增加,但不能减少)按功能组划分SLBLVSHAProxyetcdK8S Node (Master / Worker)三、SLBLVS 、HAProxy 被规划为基础层,主要提供了一个高可用的7层负载均衡器。由LV..原创 2020-06-29 14:51:44 · 526 阅读 · 0 评论 -
进阶分布式架构:如何应对高并发的用户请求
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻辑,转变为如何满足大量用户的高并发访问请求。一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就会变得完全不同,软件开发方法、技术团队组织、软件的过程管理都会完全不同。以新浪微博为例,新浪微博最开始只有两个工程师,一个前端,一个后端,两个人开发了一个星期就把新浪微博开发出来了。现在许多年过去了,新浪微博的技术团队有上千人,这些人要应..原创 2020-06-27 21:43:47 · 750 阅读 · 0 评论 -
拒绝996,有哪些方法可以提高开发效率的奇技淫巧?
说明:本文已经收录:GitHub欢迎访问,一些大厂面试真题,面试攻略,更多奇技淫巧尽在其中今天我想与你讨论一个每个开发人员和项目管理者都关心的话题:如何提高开发效率。我其实也一直很关注这个话题,收集了很多方法让自己工作变得卓有成效。通过对这些方法的应用,我也可以算得上是一个高效的程序员:曾一个人在很短时间完成了飞信 Web 版客户端;在 DePaul 上学之余,帮学校完成了在线教学播放器系统的改造;三个月时间帮公司完成了主站从 jQuery 到 React 的迁移。如果让我对学过的这些方法做..原创 2020-06-17 20:43:00 · 398 阅读 · 0 评论 -
系统扩展/复用性太差?阿里架构师教你如何对现有系统做微服务改造
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub很多早期的互联网公司都有巨大的单体应用,底层的数据表集中放在一个数据库里,这些表加起来可能有几百张。对于这样的应用系统和数据库,我们往往需要对它们进行拆分,通过微服务化改造,保证系统能够不断地扩展和复用。相比从头开始落地服务,对现有系统做微服务化改造,这会面临更多的挑战。首先,应用和数据表紧密耦合在一起,代码模块和表是多对多的依赖关系。一个模块会访问多张表,多个模块也会对同一张表进行访问,而且由于表都在一个原创 2020-06-12 21:33:09 · 707 阅读 · 0 评论 -
还搞不懂Java中List和Set的区别?那就把这篇文章在那个甩给他
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub文章目录一、特性二、常见实现类三、相互转化一、特性两个接口都是继承自Collection,是常用来存放数据项的集合,主要区别如下:List和Set之间很重要的一个区别是是否允许重复元素的存在,在List中允许插入重复的元素,而在Set中不允许重复元素存在。与元素先后存放顺序有关,List是有序集合,会保留元素插入时的顺序,Set是无序集合。List可以通过下标来访问,而Set不能。二、常见实现原创 2020-06-10 21:40:53 · 408 阅读 · 1 评论 -
七年java开发,在拿下阿里、腾讯、百度、美团的offer后,有感而发,总结如下
前言互联网寒冬来临后,我发现Java工程师的两种截然不同的心态:一种是蛰伏,另一种是躁动。蛰伏者想的是:我老老实实干活儿,公司千万不要裁我,等熬过这段寒冬,就不怕了。但 是一旦被裁,满心惊恐,被迫匆匆忙忙赶赴面试现场。躁动者则想:公司万一朝我动刀,我可就麻烦了,不如赶紧找别的出路。虽说已经在未雨 绸缪,但依然殚精竭虑,急于找到下家。面试的时候你是否出现过这些的特点:准备不足,急于求成,不能把能力清晰明确地表达出来,最终导致面试大多失败。这是特殊的寒冬时期造成的呢,还是应聘者本身造成的呢?怎么才原创 2020-05-11 14:21:54 · 768 阅读 · 2 评论 -
阿里大牛亲荐:SpringBoot应用程序事件教程,面试Spring你掌握多少
本文转载自:阿里大牛亲荐:SpringBoot应用程序事件教程,面试Spring你掌握多少如果要“监听”事件,我们可以在事件发生源处编写“监听器”来监听事件,但会将事件源与侦听器的逻辑紧密耦合。我们可以根据需要动态注册和注销某些事件的侦听器。对于同一事件,我们也可以有多个侦听器。本教程概述了如何发布和监听自定义事件,并解释了Spring Boot的内置事件。事件与直接方法调用事件和直接方法...原创 2020-04-21 15:35:45 · 485 阅读 · 0 评论 -
掌握这些技巧让你offer拿不停面试Java岗为什么总是回去等通知?
本文转载自掌握这些技巧让你offer拿不停面试Java岗为什么总是回去等通知?面试是我们进入企业,所必须经历的一条道路,在这条道路上有无数的陷阱和机关,我们必须和面试官斗智斗勇,最终才能到目的地。其中,有一个非常让我们头疼的关卡是,“这位程序员,请说说一下你的优缺点”。我见过很多不合格的回到,总是让我觉得差强人意。你我来给大家举几个例子:缺点:我是做事风风火火,就是加班也要把工作尽快干...原创 2020-04-20 21:39:12 · 999 阅读 · 0 评论