线程&多线程

死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了。1.什么是活锁、饥饿、无锁、死锁?本文分享给需要面试刷题的朋友,我特意整理了一下,里面的技术不是靠几句话就能讲清楚,多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知

四种幂等性解决方案

什么是幂等性?幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统

写代码需要的16个好习惯。

1.修改完代码,记得自测一下改完代码,自测一下是每位程序员必备的基本素养。尤其不要抱有这种侥幸心理:我只是改了一个变量或者我只改了一行配置代码,不用自测了。改完代码,尽量要求自己都去测试一下哈,可以规避很多不必要bug的。2.方法入参尽量都检验入参校验也是每个程序员必备的基本素养。你的方法处理,必须

进程、线程、协程之间的关系

前言我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序则是具有某种功能的程序,程序是运行于操作系统之上的。一、进程进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分

35个Java 代码优化魔鬼细节

前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可

基于有限状态机与消息队列的三方支付系统

0.引言在日常生活中,从线下的超市购物到线上的外卖点餐、电商网购等,支付无时无刻不在发生,不论是通过现金、pos机刷卡还是微信支付宝等第三方支付。线上支付有着及时便捷一气呵成的极致体验,当然也有少数的时候体验不够丝滑,比如早期我们在PC版12306买火车票,当支付完成后,订单的支付状态却经常不能及时

接口幂等性的解决方案

在编程中,幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数指的是那些使用相同参数重复执行也能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。比如说getIdCard()函数和setTrue()函数就是幂等函数。幂等在我的理解里就是,一个操作

forEach在集合中的使用

迭代集合任何类型Collection的可迭代-列表,集合,队列等都具有使用forEach的相同语法。因此,正如我们已经看到的,迭代列表的元素:List<String>names=Arrays.asList("Larry","Steve","

Java 8中引入的forEach

概述在Java8中引入的forEach循环为程序员提供了一种新的,简洁而有趣的迭代集合的方式。在本文中,我们将看到如何将forEach与集合一起使用,它采用何种参数以及此循环与增强的for循环的不同之处。基础知识publicinterfaceCollection<E>extendsIte

Lamda 表达式作用域(Lambda Scopes)

访问局部变量我们可以直接在lambda表达式中访问外部的局部变量:finalintnum=1;Converter<Integer,String>stringConverter=(from)->String.valueOf(from+num);stringConverter.conv