摘要: Java面试中经常会涉及关于volatile的问题。本文梳理下volatile关键知识点。 volatile字意为“易失性”,在Java中用做修饰对象变量。它不是Java特有,在C,C++,C#等编程语言也存在,只是在其它编程语言中使用有所差异,但总体语义一致。比如使用volatile 能阻止编译器 阅读全文
posted @ 2020-06-23 18:11 编程码农大叔 阅读(320) 评论(0) 推荐(0) 编辑
摘要: Java为我们提供了隐式(synchronized声明方式)和显式(java.util.concurrentAPI编程方式)两种工具来避免线程争用。 本章节探索Java关键字synchronized。主要包含以下几个内容。 synchronized关键字的使用; synchronized背后的Mon 阅读全文
posted @ 2020-06-19 15:10 编程码农大叔 阅读(675) 评论(0) 推荐(1) 编辑
摘要: 在 Java并发之内存模型了解到多进程(线程)读取共享资源的时候存在竞争条件。 计算机中通过设计同步器来协调进程(线程)之间执行顺序。同步器作用就像登机安检人员一样可以协调旅客按顺序通过。 在Java中,同步器可以理解为一个对象,它根据自身状态协调线程的执行顺序。比如锁(Lock),信号量(Sema 阅读全文
posted @ 2020-06-17 17:26 编程码农大叔 阅读(372) 评论(0) 推荐(1) 编辑
摘要: Java是一门支持多线程执行的语言,要编写正确的并发程序,了解Java内存模型是重要前提。而了解硬件内存模型有助于理解程序的执行。 本文主要整理以下内容 Java内存模型 硬件内存架构 共享对象可见性 竞争条件 Java内存模型 Java内存模型最新修订是在Java5。 JSR-176 罗列了 J2 阅读全文
posted @ 2020-06-09 11:18 编程码农大叔 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 前言 并行编程势不可挡,Java从1.7开始就提供了Fork/Join 支持并行处理。java1.8 进一步加强。 并行处理就是将任务拆分子任务,分发给多个处理器同时处理,之后合并。 Stream API Java 8 引入了许多特性,Stream API是其中重要的一部分。区别 InputStre 阅读全文
posted @ 2020-06-05 21:21 编程码农大叔 阅读(3459) 评论(0) 推荐(0) 编辑
摘要: 前言 ​ 软件的运行依赖硬件基础设施。编程技术也因为硬件的不断发展而更新。通过了解计算机硬件发展,可以知道一些编程语言的设计目标发展方向。 过去半个世纪中,摩尔定律一直指导半导体与科技产业的发展。英特尔一直遵循摩尔定律,一般每隔两年左右就会发布新成果。不过现在有一些专家指出计算机已经达到摩尔定律的物 阅读全文
posted @ 2020-06-05 14:09 编程码农大叔 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 简介 双重检查锁定(也叫做双重检查锁定优化)是一种软件设计模式。 它的作用是减少延迟初始化在多线程环境下获取锁的次数,尤其是单例模式下比较突出。 软件设计模式:解决常用问题的通用解决方案。编程中针对一些常见业务固有的模版。 延迟初始化:在编程中,将对象的创建,值计算或其他昂贵过程延迟到第一次使用时进 阅读全文
posted @ 2020-06-01 18:28 编程码农大叔 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 版本控制 版本控制就是记录项目文件的历史变化。它为我们查阅日志,回退,协作等方面提供了有力的帮助。 版本控制一般分为集中化版本控制和分布式版本控制。 集中化主要的版本数据都保存服务端。 分布式版本数据分散在多端。 Git Git属于分布式版本控制,也是现在比较流行的一种版本管理工具。 Git项目有三 阅读全文
posted @ 2020-05-30 22:32 编程码农大叔 阅读(795) 评论(1) 推荐(2) 编辑
摘要: 利特尔法则 利特尔法则派生于排队论,用以下数学公式表示: L = λW L 系统中存在的平均请求数量。 λ 请求有效到达速率。例如:5/s 表示每秒有5个请求到达系统。 W 请求在系统中的平均等待执行时间。 排队论:研究服务系统中排队现象随机规律的学科,探究排队有关的数量指标的概率规律性。 场景 我 阅读全文
posted @ 2020-05-26 21:23 编程码农大叔 阅读(758) 评论(0) 推荐(0) 编辑
摘要: GO语言 耳闻已久的Go语言,今天入门了解一下。 Go之所以火爆的原因之一是,拥有CoreOS,Kubernetes(Google),InfluxDB知名大客户,另外Docker也是Go语言所编写。 Go语言的功能特性(所有这些特性,以后慢慢学习了解) 并发支持 简单性和一致性 面向对象 指针 编译 阅读全文
posted @ 2020-05-25 18:36 编程码农大叔 阅读(251) 评论(0) 推荐(0) 编辑