Java
Java_Cappuccino
这个作者很懒,什么都没留下…
展开
-
使用了并发工具类库,线程安全就高枕无忧了吗?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在代码审核讨论的时候,我们有时会听到有关线程安全和并发工具的一些片面的观点和结论,比如“把 HashMap 改为 ConcurrentHashMap,就可以解决并发问题了呀”“要不我们试试无锁的 CopyOnWriteArrayList 吧,性能更好”。事实上,这些说法都不太准确。的确,为了方便开发者进行多线程编程,现代编程语言会提供各种并发工具类。但如果我们没有充分了解它们的使用场景、解决的问题,以及最佳实践的话,盲目使用就..原创 2020-08-27 21:10:28 · 454 阅读 · 0 评论 -
对面新来的阿里架构师:如何利用Kafka分析一个软件的实现?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在一个系统中,模型和接口是相对稳定的部分。但是,同样的模型和接口,如果采用不同的实现,稳定性、可扩展性和性能等诸多方面相差极大。而且,只有了解实现,你才有改动代码的基础。但是,不得不说,“看实现”是一个很大的挑战,因为有无数的细节在那里等着你。所以,在很多团队里,一个新人甚至会用长达几个月的时间去熟悉代码中的这些细节。面对这种情况,我们该怎么办呢?首先,你要记住一件事,你不太可能记住真实项目的所有细节,甚至到你离开项目的那..原创 2020-08-24 20:52:54 · 339 阅读 · 0 评论 -
阿里架构师细说分布式之集中式结构,愿下次面试不再有分布式
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等云这个话题对我们来说已经非常熟悉了。可以说,云在我们的生活中无处不在,比如我们平时看的视频通常就是放在云上的。当我们要播放一段视频时,请求会先转发到云上,从云上下载数据到本地,然后播放。在这里,你肯定会疑惑,云上资源那么丰富吗,可以存放这么多东西吗?云上的资源确实丰富,因为它可以尽可能地把更多的服务器组织起来,作为一个统一的资源,为多个用户提供服务。这里的重点是,把多个服务器管理起来,作为一个统一的资源提供服务。而如何组织,就是.原创 2020-08-14 17:47:46 · 384 阅读 · 0 评论 -
详解Linux系统安全:多人共用服务器,如何防止别人干“坏事”?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文就讨论一下 Linux 系统和应用安全。我们知道,在开发一个应用的过程中,需要涉及代码、操作系统、网络和数据库等多个方面。所以,只是了解代码安全肯定是不够的,我们还需要了解常见的基础环境和工具中的安全机制,学会通过正确地配置这些安全机制,来提升安全保障。谈到 Linux,我相信你每天都在使用 Linux 进行各种开发和运维操作。但是,大多数情况下,公司不会给每一个员工分配专有的 Linux 服务器,而是多个开发和运维共用一台.原创 2020-08-11 17:57:58 · 807 阅读 · 0 评论 -
阿里架构师剖析:Redis常用数据类型对应的数据结构
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等本文就带大家一块儿看下,经典数据库 Redis 中的常用数据类型,底层都是用哪种数据结构实现的?Redis数据库介绍Redis 是一种键值(Key-Value)数据库。相对于关系型数据库(比如 MySQL),Redis也被叫作非关系型数据库。像 MySQL 这样的关系型数据库,表的结构比较复杂,会包含很多字段,可以通过 SQL 语句,来实现非常复杂的查询需求。而 Redis 中只包含“键”和“值”两部分,只能通过“键”来查询.原创 2020-08-06 17:19:54 · 301 阅读 · 0 评论 -
从CRUD到阿里年薪60W+的架构师,他是如何面对职业倦怠?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等成长的途中,我们总会面临很多的困扰与惶惑,这些困扰和彷徨很多都关乎选择,只有了解并认清这类困惑,我们才可能做出最合适的选择。职业生涯的路上,每个人都会碰到职业倦怠期,我也不例外。曾经好几次,我都陷入其中。如今从中摆脱出来后,我就想尝试搞清楚这样一种状态的根源,思考一种方法来缩短它持续的时间,或者说增加它出现的时间间隔。那职业倦怠到底是怎样的一种感受呢?倦怠感1974 年,美国临床心理学家弗罗伊登贝格尔(Herbert J..原创 2020-08-03 17:32:41 · 267 阅读 · 0 评论 -
阿里架构师浅析设计模式应用:编程框架中的设计模式
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在绝大多数情况下,我们开发应用程序的时候,并不是从头开发的。比如,我们用 Java 开发一个 Web 应用,并不需要自己写代码监听 HTTP 80 端口;不需要处理网络传输的二进制 HTTP 数据包;不需要亲自为每个用户请求分配一个处理线程,而是直接编写一个 Servlet,得到一个HttpRequest 对象进行处理就可以了。我们甚至不需要从这个 HttpRequest 对象中获取请求参数,通过 Controller 就可以直接.原创 2020-07-30 20:30:38 · 201 阅读 · 0 评论 -
阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等软件的核心载体是程序代码,软件开发的主要工作产出也是代码,但是代码被存储在磁盘上本身没有任何价值,软件要想实现价值,代码就必须运行起来。那么代码是如何运行的?在运行中可能会出现什么问题呢?一、程序是如何运行起来的软件被开发出来,是文本格式的代码,这些代码通常不能直接运行,需要使用编译器编译成操作系统或者虚拟机可以运行的代码,即可执行代码,它们都被存储在文件系统中。不管是文本格式的代码还是可执行的代码,都被称为程序,程序是静态的.原创 2020-07-27 21:18:15 · 389 阅读 · 0 评论 -
程序员也可以“砍”需求吗?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我们前面讲的任务分解,主要是在讲开发任务的分解。今天我们换个角度,看看需求的分解。是的,需求也要分解。有一次,我和一个做开发的同事聊天,他给我讲了他近期的烦恼。同事:我们现在就是需求太多,开发的人太少,再这么干下去,哪天觉得自己抗不住了,我就拍拍屁股走人。我:你没尝试着砍砍需求?同事:怎么没尝试?产品的人都不同意。这批功能他们都说是关键功能。我:你有没有尝试把需求拆开了再砍呢?同事:还可以这样?同事很惊讶,我一点.原创 2020-07-24 20:56:25 · 320 阅读 · 0 评论 -
漫谈粗放与精益:编程的两种思路与方式
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等几年前,我给团队负责的整个系统写过一些公共库,有一次同事发现这个库里存在一个Bug,并告诉了我出错的现象。然后我便去修复这个 Bug,最终只修改了一行代码,但发现一上午就这么过去了。一上午只修复了一个 Bug,而且只改了一行代码,到底发生了什么?时间都去哪里了?以前觉得自己写代码很快,怎么后来越来越慢了?我认真地思考了这个问题,开始认识到我的编程方式和习惯在那几年已经慢慢发生了变化,形成了明显的两个阶段的转变。这两个阶段是:.原创 2020-07-23 21:15:51 · 294 阅读 · 0 评论 -
在被leader说了无数次后,终于潜下心来整理了一下JVM的类加载器
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等前言之前去面试的时候面试官问了我关于关于JVM性能调优的问题,由于自己之前公司的项目里自己没有接触到JVM性能调优的相关问题(感觉这些都是公司架构师考虑的问题),所有面试官问的时候自己一脸懵逼,所有最后的结果当然是凉凉。。,于是,为了查漏补缺,就去学习了一下JVM的相关知识,希望能帮助到大家。正文在学习任何一项新的知识之前,我都会先列出一份学习大纲,然后按照这个学习大纲一步一步的来学习了解,所以学习JVM这个新的技术,我也分.原创 2020-07-22 20:29:40 · 176 阅读 · 0 评论 -
在面试了阿里、腾讯众多大厂之后,我终明白了为什么需要消息队列
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等消息队列是最古老的中间件之一,从系统之间有通信需求开始,就自然产生了消息队列。但是给消息队列下一个准确的定义却不太容易。我们知道,消息队列的主要功能就是收发消息,但是它的作用不仅仅只是解决应用之间的通信问题这么简单。我们举个例子说明一下消息队列的作用。话说小袁是一家巧克力作坊的老板,生产出美味的巧克力需要三道工序:首先将可可豆磨成可可粉,然后将可可粉加热并加入糖变成巧克力浆,最后将巧克力浆灌入模具,撒上坚果碎,冷却后就是成品巧克.原创 2020-07-21 20:39:36 · 408 阅读 · 0 评论 -
为什么现在BAT面试必问分布式?阿里大牛带你实战剖析分布式锁
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等为什么要使用分布锁?首先,我先带你认识一下什么是锁。在单机多线程环境中,我们经常遇到多个线程访问同一个共享资源(这里需要注意的是:在很多地方,这种资源会称为临界资源,但在今天这篇文章中,我们统一称之为共享资源)的情况。为了维护数据的一致性,我们需要某种机制来保证只有满足某个条件的线程才能访问资源,不满足条件的线程只能等待,在下一轮竞争中重新满足条件时才能访问资源。这个机制指的是,为了实现分布式互斥,在某个地方做个标记,这个标.原创 2020-07-20 21:01:20 · 170 阅读 · 0 评论 -
先打好基础,阿里架构师一文带你深入理解JVM内存回收机制
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、垃圾回收发生的区域堆是java创建对象的区域(String对象在常量池中),也是垃圾回收最多的地方。但是除了堆空间还有方法区存在需要回收的垃圾回收方法区废弃的常量在常量池中存在一个字面量A,如果系统中没有一个地方引用`A``,这时候发生垃圾回收,如果有必要这个字面量就会被清理出常量池。注意是如果有必要。比如上一篇文章中引用的例子,就没有回收字符串。无用的类当满足以下条件时,这个类就可以被回收,而不是一定会回收。.原创 2020-07-16 21:00:42 · 218 阅读 · 0 评论 -
为什么查询数据不多,却慢的离谱,在我请教了隔壁新来的阿里大佬后
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等这篇文章主要记录,造成查询数量不大的情况下,造成查询缓慢的原因,以及相应的解决方法。环境说明:MySQL 版本 5.7.27隔离级别:RR锁等待造成查询速度很慢MDL 锁如开启如下事务:Session A 持有表 t MDL 写锁。Session B 需要 MDL 读锁。这时读写锁互斥,Session B 被阻塞。flush 阻塞flush 操作一般来说很快就能执行完,当通过查询进程状态后,看到被 flus.原创 2020-07-15 20:59:24 · 272 阅读 · 0 评论 -
为什么Spring技术很强大?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等Java 程序员几乎都了解 Spring。它的 IoC(依赖反转)和 AOP(面向切面编程)功能非常强大、易用。而它背后的字节码生成技术(在运行时,根据需要修改和生成 Java 字节码的技术)就是就是一项重要的支撑技术。Java 字节码能够在 JVM(Java 虚拟机)上解释执行,或即时编译执行。其实,除了Java,JVM 上的 Groovy、Kotlin、Closure、Scala 等很多语言,也都需要生成字节码。另外,pla.原创 2020-07-14 21:23:16 · 316 阅读 · 0 评论 -
阿里架构师分享丨Java架构设计的重点知识和学习路径(建议收藏)
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等学习架构呢,要掌握的东西有很多,你是不是开始担心自己一辈子都学不完呢?其实,我们也不需要一下子铺开学习所有的架构技能,重要的是把控好学习的节奏,在适当的时间学习适当的内容,我们可以结合实际工作,一步步地成长。所以今天这一讲,我想给你提供一些架构学习的重点方向和路径建议。架构原则汇总在技术架构篇,我针对系统的高可用、高性能、可伸缩和低成本,给你介绍了很多的架构设计原则,不同的原则对应着不同的目标,这里我把这些架构原则和目标汇总成.原创 2020-07-13 21:53:18 · 913 阅读 · 0 评论 -
Facebook架构师的代码审查之道:学习Facebook真正发挥代码审查的提效作用
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等我见到很多国内公司也在尝试使用代码审查,但是效果很不好,往往流于形式,最常听到的一个负面反馈就是“代码审查浪费时间”。代码审查的成功推行的确不是一件容易的事。今天,我们就一起尝试来解决这个问题。我会从三个方面给出一些建议:第一,在团队内引入代码审查的步骤和方法;第二,成功推进代码审查的关键操作;第三,持续做好代码审查的重要原则。今天的文章较长,我们现在就进入第一个部分,引入代码审查的步骤和方法从我的经验来看,要成.原创 2020-07-11 21:33:22 · 405 阅读 · 0 评论 -
阿里架构师详解缓存架构:如何减少不必要的计算?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成了巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算资源,以应对高并发带来的计算压力及资源消耗。那么有没有办法减少到达服务器的并发请求压力呢?或者请求到达服务器后,有没有办法减少不必要的计算,降低服务器的计算资源消耗,尽快返回计算结果给用户呢?有,解决的核心就是缓存。所谓缓存,就是将需要多次读取的数据暂.原创 2020-07-09 21:38:53 · 230 阅读 · 0 评论 -
Java程序员想要成功面试?请先要弄懂面试过程
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等面试看能力,上场之前能够了解全局,熟悉细节,才能更有针对性地做足准备,做到心中有数。如果你已经参加过很多次面试了,请想一想,你真的清楚整个招聘过程吗?在你知道的那些环节背后,有什么人在主导,目的是什么,要注意什么,该做什么,不该做什么,以及有什么风险,这些问题你清不清楚呢?今天,我从这些年的经验出发,从一个招聘职位出现,到招聘结束,给你讲讲整个过程都发生了什么、要注意什么。希望你透过面试官的视角,增加认知、充分准备、减少失误,为.原创 2020-07-08 21:17:19 · 617 阅读 · 0 评论 -
阿里架构师一文详解微内核架构,原来微内核这么简单
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等微内核架构(Microkernel Architecture),也被称为插件化架构(Plug-inArchitecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品(原文为 product-based,指存在多个版本、需要下载安装才能使用,与 web-based 相对应)的应用。例如 Eclipse 这类 IDE 软件、UNIX 这类操作系统、淘宝 App 这类客户端软件等,也有一些企业将自己的业务系统设计成..原创 2020-07-07 20:42:45 · 1975 阅读 · 0 评论 -
Linux文件系统是怎么工作的?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢?索引节点和目录项文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。你要记住最重要的一点,在 Linux 中一切皆文件。不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。为了方便管..原创 2020-07-05 21:33:37 · 434 阅读 · 0 评论 -
还搞不清楚JVM是怎么处理异常的?这水平,跳槽都没人要
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等文章目录异常的基本概念Java虚拟机是如何捕获异常的?Java 7的Supressed异常以及语法糖总结与实践众所周知,异常处理的两大组成要素是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。抛出异常可分为显式和隐式两种。显式抛异常的主体是应用程序,它指的是在程序中使用“throw”关键字,手动将异常实例抛出。隐式抛异常的主体则是 Java 虚拟机,它指的是 Java 虚拟机在执行过程中,碰到无法继续执行的异常.原创 2020-07-02 21:07:25 · 923 阅读 · 0 评论 -
你一定不能错过的Kafka控制器
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 ApacheZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,但是,在运行过程中,只能有一个 Broker 成为控制器,行使其管理和协调的职责。换句话说,每个正常运转的 Kafka 集群,在任意时刻都有且只有一个控制器。官网上有个名为 activeController 的 .原创 2020-07-01 21:03:10 · 269 阅读 · 0 评论 -
阿里架构师亲授:Kafka和RocketMQ的消息复制实现的差异点在哪?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等众所周知,消息队列在收发两端,主要是依靠业务代码,配合请求确认的机制,来保证消息不会丢失的。而在服务端,一般采用持久化和复制的方式来保证不丢消息。把消息复制到多个节点上,不仅可以解决丢消息的问题,还可以保证消息服务的高可用。即使某一个节点宕机了,还可以继续使用其他节点来收发消息。所以大部分生产系统,都会把消息队列配置成集群模式,并开启消息复制,来保证系统的高可用和数据可靠性。今天就和大家聊一下,消息复制需要解决的一些问题,以及.原创 2020-06-30 21:25:05 · 442 阅读 · 2 评论 -
面试官:讲一下什么是负载均衡,什么是轮询策略、随机策略、哈希策略
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等什么是负载均衡?先举个例子吧。以超市收银为例,假设现在只有一个窗口、一个收银员:一般情况下,收银员平均 2 分钟服务一位顾客,10 分钟可以服务 5 位顾客;到周末高峰期时,收银员加快收银,平均 1 分钟服务一位顾客,10 分钟最多服务 10 位顾客,也就是说一个顾客最多等待 10 分钟;逢年过节,顾客数量激增,一下增加到 30 位顾客,如果仍然只有一个窗口和一个收银员,那么所有顾客就只能排队等候了,一个顾客最多需要等待.原创 2020-06-29 21:20:36 · 2973 阅读 · 0 评论 -
十年前的阿里大牛困惑:我们为什么感觉不到淘宝应用升级时的停机?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等十几年前,我参加阿里巴巴面试的时候,觉得阿里巴巴这样的网站 Web 应用开发简直小菜,因为我之前是做类似 Tomcat 这样的 Web 容器开发的,所以面试的时候信心满满。确实,面试官前面的问题都是关于数据结构、操作系统、设计模式的,也就是我们这个专栏模块一和模块二的内容。我感觉自己回答得还不错,所以更加信心满满。这时候,面试官忽然提了一个问题:我们的 Web 程序每个星期都会发布一个新版本,但是程序要求 7*24 小时可..原创 2020-06-27 21:36:00 · 447 阅读 · 0 评论 -
Java程序员面试必备的网络编程基本网络概念
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等网络首先熟悉一下, 什么是网络,网络是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络通常用线缆连接,数据为转换为电磁波,通过线缆移动。不过,无线网络会通过无线电波传输数据,许多长距离的传输现在会用通过玻璃纤维发送可见光的光纤电缆来完成。网络中的每台机器为一个节点(node)。大多数节点是计算机,但是打印机、路由器、网桥、网关、ATM机也都是节点。每个网络节点都有地址 (address),这是用于唯一标识节点的一个.原创 2020-06-24 20:51:13 · 392 阅读 · 0 评论 -
面试官:String是值传递还是引用传递
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等把一个String类型的参数传入方法,并在方法内改变了引用的值。 然后在方法外使用这个值,发现这个String还是之前的值,并没有改变。这里要向大家介绍一下,大家都知道java在传参时分为值 传递 和 引用传递 。参数为基本类型时是值传递, 参数为封装类型时是引用传递。例如:基本类型参数public class Test { public static void main(String[] args) { ..原创 2020-06-23 21:21:36 · 187 阅读 · 0 评论 -
为什么互联网大厂都愿意用Mybatis?MyBatis缓存特性你了解吗?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、缓存简介一般我们在系统中使用缓存技术是为了提升数据查询的效率。当我们从数据库中查询到一批数据后将其放入到混存中(简单理解就是一块内存区域),下次再查询相同数据的时候就直接从缓存中获取数据就行了。这样少了一步和数据库的交互,可以提升查询的效率。但是一个硬币都具有两面性,缓存在带来性能提升的同时也“悄悄”引入了很多问题,比如缓存同步、缓存失效、缓存雪崩等等。当然这些问题不是本文讨论的重点。本文主要讨论MyBatis缓存这个..原创 2020-06-22 20:31:30 · 285 阅读 · 0 评论 -
如何做好容器化管理?腾讯架构师一篇文章带你吃透 Docker 原理
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、容器的实现原理从本质上,容器其实就是一种沙盒技术。就好像把应用隔离在一个盒子内,使其运行。因为有了盒子边界的存在,应用于应用之间不会相互干扰。并且像集装箱一样,拿来就走,随处运行。其实这就是 PaaS 的理想状态。实现容器的核心,就是要生成限制应用运行时的边界。我们知道,编译后的可执行代码加上数据,叫做程序。而把程序运行起来后,就变成了进程,也就是所谓的应用。如果能在应用启动时,给其加上一个边界,这样不就能实现期待的沙盒..原创 2020-06-21 20:54:25 · 397 阅读 · 0 评论 -
如何将Redis内存使用量降低一半?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等在本文中,我将尝试解释如何将数据占用的存储空间减少50%以上。我们的2.5GB Redis ElastiCache几乎快满了,如果以某种方式达到其极限,我们的系统将开始出现故障。Redis可能会成为瓶颈。基础设定:使用最新版本的Spring Boot,有两个主要依赖项- Spring Boot Web和Spring Data Reactive Redis,Spring Data Reactive Redis将用于连接和使用R.原创 2020-06-18 16:31:30 · 364 阅读 · 0 评论 -
纯干货丨18个软件开发常见问题及解决策略,你有遇到吗?
本文转载自:纯干货丨18个软件开发常见问题及解决策略,你有遇到吗?No.1每次看这些架构的思想方法的时候,总是和实际的应用没能很好的结合起来,原因是不是架构设计的实践不够?或者是对各种实现的分析和思考太少?我觉得不仅要有架构实践,还要有不同场景的实践。举个例子来说,你平时做企业应用架构,没什么流量,没多少数据,复杂的地方都在业务逻辑,这时候你去看那些讲大数据、讲高并发的文章,很难带入到场景去。还有就是一些架构,不自己搭一遍是很难了解其中的优缺点的,这也是另一个原因。可以考虑有机会自己尝试,把看原创 2020-06-17 16:26:32 · 4246 阅读 · 0 评论 -
Java技术面试到底要准备哪些面试题?别找了,这个GitHub完美的帮你解决
GitHub地址下午在逛GitHub的时候看到的,觉得里面的内容挺不错的(还在更新中)就随手分享出来对正在面试的朋友应该挺有帮助的,地址就在上面,我只是个搬运工一、校招真题题解二、计算机网络三、HTTP四、操作系统五、Linux六、算法七、剑指 Offer 题解八、Leetcode 题解九、设计模式十、面向对象思想十一、数据库系统原理十二、SQL十三、MySQL十四、Redis十五、Java 虚拟机十六、Java 并发十七、Java 容器原创 2020-06-16 21:18:32 · 190 阅读 · 0 评论 -
深入理解消息队列:如何实现高性能的异步网络传输?
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等异步与同步模型最大的区别是,同步模型会阻塞线程等待资源,而异步模型不会阻塞线程,它是等资源准备好后,再通知业务代码来完成后续的资源处理逻辑。这种异步设计的方法,可以很好地解决 IO 等待的问题。我们开发的绝大多数业务系统,它都是 IO 密集型系统。跟 IO 密集型系统相对的另一种系统叫计算密集型系统。通过这两种系统的名字,估计你也能大概猜出来 IO 密集型系统是什么意思。IO 密集型系统大部分时间都在执行 IO 操作,这个 IO.原创 2020-06-15 20:45:07 · 516 阅读 · 0 评论 -
如何学习源码?阿里架构师教你一招攻破源码难关
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub对于很多开源软件来说,如果我们把它作为我们业务系统的重要组成部分之一,真正地用于生产,仅仅知道如何使用是远远不够的,你必须掌握它的实现原理和很多细节,这样才能找到最佳的使用姿势,当你的系统出现问题时,你才有可能基于它的实现原理,再根据一些现象来排查问题原因。掌握这些开源软件的最佳方式就是去学习它的源代码。很多同学跟我说:“我也很想去看一些开源软件的代码,也尝试去看过,但是面对上千个源码文件,几十万行代码,完全.原创 2020-06-13 21:46:52 · 279 阅读 · 0 评论 -
如何设计一个基础服务?看完这篇文章别再说不会、不懂、不知道
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub我们知道,落地一个微服务其实并不困难,但要实现一个能够高度复用的共享服务并不容易,在落地过程中,经常会有一系列的问题困扰着我们。我们事先对服务的边界没有进行很好的划分,结果在落地的过程中,大家反复争论具体功能的归属。由于对业务的了解不够深入,我们要么设计不足,导致同一个服务有很多版本;要么服务过度设计,实现了一堆永远用不上的功能。对于落地一个共享服务来说,服务边界的划分和功能的抽象设计是核心。服务边界原创 2020-06-12 21:23:42 · 471 阅读 · 0 评论 -
这可能是把MyBatis缓存特性讲的最清楚的一篇文章了
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub一、缓存简介一般我们在系统中使用缓存技术是为了提升数据查询的效率。当我们从数据库中查询到一批数据后将其放入到混存中(简单理解就是一块内存区域),下次再查询相同数据的时候就直接从缓存中获取数据就行了。这样少了一步和数据库的交互,可以提升查询的效率。但是一个硬币都具有两面性,缓存在带来性能提升的同时也“悄悄”引入了很多问题,比如缓存同步、缓存失效、缓存雪崩等等。当然这些问题不是本文讨论的重点。本文主要讨论My原创 2020-06-11 20:56:12 · 141 阅读 · 0 评论 -
程序员职场小技巧:每天工作那么多事,如何安排事务的优先级?
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub我们在日常工作中,总会这样感慨:事情,是干不完的。既然干不完,那我们就要分清轻重缓急,哪个重要,哪个不重要,给它们划分一个优先级,这样不至于让自己手忙脚乱。能给手头的事情排上正确的优先级,是一项很重要的工作能力。当然,我们在生活和学习中,事情也可能不少。但是和工作中的优先级相比,生活和学习里的事情是我们自己的事情,只要安排得让我们自己满意就可以了。在工作中,事情的优先级的标准,是要让公司受益,让老板满意,让原创 2020-06-10 21:36:09 · 998 阅读 · 0 评论 -
趣操作,Tomcat如何实现一键式启停?
最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请移步GitHub首先我们通过一张简化的类图来回顾一下,从图上你可以看到各种组件的层次关系,图中的虚线表示一个请求在 Tomcat 中流转的过程。上面这张图描述了组件之间的静态关系,如果想让一个系统能够对外提供服务,我们需要创建、组装并启动这些组件;在服务停止的时候,我们还需要释放资源,销毁这些组件,因此这是一个动态的过程。也就是说,Tomcat 需要动态地管理这些组件的生命周期。在我们实际的工作中,如果你需要设计一个.原创 2020-06-09 20:36:41 · 304 阅读 · 0 评论