自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java高级教程、Java架构师、Java进阶教程

HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka

  • 博客(134)
  • 收藏
  • 关注

原创 Redis最全解析,保姆式教学

—1—Redis简介Redis 是C语言开发的一个开源高性能键值对的 内存数据库 ,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL(not-only sql,非关系型数据库)的数据库—2—Redis特点优秀的性能,数据是存储在内存中,读写速度非常快,可支持并发10W QPS单线程但进程,是线程安全的,采用IO 多路复用制可作为分布式锁支持五种数据类型支持数据持久化到磁盘可以作为消息中间件使用,支持消息发布及订阅对于学习Java还有相关的一切疑惑与难

2022-05-07 15:06:25 422

原创 架构师必备:Redis的几种集群方案

结论有以下几种Redis集群方案,先说结论:Redis cluster:应当优先考虑使用Redis cluster。codis:旧项目如果仍在使用codis,可继续使用,但也推荐迁移到Redis cluster。twemproxy:不建议使用,与codis同为proxy方案,但不如codis(twemproxy不能平滑地扩容)。客户端分片:应当禁止使用,因为扩容复杂,如果2个服务同时读写,其中一个修改了路由,另一个不修改会有问题。下面重点介绍Redis cluster和codis。对于学

2022-05-07 15:04:40 2365

原创 轻松搭建Dubbo架构体系,你也能成为一流架构师

基于Dubbo架构体系,拿来即用,毫无任何杂糅的组件,可以基于此作为Dubbo分布式微服务的脚手架。dubbo-admin地址为:https://github.com/apache/dubbo-admin官方文档:https://github.com/apache/dubbo-admin/blob/develop/README_ZH.md注意需要安装Zookeeper(因为Dubbo使用Zookeeper作为注册中心)一定要把dubbo-admin中的duboo-admin-server运行起来

2022-05-07 14:58:48 1166

原创 从0到1详解ZooKeeper的应用场景及架构原理

导语 | ZooKeeper作为Apache的顶级开源项目,基于Google Chubby开源实现,在Hadoop、Hbase、Kafka等技术中充当核心组件的角色。虽然历史悠久,但就像陈酿一样,其设计思想和实现不论何时还是值得仔细学习和品味。作者在参考和阅读相关文章时,浩如烟海的文章经常东一榔头,西一棒槌,使得学习者不得不花费大量的精力去查找学习, 因此有了总结一篇全面文章的想法。一、背景(一)后台系统由集中式发展为分布式随着计算机系统的规模越来越大,业务量的迅速提升和互联网的爆炸式增长,集中式

2022-05-07 14:57:14 2199

原创 Java难题解决之:安全框架Shiro和Spring Security对比

Shiro简介Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。Shiro架构与功能介绍1.认证与授权相关基本概念两个基本的概念安全实体:系统需要保护的具体对象数据权限:系统相关的功能操作,例如基本的CRUDAuthentication: 认证。即验证是哪个用户登录。Authorization:也被称为访问控制,即决定当前登录用

2022-05-06 15:19:43 733

原创 工作8年的程序员感慨:final、finally、finalize面试这么卷?

面试题:final、finally、finalize的区别面试考察点考察目的: 了解求职者对Java基础的了解。考察范围: 工作1-3年的Java程序员。好友添加:huany6880 加入资深Java学习交流圈,并有系统整理了一套java初学/进阶者最佳的学习方法以及路 线图大纲,Java各核心知识点、架构主流技术资料/源码以及最新大厂面试题定期更新!背景知识final/finally在工作中几乎无时无刻不再使用,因此即便是没有系统化的梳理这个问题,也能回答出一些内容。但是finali.

2022-04-25 17:30:43 225

原创 阿里java面试官问:写一个你认为最好的单例模式?怒写了7个

面试题:写一个你认为最好的单例模式面试考察点考察目的: 单例模式可以考察非常多的基础知识,因此对于这种问题,很多面试官都会问。 小伙伴要注意,在面试过程中,但凡能够从多个维度考察求职者能力的题目,一定不会被抛弃,特别是比较泛的问题,比如: ”请你说说对xxx的理解“之类。考察范围: 工作1到5年经验,随着经验的提升,对于该问题的考察深度越深。好友添加:huany6880 加入资深Java学习交流圈,并有系统整理了一套java初学/进阶者最佳的学习方法以及路 线图大纲,Java各核心知识点、架构.

