程序员
文章平均质量分 77
Java世界上最好的语言
学习Java不秃头
展开
-
重磅!阿里首推内部“SpringCloudAlibaba项目文档”这细节讲解,神了!
Spring Cloud Alibaba为分布式应用开发提供了一站式解决方案。它包含开发分布式应用程序所需的所有组件,可以轻松地使用Spring Cloud开发应用程序。使用Spring Cloud Alibaba,只需添加一些注解和少量配置,即可将Spring Cloud应用连接到Alibaba的分布式解决方案中,并使用Alibaba中间件构建分布式应用系统。正是基于这些原因,我们有必要来学习SpringCloud Alibaba技术。那如何学习呢?市面上对于SpringCloud Alibaba原创 2021-05-12 17:12:52 · 117 阅读 · 0 评论 -
Java 数据结构源码探究(一)—— ArrayList
线性表—— 顺序存储结构线性表 顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。Java ArrayList对象的定义/** * Resizable-array implementation of the List interface */public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, C转载 2021-05-09 20:31:47 · 100 阅读 · 1 评论 -
带你学RocketMq——消息的存储源码分析!
我们设计一个消息的存储服务器,首先会现在内存里一块内存缓冲区,但是内存缓存有限,所以需要定时把消息刷到磁盘或者数据库等持久化介质中。如果存在磁盘中的文件,一个文件肯定是不行的,就算存没问题,那么检索也会超级耗时,过期消息的清理也很麻烦,所以消息需要多文件的存储。 RocketMq就是内存+多文件的存储,每个Broker对应一个MessageStore,专门用来存储接收到的消息。MessageStore只是存储的一个抽象,MessageStore里保存着一个CommitLog,CommitLog维护了一...转载 2021-05-08 22:05:11 · 152 阅读 · 2 评论 -
基于springboot工程做mybatis框架的整合实现
整合MyBatis的初步分析概述Mybatis是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互。并在JDBC操作的基础上做了封装和优化,它借助灵活的SQL定制,参数及结果集的映射方式,更好的适应了当前互联网技术的发展。Mybatis框架的简单应用架构如图所示:在当今的互联网应用中项目,mybatis框架通常会由spring框架进行资源整合,作为数据层技术实现数据交互操作。准备工作第一步:创建项目module,例如:第二步:添加依赖mysql 驱动依赖<dependency转载 2021-02-06 10:29:48 · 289 阅读 · 0 评论 -
Spring Boot 接口如何做限流?面试官问起如何作答
阅读目录:1. 前言2. 算法介绍-计数器法3. 算法介绍-滑动窗口4. 算法介绍-漏桶算法5. 算法介 绍-令牌桶算法前言在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。本篇文章将会介绍一下常用的限流算法以及他们各自的特点。算法介绍计数器转载 2021-02-05 14:24:26 · 305 阅读 · 0 评论 -
Tomcat配置以及如何在Eclipse中启动
如何安装和配置Tomcat8Apache Tomcat是目前最常见和流行的基于java的web容器。在本文中,我将向您展示如何安装tomcat8并调整配置文件。Tomcat的主要优点是占地面积小,配置简单,社区参与历史悠久。通常,开发人员可以在5到10分钟(包括tomcat下载时间)内启动并运行一个功能强大的Tomcat安装。Tomcat只需要很少的开箱即用配置就可以在开发机器上运行良好,但是它也可以进行显著的调优,以便在高负载、高可用性的生产环境中运行良好。您可以创建大型Tomcat集群来可靠地处理转载 2021-02-04 14:33:42 · 4937 阅读 · 0 评论 -
面试官:Spring 创建Bean 时是怎样判断条件的?
我们在 Spring/ Spring Boot Starter 或者一些框架的源码里经常能看到类似如下的注解声明,可能作用在类上,也可能在某个方法上:@ConditionalOnProperty(name = "spring.cloud.refresh.enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.atlas", name = "enabled", havingV转载 2021-02-03 15:15:42 · 189 阅读 · 0 评论 -
JVM类加载与双亲委派机制被打破
前言前文已经讲了虚拟机将java文件编译成class文件后的格式: JVM虚拟机Class类文件研究分析java文件经过编译,形成class文件,那么虚拟机如何将这些Class文件读取到内存中呢?加载的时机JVM 会在程序第一次主动引用类的时候加载该类,被动引用时并不会引发类加载的操作。也就是说,JVM 并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。一个类的生命周期如图所示:上图中的加载、验证、准备、初始化、卸载这几个步骤是相转载 2021-02-02 15:03:30 · 203 阅读 · 0 评论 -
SpringBoot 如何解决项目启动时初始化资源
前言:在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资源操作。这个神器就是 CommandLineRunner,CommandLineRunner 接口的 Component 会在所有 Spring Beans 都初始化之后,SpringApplication.run() 之前执行,非常适合在应用程序启动之初进行一些数据初始化的工作。正文:接下来.转载 2021-02-01 16:40:47 · 130 阅读 · 1 评论 -
SpringSecurity实战:分布式对象“可共享对象”
1. 前言我们对 AuthenticationManager 的初始化的细节进行了分析,其中里面有一段代码引起了不少同学的注意:ApplicationContext context = http.getSharedObject(ApplicationContext.class); CaptchaAuthenticationProvider captchaAuthenticationProvider = context.getBean("captchaAuthenticatio转载 2021-01-28 10:15:46 · 220 阅读 · 0 评论 -
SpringBoot 轻松整合 RocketMq,得劲
前言使用Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以。提示:以下是本篇文章正文内容,下面案例可供参考一、技术介绍1.消息队列是什么?消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。2.RocketMq是什么?RocketMQ 是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式的特点。它是一个采用 Jav转载 2021-01-27 11:42:15 · 243 阅读 · 0 评论 -
应届双非一本水硕,杭州三面字节,等hr面,虐慌!分享面经和刷过的面试题
头脑发热,四肢发凉,恍恍惚惚,面试字节跳动,base杭州,经过123面,为大家送上半凉面经……作为一名无实习,双非一本水硕的应届生,好不容易求得一个字节的面试,将面试经历分享给大家,焦急等结果中…………前后大概面了一个月,太长了,不按123面的顺序写了,想起什么写什么。(PS:有没有大佬告知一下,三面算法题只给了个思路能过吗…问题基本答上来了)JAVA基础:1. hashMap put的过程2. concurrentHashMap 扩容,为什么是线程安全的3. 线程池,七大参数,底层怎么实现原创 2021-01-25 17:18:55 · 276 阅读 · 2 评论 -
乐观锁这么重要,看我们如何2步手动实现(极其重要,面试必问)
java多线程中的锁分类多种多样,其中有一种主要的分类方式就是乐观和悲观进行划分的。这篇文章主要介绍如何自己手写一个乐观锁代码。不过文章为了保证完整性,会从基础开始介绍。一、乐观锁概念说是写乐观锁的概念,但是通常乐观锁和悲观锁的概念都要一块写。对比着来才更有意义。1、悲观锁概念悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞,直到它拿到锁。比如 synchronized 就是一个 悲观锁&nb转载 2021-01-25 10:49:07 · 188 阅读 · 0 评论 -
基础必看——深入了解gradle和maven的区别
深入了解gradle和maven的区别gradle和maven都可以用来构建java程序,甚至在某些情况下,两者还可以互相转换,那么他们两个的共同点和不同点是什么?我们如何在项目中选择使用哪种技术呢?一起来看看吧。gradle和maven的比较虽然gradle和maven都可以作为java程序的构建工具。但是两者还是有很大的不同之处的。我们可以从下面几个方面来进行分析。可扩展性Google选择gradle作为android的构建工具不是没有理由的,其中一个非常重要的原因就是因为gradle够灵活。转载 2021-01-21 11:11:34 · 1164 阅读 · 0 评论 -
SpringBoot 之配置全局异常处理器捕获异常
1.前言任何系统,我们不会傻傻的在每一个地方进行异常捕获和处理,整个系统一般我们会在一个的地方统一进行异常处理,spring boot全局异常处理很简单;介绍前先说点题外话,我们现在开发系统,都是前后端完全分离的,后端只提供RESTfull API,禁止涉及任何界面,什么thymeleaf、JSP那些后端模板,是绝对禁止使用的,那些东西请扔垃圾箱,不要浪费大好青春去研究,那是堕落;前端则负责界面相关,常用Vue;如果公司还没前后端分离,还在thymeleaf还在前后端一起写,那你还是早做跳槽打算吧,他.转载 2021-01-20 10:07:32 · 400 阅读 · 0 评论 -
带着源码做项目实践,妥妥的干货——java开发贪食蛇小游戏
一、实验内容1、实现贪吃蛇游戏基本功能,屏幕上随机出现一个“食物”,称为豆子,上下左右控制“蛇”的移动,吃到“豆子”以后“蛇”的身体加长一点,得分增加,“蛇”碰到边界或,蛇头与蛇身相撞,蛇死亡,游戏结束。为游戏设计初始欢迎界面,游戏界面,游戏结束界面。二、贪食蛇游戏逻辑架构三、贪食蛇开发流程1、准备开发环境(1)打开eclipse。图片音频resource链接: https://pan.baidu.com/s/1nm_v…提取码: jfdv2、设计游戏图纸3、画出白布窗口frame转载 2021-01-19 10:07:07 · 224 阅读 · 0 评论 -
SpringBoot中的异步任务、邮件以及定时任务
异步任务背景在我们的业务处理中,比如处理完成需要3s才能完成,但是我们需要如果要让用户等3s,则体验非常差,所以我们采用异步的方式去处理,可以通过线程池来处理 ,但是还要写线程,而springboot中已经默认提供了这种能力 ,我们只要开启即可使用。具体使用创建项目我们只要创建一个基本的springboot项目,然后只要添加web的依赖即可。<dependency> <groupId>org.springframework.boot</groupId&g转载 2021-01-18 10:45:12 · 131 阅读 · 0 评论 -
2021,大厂架构师纯手写【MySQL面试笔记】重出江湖,锤爆38K月薪,你值得拥有
MySQL 作为主流的数据库,是各大厂面试官百问不厌的知识点,但是需要了解到什么程度呢?仅仅停留在 建库、创表、增删查改等基本操作的水平可不够。在面试后端开发的时候,一连几个问题,简直会被问到一脸懵逼。MySQL 语句怎么优化?分库,分表都适合哪些场景?讲讲 InnoDB 如何使用 B+ 树存储的?一般来说,准备 MySQL 面试 ,无非要从这几块进行准备:查询、存储、事务、锁和性能调优。不少朋友苦于搜集资料耗时耗力,很难 cover 住面试官的考核角度。为了能让大家在准备面试时少走弯路,这里特别熬原创 2021-01-15 15:06:42 · 182 阅读 · 0 评论 -
2021,大厂架构师纯手写MySQL面试笔记,重出江湖,锤爆38K月薪,你值得拥有
MySQL 作为主流的数据库,是各大厂面试官百问不厌的知识点,但是需要了解到什么程度呢?仅仅停留在 建库、创表、增删查改等基本操作的水平可不够。在面试后端开发的时候,一连几个问题,简直会被问到一脸懵逼。MySQL 语句怎么优化?分库,分表都适合哪些场景?讲讲 InnoDB 如何使用 B+ 树存储的?一般来说,准备 MySQL 面试 ,无非要从这几块进行准备:查询、存储、事务、锁和性能调优。不少朋友苦于搜集资料耗时耗力,很难 cover 住面试官的考核角度。为了能让大家在准备面试时少走弯路,这里特别熬原创 2021-01-15 15:07:38 · 108 阅读 · 0 评论 -
腾讯员工大夸鹅厂,工作4年,年薪21W到150W,网友:我可能待的假鹅厂
世界著名实业家、哲学家稻盛和夫说过:要想度过一个充实的人生,只有两种选择:一种是“从事自己喜欢的工作”,另一种是“让自己喜欢上工作”。工作不是一种消费,而是一种投资,只有爱上了自己的工作,才能给自己的未来增值。近日,某位腾讯员工在职场论坛脉脉上大肆夸赞了鹅厂一番,引发网友们的热议。到底是怎么回事呢?原贴如下:楼主表示自己所在岗位是腾讯PCG,资产过千万。如果不去确认真假,单看文字,也是令网友羡慕不已。@爱奇艺员工:股票涨幅可观呀@luyizhan:3真足以让公司牛逼,就这一条足以也有人认转载 2021-01-14 21:22:47 · 559 阅读 · 0 评论 -
搞懂这道百度面试题:Spring 中 Bean 的生命周期
前言这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了《Spring in action》这本书,书上有对Bean声明周期的大致解释,但是没有代码分析,所以就自己上网寻找资料,一定要把这个Bean生命周期弄明白! 网上大部分都是验证的Bean 在面试问的生命周期,其实查阅JDK还有一个完整的Bean生命周期,这同时也验证了书是具有片面性的,最fresh 的资料还是查阅原始JDK!!!一、Bean 的完整生命周期转载 2021-01-14 16:43:16 · 195 阅读 · 0 评论 -
一文带你了解数据库隔离级别和锁之间的联系
前言隔离级别和数据库锁之间有什么关联呢本文就和大家聊聊这两者之间的联系,希望对大家有帮助!聊聊两者之间的联系在具体聊之前,咱先记住一句话: 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别。首先来了解下有哪四种隔离级别读未提交:(Read Uncommitted)读已提交(Read Committed) 大多数数据库默认的隔离级别重复读(Repeatable-Read) mysql数据库所默认的级别序列化(serializable)四种转载 2021-01-13 15:09:26 · 218 阅读 · 0 评论 -
毕设、实战练习——springboot 搭建访客管理系统
项目介绍springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给予不同部门的管理层使用,用户管理可以增加/修改内部成员的基本信息,需要到访的人员必须通过进入程序,在访客预约里面提交预约申请,预约后管理员可查询预约记录以及访客出入记录。项目适用人群正在做毕设的学生,或者需要项目实战练习的Java学习者开发环境jdk 8intellij ideatomcat 8.5.40mysql 5.7所用技术springbootmybat转载 2021-01-11 21:37:54 · 287 阅读 · 0 评论 -
年末回顾手撕Java面试知识体系:基础+缓存+框架+微服务+MQ+性能优化+Dubbo等
随着Java框架的逐渐成熟,其功能越来越强大,使用越来越简便,其使用范围越来越广,使用人数也越来越多。Java在带来方便的同时,无形中也带了不便,作为软件开发的王牌语言,各企业对Java程序员的要求也不断的提升,所以,求职面试成了Java程序员们最头疼又不得不面对的现实。为了给广大Java程序员面试提供最贴心的指导,作者搜集整理了大量Java程序员面试的资料并整理出的文档,希望能对广大Java程序员的面试具有一定的指导意义。求职者在面试中的常见问题 同样作为软件开发出身的我,身边有朋友,也有同事。在和他们原创 2021-01-11 21:15:21 · 84 阅读 · 0 评论 -
Java内存泄漏检测库LeakCanary介绍,了解?
LeakCanary:Android和Java的内存泄漏检测库。java.lang.<a href="http://javakk.com/tag/outofmemoryerror" title="查看更多关于 OutOfMemoryError 的文章" target="_blank">OutOfMemoryError</a> at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2) at andr转载 2021-01-08 10:33:36 · 245 阅读 · 0 评论 -
金三银四有点慌?Redis面试受阻?GiT好评,阿里核心笔记/实战书籍/面试专题/脑图助你轻松上岸
作为同时具备高性能、高可靠和高可扩展性的典型键值数据库,Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选。众多大厂在招聘的时候,不仅会要求面试者能简单地使用Redis,还要能深入地理解底层实现原理,并且具备解决常见问题的能力。可以说,熟练掌握Redis已经成为了技术人的一个必备技能。但是,在学习和使用Redis的过程中,总不可避免地遇见一些棘手的问题,比如:Redis的key和数据结构应该怎么设计?有什么最佳实践?Redis集群如何均衡数据?又如何横向扩展?怎么保证数据的一原创 2021-01-07 21:35:51 · 87 阅读 · 1 评论 -
Java面试必考题——ArrayList常见知识点
写在之前对于ArrayList的面试题目网上比较多,但是大多数从ArrayList的数据结构出发,比如查找、修改的等效率问题分析,本篇文章想从并发的角度入手,给大家讲讲ArrayList的并发问题该如何回答。面试回顾通常容器之类的问题由于比较基础,一般在一面考察的比较多,同时这也成为决定能否进入二面的关键因素。面试官:我看你简历上面写能够熟练掌握Java基础知识,平时有使用过哪些容器呢?我:面试官您好,一般工作中使用的比较多的有ArrayList、LinkedList、HashSet、hashMa转载 2021-01-07 15:47:43 · 154 阅读 · 0 评论 -
学不会JVM?那是你没有将这些资料收入囊中,盘它,好吗!
为什么 JVM 在 Java 中如此重要?首先你应该知道,运行一个 Java 应用程序,我们必须要先安装 JDK 或者 JRE 包。这是因为 Java 应用在编译后会变成字节码,然后通过字节码运行在 JVM 中,而 JVM 是 JRE 的核心组成部分。JVM 不仅承担了 Java 字节码的分析(JIT compiler)和执行(Runtime),同时也内置了自动内存分配管理机制。这个机制可以大大降低手动分配回收机制可能带来的内存泄露和内存溢出风险,使 Java 开发人员不需要关注每个对象的内存分配以及回收原创 2021-01-06 17:20:49 · 72 阅读 · 1 评论 -
2021最新出炉的,Java程序员极力推荐的springboot全家桶干货系列
最近,在某平台收到读者反馈,希望能整理出一些有关spring的干货,主要是springboot有关的面试题和书籍,所以,应广大爱学习人士的需求,网罗了一些资料,并将这些资料分享给更多有需要的人。高频面试题:1、什么是 Spring Boot?2、Spring Boot 有哪些优点?3、什么是 JavaConfig?4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?5、Spring Boot 中的监视器是什么?6、如何在 Spring Boot 中禁用 Actuator原创 2021-01-06 15:18:26 · 249 阅读 · 1 评论 -
备战金三银四,年薪80W,捶爆阿里P7,简历、实战、源码、图文并茂,这些资料绝了!
前言最近经常有人问我要学习路线图,趁着有空,整理出来了,包括学习路线图和一些相关的学习资料见下文,由于图片被压缩,可能导致看不清,需要原图和相关学习资料的朋友,见文末获取~概略:细节展示架构师筑基必备技能大厂必问并发编程技术相关学习资料:JVM深度剖析相关学习资料:网络编程与高效IO、mysql高度进阶、深入tomcat底层、算法与数据结构等相关学习资料:设计思想解读开源框架相关学习资料:由于压缩,图片相对模糊,也因为篇幅原因,资料仅展示相关目录截图,需.原创 2020-12-29 14:34:47 · 236 阅读 · 0 评论 -
Strings=newString(“xyz“)创建几个实例
从面试题说起String s = new String("xyz"); 创建了几个实例?这是一道很经典的面试题,在一本所谓的Java宝典上,我看到的“标准答案”是这样的:两个,一个堆区的“xyz”,一个栈区指向“xyz”的s。这个所谓的“标准答案”槽点太多,后面我们慢慢分析。虽然答案很离谱,但是我觉得这个问题本身也不具有什么意义,因为问题没有既定义“创建”的具体含义,又没有指定“创建”的时间,是运行时吗?包不包括类加载的时候?有没有上下文代码语境?也没有定义实例是指什么实例,是指Java实例吗转载 2020-12-28 14:22:25 · 1522 阅读 · 0 评论 -
「mybatis-plus」主键id生成、字段自动填充
一、主键id的生成数据库表里通常都会有一个主键id,来作为这条数据的唯一标识。常见的方式数据库自动增长这种很常见了,可以做到全库唯一。因为id是天然排序的,对于涉及到排序的操作会很方便。UUID上面的自动增长,虽然简单,但是对于分表这样的操作来说就比较麻烦。因为你在第二张插入数据的时候,需要拿到上一张表最后一个数据的id。UUID则不同,每次都一个随机唯一的值,不过因为是随机,所以也就没有排序了。redisredis也可以用来生成id,利用redis的原子操作。好处是可以不依赖数据库,性能好,但转载 2020-12-25 15:32:55 · 9675 阅读 · 0 评论 -
优雅的讲解JAVA操作数据库方式与设计模式应用
1. 在业务层使用JDBC直接操作数据库-最简单,最直接的操作1)数据库url,username,password写死在代码中Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; String user="scott"; String password="tiger"; Connecti.转载 2020-12-24 14:15:21 · 181 阅读 · 0 评论 -
太牛了吧!!阿里开源爆款源码笔记,已拿蚂蚁金服Java岗P6 Offer (spring+MyBatis+SpringBoot+Kafka源码笔记)
小伙伴一直叨叨要跳槽,大大小小的公司面试了很多,但总没有拿到一个满意的offer,要么package太低,要么就是面试被虐。经过前几次的面试失利,终于明白了什么叫基础不牢,地动山摇。面试官随便针对一个知识点深入考察一下,就回答不出来,就这样,还怎么能通过面试?不过,最近收到了小伙伴的捷报,已拿到蚂蚁金服的offer,公司足够大,base还可以,虽然是个P6,但还是隐隐感觉到他很满意。其实,我还是有点疑惑,他之前的基础很一般,咋就突然拿到了蚂蚁的offer。后来没忍住,问他:“你最近都干啥了,阿里面试都问原创 2020-12-23 11:17:53 · 455 阅读 · 0 评论 -
漫谈一下 SpringBoot 的起步依赖和自动配置
起步依赖什么是起步依赖在没有SpringBoot之前,如果要使用Spring开发一个web工程,我们需要怎么做呢?首先,我们需要添加Spring、SpringMVC的框架的依赖,有时还需要考虑这些依赖间的版本兼容性,我们pom.xml文件看起来往往是这样的。<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId&g转载 2020-12-23 10:48:34 · 144 阅读 · 0 评论 -
吾日三省吾身——ThreadLocal深入剖析
一、学习目标1、ThreadLocal能解决什么问题?2、ThreadLocal相比synchronized、volatile的优势在哪里?synchronized:在并发量小的情况下还好,如果并发量较大时,会有大量的线程等待同一个对象锁,会造成系统吞吐量直线下降。volatile:修饰的变量不保留拷贝,直接访问主内存,主要用于一写多读的场景ThreadLocal:给每一个线程都创建变量的副本,保证每个线程访问都是自己的副本,相互隔离,就不会出现线程安全问题二、ThreadLocal的使用转载 2020-12-22 10:29:11 · 129 阅读 · 0 评论 -
重磅来袭!腾讯前晚最新爆出的“JVM学习笔记”,看完我慕了!!
前言“JVM”,一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。有了JVM后,Java语言在不同平台上运行时不需要重新编译,为我们提供了极大的便利性,现在在面试当中“JVM”相关的知识是必问的,可见现在互联网企业对JVM的重视性。就在昨晚,腾讯爆出内部锻造已久的“JVM学习笔记”,一经流出,GitHub上受各路大神点赞好评,我也是熬夜啃完后,就立马入榜我的年度最爱笔记之一!我也是第一时间赶快分享给大家,需要完整版的朋友,点击这里下载JVM学习笔记概述第一部分、带你原创 2020-12-19 22:24:37 · 92 阅读 · 1 评论 -
朋友从阿里离职,“偷偷”带走了这四套全彩版并发编程手册,我已经悄咪咪的看完了!
Java并发编程作为Java开发当中极其重要的一部分,是每位开发者必看、必学、必会的一部分知识,今天我们就来学习阿里巴巴要求其内部程序员必须去学习的一套Java并发变成笔记,这套笔记从原理、模式、应用三套笔记,外加一份并发编程和PDF来深入学习并发编程~!原理篇如若你也需要学习这四套笔记,麻烦帮忙一键三连,点击这里模式篇如若你也需要学习这四套笔记,麻烦帮忙一键三连这篇文章,然后 点击这里应用篇Java并发编程实践总结如果你正在编写或者设计、调试、维护、研究一多原创 2020-12-17 17:25:35 · 253 阅读 · 12 评论 -
Java中读写锁的设计以及实现,不懂进来
针对读多写少的场景,Java提供了另外一个实现Lock接口的读写锁ReentrantReadWriteLock(RRW),之前分析过ReentrantLock是一个独占锁,同一时间只允许一个线程访问。而 RRW 允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。读写锁内部维护了两个锁,一个是用于读操作的ReadLock,一个是用于写操作的 WriteLock。读写锁遵守以下三条基本原则允许多个线程同时读共享变量;只允许一个线程写共享变量;如果一个写线程正在执行写操作,此时禁转载 2020-12-17 15:47:29 · 139 阅读 · 1 评论 -
【JAVA】跳槽必备《Java核心知识点笔记》——JVM+并发编程+数据结构+算法+数据库及分布式事务+设计模式
不知道大家在面试中有没有这种感觉:面试官通常会在短短两小时内对面试者的知识结构进行全面了解,面试者在回答问题时如果拖泥带水且不能直击问题的本质,则很难充分表现自己,最终影响面试结果。针对这种情况,这份阿里架构师纯手打的Java核心知识点笔记应运而生!这份笔记在讲解知识点时不拖泥带水,力求精简,详细介绍了Java程序员面试时常被问及的核心知识点。这份笔记总共九大部分,涵盖了Java开发1年到Java架构师层面的面试知识点总结,作者承诺:这份笔记100%免费获取!因为这份笔记的知识点太多,小编没办法为大家原创 2020-12-11 21:57:12 · 80 阅读 · 0 评论