JVM高级特性与实践(十二):高效并发时的内外存交互、三大特征(原子、可见、有序性) 与 volatile型变量特殊规则

Amdahl 定律:该定律通过系统中并行化与串行化的比重来描述多处理器系统能获得的运算加速能力。 摩尔定律:该定律用于描述处理器晶体管数量与运行效率间的发展关系。 并发处理的刚反应用时使得 Amdahl 定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。多任务处理几乎是现代计算机操作系统的一项必备功能,由于计算机的运算速度与它的存储和通 …… 阅读全文

JVM高级特性与实践(十三):线程实现 与 Java线程调度

衡量一个性能的高低好坏,每秒事务处理数(Transactions Per Second)是最重要的指标之一,它代表着一秒内服务端平均能响应的请求总数,而TPS值与程序的并发能力又有密切联系。对于计算量相同的任务,程序线程并发协调得越有条不紊,效率自然越高;反之,线程之间频繁阻塞甚至死锁,将会大大降低程序并发能力。并发不一定要依赖多线程,但是在Java里面谈论并发,大多数都与线程脱不开关系。此 …… 阅读全文

JVM高级特性与实践(十四):线程安全 与 锁优化

在软件业发展初期,程序编写都是以算法为核心,程序员会把数据和过程分别作为独立部分考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维直接站在计算机的角度去抽象问题和解决问题,称为面向过程的编程思想。面向过程的编程思想极大地提升了现代软件开发的生产效率和软件可达的规模,但是现实世界与计算机世界之间存有差异,导致良好的设计原则不得不向现实做出让步。开发人员必须让程序在计算机中正确执行, …… 阅读全文

Java高级知识点:并行计算(外部排序) 及 死锁分析

一. 并行计算通常单机运算时将数据放入内存中进行计算,但随着数据量的增大,最好是使用并行计算的方法。1. 算法如何设计并行排序算法?在并行计算的工作中,将每一个参与的电脑当作一个节点,节点通常是比较廉价的,可通过增加节点来提高效率。分为以下三个步骤及待解决问题:将数据拆分到每个节点上(如何拆分,禁止拆分数据依赖)每个节点并行计算得出结果(每个节点要算出什么结果?)将结果汇 …… 阅读全文

谈谈有关设计模式的思想精髓:变继承关系为组合关系、如何创建对象(单例、状态、装饰者模式)

说起设计模式,最广为人知的就是“四人帮”编写的设计模式,其书的副标题为软件中可重用的元素,此书本来是一篇博士论文,它将很多通用的设计思想总结并命名成设计模式,希望开发人员之间通过专有的模式名称交流,可惜最为熟悉的是被滥用最多的Singleton单例模式,但是此书中有许多值得学习的思想。从当今角度看此书,其中一部分模式是教我们如何对现实的事物去建模,这是“设计”。而有一部分则是受到了“语言限制” …… 阅读全文

Form表单数据传输方式之Get与Post区别

Java Web中Form表单传输提供了两种方式,method="get"(form默认方式) 与 method="post",它们都是数据的传输方式,但他们的传输过程有很大不同,对数据的影响也有很大区别;一般来说,在Form中,尽量使用post方式传输数据。区别一:从字面上可以看出,get(获取)是从服务器上获取数据,post(发送)是向服务器发送数据;区别二:get传输 …… 阅读全文

Java运用JSON实现后台与前端分工合作(代码实例)

一、前言 最近在写我们实验室网站内部交流平台,后台架构用的Spring + SpringMVC + Mabatis(数据库框架)整合框架,作为后台人员,与数据库交互、处理业务逻辑已经驾轻就熟,但与前端合作就显得不是那么熟练了。举一个小例子,一个用户列表,我们从数据库取出来是一个List,但它在前端显示就是一个很炫酷的用户列表,我们后台人员是需要把数据以表格样式呈现然后让前端人员去 …… 阅读全文

Spring常用的四大注解

@Component@Controller@Service@Repository …… 阅读全文