2022-04-25 17:25:21 378 1

原创 工作8年,第一次这么清醒的理解final关键字?面试官都服了

面试题:用过final关键字吗?它有什么作用面试考察点考察目的: 了解面试者对Java基础知识的理解考察人群: 工作1-5年,工作年限越高,对于基础知识理解的深度就越高。好友添加:huany6880 加入资深Java学习交流圈,并有系统整理了一套java初学/进阶者最佳的学习方法以及路 线图大纲,Java各核心知识点、架构主流技术资料/源码以及最新大厂面试题定期更新!背景知识final关键字大家都不陌生,但是要达到深度理解,还是欠缺了一些。我们从三个方面去理解final关键字。fin.

2022-04-25 17:24:05 154

原创 Java面试内卷,这份阿里内部10W字简直江湖救急

看到标题肯定好多小伙伴疑惑“内卷”是什么意思?**内卷:**内卷很简单的理解就是学生时期的课代表。你和你同学每天放学花一小时就做完了作业,剩下了三小时的游戏时间。你的课代表为了好好表现,做了一小时作业后,还花了一小时预习了一下,剩下了两小时游戏时间。老师听说了,鼓励了课代表,并在班级上表扬了他。第一次月考,你们大部分从90分进步到了95分。而课代表从90分到了100分,到了第一。(其实言简意赅就是花最少的时间选择最直接的资料掌握最多的知识)朋友圈 输入:huany6880 添加冠亦老师 对于

2022-04-18 19:18:03 1363 1

原创 几乎涵盖你需要的 Spring Boot 所有操作

SpringBoot目前的使用已经很普遍了,实际的项目中,我们需要集成各种的插件支持,不仅如此,还有很多可能我们平时不知道,但是很方便的操作。pdf里面的东西还是比较全面的。以下是pdf的目录,由于目录过长,所以只截图一部分。中间还有很多目录…对于学习Java还有相关的一切疑惑与难题,皆可随时私信我咨询,朋友圈 输入:huany6880 本人接触Java语言将近20年时间,敢说自己对于Java的了解是精通的水平,如能尽自己的绵薄之力为大家提供一些微薄的帮助,不胜荣幸。另外还有专属IT编程就

2022-04-18 19:15:33 500

原创 Java入门到架构师知识点整理 | Java核心类 | StringBuilder

Java编译器对String做了特殊处理,使得我们可以直接用+拼接字符串。考察下面的循环代码:String s = "";for (int i = 0; i < 1000; i++) { s = s + "," + i;}虽然可以直接拼接字符串,但是,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。这样,绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率。为了能高效拼接字符串,Java标准库提供了StringBuilder,它是一个可变对象,可以预分配缓冲

2022-04-16 15:13:19 133

原创 Java入门到架构师知识点整理 | Java核心类 | 字符串和编码

String在Java中,String是一个引用类型,它本身也是一个class。但是,Java编译器对String有特殊处理,即可以直接用"..."来表示一个字符串:String s1 = "Hello!";实际上字符串在String内部是通过一个char[]数组表示的,因此,按下面的写法也是可以的:String s2 = new String(new char[] {'H', 'e', 'l', 'l', 'o', '!'});因为String太常用了,所以Java提供了"..."这种字

2022-04-16 15:12:16 208

原创 Java入门到架构师知识点整理 | 面向对象基础 | 模块

从Java 9开始,JDK又引入了模块(Module)。什么是模块?这要从Java 9之前的版本说起。我们知道,.class文件是JVM看到的最小可执行文件,而一个大型程序需要编写很多Class,并生成一堆.class文件,很不便于管理,所以,jar文件就是class文件的容器。在Java 9之前,一个大型Java程序会生成自己的jar文件,同时引用依赖的第三方jar文件,而JVM自带的Java标准库,实际上也是以jar文件形式存放的,这个文件叫rt.jar,一共有60多M。如果是自己开发的程序,除

