- 博客(5)
- 收藏
- 关注
原创 volatile关键字的作用
一、禁止Java编译器对相关代码重排序和jvm解释运行Java命令执行的重排序。 Java编译器代码重排序规则(happens-before原则): 顺序性原则:在同一个线程中,书写在前面的操作happen-before后面的操作。 锁的原则:同一个锁的unlock操作happen-before此锁的lock操作。 volatile的原则:对一个volatile变量的写操作happen-before对此变量的任意操作(当然也包括写操作了)。 happen-before的传递性原则:如果A操作 hap...
2020-08-26 18:31:08
153
原创 多线程数据一致问题是谁的锅搞得程序员这么难
半年前时间学了多线程,去年年底把Java并发编程看完了,知道多线程下内存数据不是可靠的,volatile关键字,主线程守护线程,钩子线程等等,始终无法理解为啥是这样的多线程访问下数据就不安全了,加了多线程程序开发和调试难度立马上了一个量级,有的多线程bug重现一下已经是很给面子了,搞得程序员焦头烂额的。网上有好多讲多线程是怎么使用的什么原理但是很少讲一下为什么是这样的,学习多线程的时候也很容易忽略,本人比较爱问为什么所以就又回去看了一眼,总结了一下。 **他是内存硬件和底层CPU架构的锅!** *.
2020-05-20 18:02:23
170
原创 再谈面向对象的理解面向过程与面向对象的通俗理解
前几天跟着腾讯课堂又学了一下面向对象的思想,对此又有了新的一些发现和理解。由此想吧这个想法写下来,因为觉得百度或是别人和我说的都不是特别的透彻,没有达到让一个完全不懂程序的人,去理解面向对象的编程思维。在此想分享一下个人对面向对象的深入理解。 在学Java基础的时候就说面向对象编程,之前是面向过程编程,到底什么是面向过程编程,面向过程简单的理解就是一连串的函数组合,传入参数,通过这几个函数组合的操...
2019-04-18 17:49:50
382
原创 Java小白如何理解服务负载均衡动静分离分布式和集群
–学技术不仅仅要学习他了形式还要学习他解决了什么问题,在接触的人和对自己学习的反思发现其实很多时候还是忽略了这个技术主要解决了什么问题。技术或是架构是为了解决问题或是替代现有的技术更好的解决问题的,沿着解决问题这条线就更有兴趣也更加有体会。 单体应用在web容器中可以处理的请求是有限的,太多了会造成服务器过载宕机,比如tomcat默认最大连接数是100个,连接太多会降低服务器的性能,影响程序运行速...
2019-04-18 15:15:58
318
原创 单体JAVAWEB项目的基本运行方式以及演进
单体JAVAWEB项目的基本运行方式以及演进 javaweb,servlet,jsp,http,web容器,连接池,orm,spring,mvc框架 干java开发多年了,自己对Javaweb有了一定的理解,同时像将自己的知识做一下提炼和总结,为一些刚开始做这方面的开发对Javaweb有一个全面和整体的认识,因为再工作中遇到的同事和自己在一开始都对Javaweb是怎么运行的不是很清楚,导致技术的热...
2019-03-11 14:41:06
771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人