- 杀死一个开发,只需要变更三次需求。2.1-volatile的应用(wall la tai l 还是 wall lei tai l)它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值,它不会引起线程上下文的切换和调度CPU术语定义volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编... 杀死一个开发,只需要变更三次需求。2.1-volatile的应用(wall la tai l 还是 wall lei tai l)它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值,它不会引起线程上下文的切换和调度CPU术语定义volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的汇编...
- 那篇并编程艺术3写完了,但下午发现了原创度更高的个人真实案例分析,反正已经写完了,随时可以发,个人问题的优化记忆才更深。1.go to语法今天偶然看到ThreadPoolExecutor的addworker方法用到了go to,他到底是个优雅高级语法,还是个混淆语法。public static void main(String[] args) { for (int i = 0;... 那篇并编程艺术3写完了,但下午发现了原创度更高的个人真实案例分析,反正已经写完了,随时可以发,个人问题的优化记忆才更深。1.go to语法今天偶然看到ThreadPoolExecutor的addworker方法用到了go to,他到底是个优雅高级语法,还是个混淆语法。public static void main(String[] args) { for (int i = 0;...
- 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。参考《Java并发编程的艺术》happens-before简介从JDK 5开始,Java使用新的JSR-133内存模型(除非特别说明,本文针对的都是JSR-133内存模型)。JSR-133使用happens-before的概念来阐述操作之间的内... 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。参考《Java并发编程的艺术》happens-before简介从JDK 5开始,Java使用新的JSR-133内存模型(除非特别说明,本文针对的都是JSR-133内存模型)。JSR-133使用happens-before的概念来阐述操作之间的内...
- 抢红包的这个问题,最最开始关注是因为阿里的场景面试题提到过的当时的代码处理还很简单,先从普通场景探索下红包问题拼手气红包–线性切割法场景:100块钱红包,群内50人,红包数量为20个,30个人将抢不到红包这个算法可以把总金额想象成一条线段,每个人都有机会切一刀,前面的人切完(有失公平性,会出现第一个切一大段的情况,后面需要改造),剩下的后面的人再接着切剩下的,这样越是前面的人截取的长度(理解... 抢红包的这个问题,最最开始关注是因为阿里的场景面试题提到过的当时的代码处理还很简单,先从普通场景探索下红包问题拼手气红包–线性切割法场景:100块钱红包,群内50人,红包数量为20个,30个人将抢不到红包这个算法可以把总金额想象成一条线段,每个人都有机会切一刀,前面的人切完(有失公平性,会出现第一个切一大段的情况,后面需要改造),剩下的后面的人再接着切剩下的,这样越是前面的人截取的长度(理解...
- 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表:接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明,Class文件内部的数据是按照规则紧凑排列的,中间不会有空隙... 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表:接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明,Class文件内部的数据是按照规则紧凑排列的,中间不会有空隙...
- 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文... 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文...
- 一、内存分类各位小伙伴,到上一篇博文为止,我们的内存模型相关知识就已经讲完了!不知道大家吸收了多少,这里我们简单的来回顾一下吧!在博文《JVM进阶(三):内存分配与回收策略》中讲到,内存基本分为JAVA栈、本地方法栈、堆和方法区。首先栈存放的是基本类型变量,局部变量,和对象的引用,他在内存中是一块连续的区域,有大小限制,是由系统自动分配的,因此它的读写速度比较快,而且会自动释放掉为该变量所... 一、内存分类各位小伙伴,到上一篇博文为止,我们的内存模型相关知识就已经讲完了!不知道大家吸收了多少,这里我们简单的来回顾一下吧!在博文《JVM进阶(三):内存分配与回收策略》中讲到,内存基本分为JAVA栈、本地方法栈、堆和方法区。首先栈存放的是基本类型变量,局部变量,和对象的引用,他在内存中是一块连续的区域,有大小限制,是由系统自动分配的,因此它的读写速度比较快,而且会自动释放掉为该变量所...
- @[toc] 前言涉及到BigDecimal类型的比较,最好使用compareTo()方法,不要用equals()方法(除非对精度有要求)。 关键方法:修饰符方法描述BigDecimalcompareTo(BigDecimal val)将此 BigDecimal与指定的BigDecimal进行 比较,小于返回-1,等于返回0,大于返回1 代码测试:import java.math.BigDe... @[toc] 前言涉及到BigDecimal类型的比较,最好使用compareTo()方法,不要用equals()方法(除非对精度有要求)。 关键方法:修饰符方法描述BigDecimalcompareTo(BigDecimal val)将此 BigDecimal与指定的BigDecimal进行 比较,小于返回-1,等于返回0,大于返回1 代码测试:import java.math.BigDe...
- java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?答案2023-06-21: java的:这个问题,我问了一些人,部分人是回答得有问题的。synchronized这是个关键字,加锁和解锁不是直接用代码实现,所以在代码层面上就杜绝了加锁和解锁不在同一个线程得情况。可以这么说,synchronized是无法实现同一把锁的加锁和解锁在不同线... java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?答案2023-06-21: java的:这个问题,我问了一些人,部分人是回答得有问题的。synchronized这是个关键字,加锁和解锁不是直接用代码实现,所以在代码层面上就杜绝了加锁和解锁不在同一个线程得情况。可以这么说,synchronized是无法实现同一把锁的加锁和解锁在不同线...
- @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出) 四、REST风格 1.了解REST风格REST风格简介REST (Representation... @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出) 四、REST风格 1.了解REST风格REST风格简介REST (Representation...
- @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出) 一、初识SpringMVC 1.认识SpringMVCSpringMVC是什么Spring M... @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出) 一、初识SpringMVC 1.认识SpringMVCSpringMVC是什么Spring M...
- @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)1. 本文建立在SSM整合快速入门案例(一)的基础上进行编写,该博客可以在我的ssm专栏里找到 ... @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)1. 本文建立在SSM整合快速入门案例(一)的基础上进行编写,该博客可以在我的ssm专栏里找到 ...
- @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出) 一、设计数据库表1. 设计创建数据库ssm_db,创建表tbl_book-- -------... @TOC 前言为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出) 一、设计数据库表1. 设计创建数据库ssm_db,创建表tbl_book-- -------...
- Docker 是一种容器化平台,它可以让开发人员和系统管理员轻松地创建、部署和运行应用程序。Docker 可以将应用程序及其依赖项打包成一个独立的容器,该容器可以在任何环境中运行,而不需要修改应用程序或其依赖项。Docker 的目标是帮助开发人员和系统管理员更快、更可靠地构建、部署和运行应用程序 Docker 是一种容器化平台,它可以让开发人员和系统管理员轻松地创建、部署和运行应用程序。Docker 可以将应用程序及其依赖项打包成一个独立的容器,该容器可以在任何环境中运行,而不需要修改应用程序或其依赖项。Docker 的目标是帮助开发人员和系统管理员更快、更可靠地构建、部署和运行应用程序
- java 多用户即时通讯系统 提升功力推荐(难度较大)。 java 多用户即时通讯系统 提升功力推荐(难度较大)。
上滑加载中
推荐直播
热门标签