2022-04-16 14:46:44 434

原创 Java入门到架构师知识点整理 | 面向对象基础 | classpath和jar

在Java中,我们经常听到classpath这个东西。网上有很多关于“如何设置classpath”的文章,但大部分设置都不靠谱。到底什么是classpath?classpath是JVM用到的一个环境变量,它用来指示JVM如何搜索class。因为Java是编译型语言,源码文件是.java,而编译后的.class文件才是真正可以被JVM执行的字节码。因此,JVM需要知道,如果要加载一个abc.xyz.Hello的类,应该去哪搜索对应的Hello.class文件。所以,classpath就是一组目录的集合

2022-04-16 14:45:51 134

原创 Java入门到架构师知识点整理 | 面向对象基础 | 内部类

在Java程序中,通常情况下,我们把不同的类组织在不同的包下面,对于一个包下面的类来说,它们是在同一层次,没有父子关系:java.lang├── Math├── Runnable├── String└── ...还有一种类,它被定义在另一个类的内部,所以称为内部类(Nested Class)。Java的内部类分为好几种,通常情况用得不多,但也需要了解它们是如何使用的。Inner Class如果一个类定义在另一个类的内部,这个类就是Inner Class:class Outer {

2022-04-16 14:38:46 101

原创 Java入门到架构师知识点整理 | 面向对象基础 | 作用域

在Java中,我们经常看到public、protected、private这些修饰符。在Java中,这些修饰符可以用来限定访问作用域。public定义为public的class、interface可以被其他任何类访问:package abc;public class Hello { public void hi() { }}上面的Hello是public,因此,可以被其他包的类访问:package xyz;class Main { void foo() {

2022-04-15 15:52:19 143

原创 Java入门到架构师知识点整理 | 面向对象基础 | 包

在前面的代码中,我们把类和接口命名为Person、Student、Hello等简单名字。在现实中,如果小明写了一个Person类,小红也写了一个Person类,现在,小白既想用小明的Person,也想用小红的Person,怎么办?如果小军写了一个Arrays类,恰好JDK也自带了一个Arrays类,如何解决类名冲突?在Java中,我们使用package来解决名字冲突。Java定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名

2022-04-15 15:51:29 169

原创 Java入门到架构师知识点整理 | 面向对象基础 | 静态字段和静态方法

在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。还有一种字段,是用static修饰的字段,称为静态字段:static field。实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有实例都会共享该字段。举个例子:class Person { public String name; public int age; // 定义静态字段number: public sta

2022-04-15 15:50:34 149

原创 Spring Boot 有哪些核心内容?

之前整理了一些SpringBoot知识点及笔记,碰巧遇到这个问题,觉着这么好的东西就应该拿出来给大家分享一起学习!SpringBoot如何学?说到如何学习SpringBoot,小编这里有一份SpringBoot的核心知识点的笔记,关于SpringBoot的学习分成了八个部分:Spring Boot入门配置文件日志Web开发DockerSpringBoot与数据访问启动配置原理自定义starter更多SpringBoot整合示例整体总目录由于篇幅原因,为了不影响阅读,在这展示了

2022-04-14 19:06:00 845 1

原创 Java零基础可以直接入门spring boot吗?

不推荐。一般学习的路线是java基础,然后数据库,接着是spring,了解spring的核心思想,再学springmvc,之后才学springboot。什么是Spring BootSpring Boot 是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度和简化 Spring 框架复杂的XML配置。使用 Spring Boot 可以很容易创建一个独立运行的、基于 Spring 的生产级应用程序,而且Spring Boot 对 S

2022-04-14 19:04:58 3919

原创 会些java知识,然后要学习spring boot大概需要多长时间?

Spring boot要学什么?要学到什么程度?以及相关的学习方法是什么?学习spring boot大概需要多长时间? 每个人的学习能力,每天能花费时间来学习的时间也是不确定的。这些很难量化,但极好形容:需要学到能帮你找到一份工作的程度。任何脱离工作脱离实际的学习,都是没有意义的。比如程序员运行通了很多开源项目,通过各种资料掌握了ioc,aop甚至全栈开发等等很多技术点,假设有100个,但可能真实开发过程中之用到60个,剩下的40个在初级开发阶段基本用不到,要等到高级开发阶段才有可能用到。那么就存在学习浪

2022-04-14 19:03:32 4452

原创 掌握了这 7 种 Spring Boot 吞吐量优化解决方案,感觉我又行了

一、异步执行实现方式二种:1.使用异步注解@aysnc、启动类:添加@EnableAsync注解2.JDK 8本身有一个非常好用的Future类——CompletableFuture@AllArgsConstructorpublic class AskThread implements Runnable{ private CompletableFuture<Integer> re = null; public void run() { int myRe

2022-04-13 19:23:59 1435

原创 面试过阿里P7后,熬夜总结出这100道Java 面试题目以及标准答案

该列表包含了入门级 Java 程序员和多年经验的高级开发者的问题。无论你是 1、2、3、4、5、6、7、8、9 还是 10 年经验的开发者,你都能在其中找到一些有趣的问题。这里包含了一些超级容易回答的问题,同时包含经验丰富的 Java 程序员也会棘手的问题。当然你们也是非常幸运的,当今有许多好的书来帮助你准备 Java 面试,其中有一本我觉得特别有用和有趣的是 Markham 的 Java 程序面试揭秘(Java Programming Interview Exposed)。 这本书会告诉你一些 Java

2022-04-09 19:32:54 1420

原创 从业程序员15年,我惶恐了,2022年Java要没落了吗

根据 JRebel 的报告,这份标志着 JRebel 倡议十周年的新报告,从以下角度审视了 Java 生态系统的状况:微服务的采用和使用趋势CI/CD 构建时间和提交频率流行的框架、应用服务器、虚拟机和其他工具开发人员的整体生产力,包括各种挑战和障碍该报告共收到了 846 份回复,其中一半的受访者是开发人员,占了大多数;其余的则由 Java 架构师、团队领导、总监、顾问和其他人员组成。最重要的是,有 31% 的样本在超过 1000 名员工的大型企业中工作,因此这份报告很好地说明了 Java

2022-04-09 19:29:29 1705

原创 阿里内部资料,10W字总结JAVA面试题-ElasticSearch篇

目录1、谈谈分词与倒排索引的原理3、谈谈你对段合并的策略思想的认识4、了解文本相似度 TF-IDF吗5、能说说ElasticSearch 写索引的逻辑吗?6、熟悉ElasticSearch 集群中搜索数据的过程吗?7、了解ElasticSearch 深翻页的问题及解决吗?8、熟悉ElasticSearch 性能优化9、ElasticSearch 查询优化手段有哪些?10、elasticsearch 是如何实现 master 选举的?11、elasticsearch 索引数据多了怎么办,如

2022-04-02 15:46:17 2584

原创 2022年阿里、腾讯、字节等大厂技术面试题汇总,月薪50K+

finalize的工作原理一个对象的创建过程对象的销毁是按照创建的逆序来进行的final的方法和类都不允许覆盖和继承。private默认实现了final。简述jvm中默认的classLoader与功能简述内部类的特点如何终止一个线程null可以被强制类型转换成任意类型的对象,于是通过它来执行静态方法解释一下java内存模型解释一下volatile字段广播的两种注册方法,有什么区别Intent可以传递哪些数据类型(文末附面试答案)..

2022-04-02 15:45:00 135

原创 BATJ互联网月薪45K的Java岗面试题首次曝光,掌握这些Offer指定跑不了

Spring篇=======Spring的IOC和AOP机制?Spring中Autowired和Resource关键字的区别?依赖注入的方式有几种,各是什么?讲一下什么是SpringSpring MVC流程SpringMVC怎么样设定重定向和转发的?SpringMVC常用的注解有哪些?Spring的AOP理解:Spring的IOC理解解释一下spring bean的生命周期解释Spring支持的几种bean的作用域。Spring基于x

2022-04-02 15:43:43 117

转载 面试题之java缓存总结,从单机缓存到分布式缓存架构

1、缓存定义高速数据存储层,提高程序性能2、为什么要用缓存(读多写少,高并发)1、提高读取吞吐量2、提升应用程序性能3、降低数据库成本4、减少后端负载5、消除数据库热点6、可预测的性能3、缓存分类3.1、单机缓存(localCache)实现方案1、基于JSR107规范自研(了解即可):1、Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。2、CachingProvider

2022-04-02 15:42:51 518 1

原创 Java全栈学习路线、学习资源和面试题一条龙

肝了一个月,终于把Java学习路线、面试题资源和电子书资源都整理好了。Java 从基础到微服务的学习路线,其中还包括科班知识、学习建议、后续的学习引导和相应的学习资源(视频、书籍、网站),还整理了Java 面试题, 资源都在文末 。写这一篇文章的目的很明确,在个人能力的基础上给小伙伴一个循环渐进的 Java全栈学习路线。为小伙伴布好道路,让学习的路途尽可能的通畅。在这里点缀下个人对编程的三个层次的理解:从学会使用(知其表)到深入架构设计原理(知其理)再到自研技术(

2022-04-02 15:42:03 160

原创 2022年最新出炉的Java面试题(亲身经历)

面试题清单个人近来面试了不少的公司的,该挂的挂,该应付通过的应付通过,目前对面试题部分做一个系统的总结。最起码要保证被问过的问题第二次被问到的时候是可以回答并且理解的。算是一个被动输入学习的过程。题目持续更新,答案自己复盘整理好之后会进行补充。Java语言相关面试题JVM的内存模型JVM的垃圾回收线上如何JVM排错了解反射吗反射的使用场景用过反射吗什么是阻塞IO,什么是非阻塞IOHashMap 和 Hashtable 有什么区别集合相关问题,HashMapHashMap数据结

2022-03-29 18:05:35 238

原创 Java3年转型大数据开发,15天拿6个offer,薪资翻3倍,我做对了什么

今天分享经验的同学,他在杭州一家外包公司从事Java开发3年,薪资8K。后面开始学习大数据开发的知识,并成功跳槽拿到多家公司的offer,薪资都在24K左右,个别公司还有期权。目前已经过了3个月试用期,顺利转正,所以分享下他的求职经验。以下是分享原文:先说明,这并不是标题党,这是真真正正发生在我身上的故事。9 月初,我回到杭州,决定从新开始找工作。9月15号在 BOSS 上投的简历,截至到 9月30 号的时候,已经拿到了 6 家公司的 Offer。其中一家还给了 40W 的期权,公司计划在 2023

2022-03-29 18:03:21 506 1

原创 2022 年 Java 开发者都在用什么?

技术更新迭代的速度,让很多开发者被动地开启了奋起直追的模式。但是在某些领域或技术层面,也永远不要小看技术人的「念旧」情结,譬如 2009 年发布的 Windows 7、2014 年发布的 Java 8 在当前技术圈中仍占据不小的份额。近日,美国软件开发商 Perforce Software 旗下的 JRebel 品牌在对近千名专业的 Java 开发者调研后,重磅发布了《2022 年 Java 开发者生产力报告》。据调查显示,我们有以下最新发现:八年前发布的 Java 8 依然是 Java 中应用最广

2022-03-29 18:02:50 279

原创 弄不懂MySQL触发器?详细教学与实战分析,保姆式讲解

MySQL触发器一、什么是触发器触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行。简单理解为:你执行一条sql语句,这条sql语句的执行会自动去触发执行其他的sql语句。二、触发器的作用可在写入数据表前,强制检验或转换数据。触发器发生错误时,异动的结果会被撤销。部分数据库管理系统可

2022-03-25 19:15:56 1081

原创 从互联网码畜到阿里P7架构师,JAVA学习这几本书一定要吃透

Java作为企业级应用开发的首选,深受互联网大厂的青睐。对于求职找工作的朋友来说,Java可能仍然是后端工程师的优选,虽然Python热度不断上升,但是Java作为老牌语言,在企业中的地位依旧稳固,它的市场空间仍然是很难撼动的。不同级别的IT从业者之间的工资差别非常大,相信每位程序员都不甘心只做一个“代码机器”,都希望自己的IT之路可以走得更长远!成为一名优秀的Java工程师需要掌握的知识相当多,除了Java编程语言外,操作系统、数据结构与算法、数据库、常用框架、设计模式、网站架构等等诸多技能也都是统统需

2022-03-25 19:12:59 730

原创 Java高薪进阶路线图,BAT大厂架构师是这样炼成的

技术日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点冠亦我是深有体会的。网上的资料多如牛毛,但是很多时候我们缺的不是一个资料,而是一个学习规划!就是说,做 Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学?冠亦哥大二刚开始自学 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,自己一个人摸索了很长时间,后来才逐步建立起自己的知识体系。所以每次有小伙伴问我 Java 的学习规划时,我都能理解大家所处的困境。Java 开发涉及到的领域非常

2022-03-25 19:03:43 289

原创 Dubbo快速入门,敲定Java学习难题

Dubbo一、基础知识1.1 分布式系统定义随着业务量的增大,我们不可能把所有的功能都放在一台服务器上,所以我们用很多台服务器每个服务器上都放一点服务,把业务分散在多台主机上。分布在多个主机上也不行啊,怎么处理它们之间的关系呢?没错,这个管理者就是我们今天的主角------》Dubbo1.2 应用架构的演变1.2.1 单一应用架构1.2.2 垂直应用架构1.2.3 分布式应用架构RPC:分布式服务框架主要解决不同服务器之间的远程调用问题1.2.4 流动计算架构分布式架构还存

2022-03-24 18:05:32 99

原创 从Java码畜到高富帅架构师,你必须看的类加载机制

对于架构师很多做技术的人都十分向往,也默默超这个方向去努力,在技术这条线架构师已经是处在顶尖一群人。我们该如何成为架构师呢?除了机缘,技术基本功是必须够硬的。架构师一定要在一个语言体系中成长起来,特别是前期阶段要专注一个语言体系深入细节,打磨基本功。对于Java架构师是一定要具备构建工具的能力,在这之上就是构建框架能力,这些能力的基础就是 jvm的类加载机制 。在jdk1.8基础上来聊“虚拟机类加载机制”。一般我们在idea中编写*.java文件,以project方式大家这些java文件组织关系,

2022-03-24 17:59:45 165

原创 掌握这 6 个Java工具,轻松分析定位 JVM 问题

你可能一开始会比较畏惧使用复杂的工具去排查问题,又或者是打开了工具感觉无从下手,但是随着实践越来越多,对 Java 程序和各种框架的运作越来越熟悉,你会发现使用这些工具越来越顺手。这篇文章中介绍下如何使用 JDK 自带工具来分析和定位 Java 程序的问题。使用 JDK 自带工具查看 JVM 情况JDK 自带了很多命令行甚至是图形界面工具,帮助我们查看 JVM 的一些信息。比如,在我的机器上运行 ls 命令,可以看到 JDK 8 提供了非常多的工具或程序:接下

2022-03-24 17:53:41 247

原创 Java开发中那些非常好用的工具,简直不要太顺手

最近几年,Java 的技术栈发展的非常快,成百上千的技术工具正不断地涌出来,这也造成了一个问题:我们作为开发者,到底应该选哪些工具搭建出最合适的技术栈呢?今天我就推荐一波我常用的、我了解的工具和框架。一、项目工具1.1 IDE主流的 Java 开发工具现在非 IntelliJ IDEA 莫属。前几年,可能 Eclipse 还能和 IDEA 一争高下,到了现在已经基本是 IDEA 的天下了。就拿我自己来说吧,我最早用 IDEA,后来用了几年 Eclipse,再后来又用回了 IDEA。包括我身边的

2022-03-24 17:52:23 1256

原创 Java进阶必学:深入分析 Synchronized 原理

深入分析 Synchronized 原理我们在开发中肯定会遇到在同一个 JVM 中,存在多个线程同时操作同一个资源时,此时需要想要确保操作的结果满足预期,就需要使用同步方法。官方解释:同步方法支持一种简单的策略来防止线程干扰和内存一致性错误:如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都是通过同步方法完成的。官方推荐使用的同步方法 (JDK 1.6后):Synchronized 基于 JVM 实现(此次主角);当然还有 ReentrantLock 基于 JDK 实现的。我们先简单地热.

2022-03-24 17:51:19 141

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除