自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Lock vs Semaphore vs Condition Variable vs Monitor(中文)

在多线程(并发)程序中,多个线程会访问同一个共享内存,为了避免产生一些奇怪的结果,这些线程应该按照合适的顺序访问共享内存,这个过程称为同步(synchronization)。仅仅保持同步还不够,为了让同步更加高效,多个线程互相之间保持交流。1.Critical Section(CS)临界区(Critical section)是程序的一段代码块,临界区不能被多个线程在同一时间访问,临界区的访问是互斥的,某一时刻最多只有一个线程能进临界区。2.LockLock提供了一种互斥的方式,Lo...

2020-12-28 10:14:17 975 1

原创 Lock vs Semaphore vs Condition Variable vs Monitor

目录1. Critical Section(CS)2. Lock3. Semaphore4. Condition variable5. Monitor6. SummaryIn mutil-threads (concurrent) programing, two or more threads have access to a shared memory, for avoiding confusing results, these threads should acces...

2020-12-25 17:45:15 240

原创 ThreadLocal原理的秘密

目录1. ThreadLocal描述2. 认识ThreadLocalMap3. 神奇的数字4.注意1. ThreadLocal描述ThreadLocal保证了每个线程都有自己独享的变量,不用考虑并发同步的问题。通常情况下,ThreadLocal类型的变量被建议声明为static,即使多个线程调用多次,该变量也只会初始化一次。ThreadLocal使用起来很简单、方便,但非常值得弄清ThreadLocal的实现原理。2. 认识ThreadLocalMap在ThreadLo.

2020-12-11 15:02:38 220 1

原创 The secret of ThreadLocal

ThreadLocal variable guareente each thread has own variable without thinking about synchronization. Usually threadlocal is declared static to be initialized only once whenever thread access it. We can easily use threadlocal in programm, but it is worth t

2020-12-11 10:42:12 115

原创 Producer-Consumer solution using wait(), notify(), park() and unpark()

1. IntroduceIn java, mutil-threads are used everywhere, applicationsnot only take advantages of mutil-threads improving efficiency, but also encounter some confusing problems especially when threads are not synchronized correctly. Fortunately, java prov.

2020-11-26 16:59:34 154

原创 A thread shoud not be controlled directly by other threads

目录1.Deprecated methods2.suspend() &resume()3.destroy()4.stop()1.Deprecated methodsIn mulitple-thread application, threads may communicate with each other to share(write, read or lock) common memory. But any thread usually shoudn't directly.

2020-11-12 17:18:12 91

原创 What is thread in java and how its methods behave

1. What is ThreadAs in oracle java specification, thread is one of two basic units of execution, the other is process. Process was present prior to thread, we can refer to one process as an application. When an application is running, the resources alloc

2020-11-10 17:11:29 103

原创 重识JVM(2) - JAVA内存模型

目录一、概念和误解二、疑问三、计算机的内存模型3.1. 内存顺序和程序顺序3.2. SC内存模型3.3. TSO内存模型3.4. 其他内存模型3.5.JAVA内存模型3.6. volatile实现原理一、概念和误解 java内存模型,英文全称为java memory model,简称JMM。网上大部分关于java内存模型的资料都是关于堆栈...

2019-12-20 15:51:45 281

原创 volatile官方文档解释

一、描述:官方文档中对volatile中描述中,写到:This means that changes to a volatile variable are always visible to other threads. What's more, it also means that when a thread reads a volatile variable, it sees not...

2019-10-29 18:22:25 399

原创 重识JVM(1)- 冯诺依曼体系

目录1. 引言 2. 简介3. 冯诺依曼体系4. CPU组成和工作流程 5. JVM组成和工作流程6. 总结7. 思考1. 引言 学习java这门语言,最先学到的除了一些基础的语法知识,还有关于jvm的一些东西,像堆栈、方法区、垃圾回收,站在巨人的肩膀上,我们只需要对jvm有个大概的了解就行了,可是仅靠书本和网络...

2019-08-08 10:59:35 629

原创 LeetCode算法题-镜面反射(Mirror Reflection)

1. 题目:有一个四面墙都有镜子的特殊正方形房间。除了西南角之外,其他三个角都有接收器,编号为0, 1, 2。方形房间的墙长度为p,有一束射线从西南角照射到东面的墙上,到墙角0的距离为q。请找出射线遇到的第一个接收器的编号(可以保证射线最终会遇到一个接收器)。例如:输入:p = 2, q = 1输出:2解释:当射线第一次反射到左边墙上的时候,会遇到接收器2。注意:1...

2019-07-02 16:29:53 1225

原创 计算机为什么要用补码

目录1. 补码诞生的背景2. 原码、反码、补码2.1 原码2.2 反码2.3 补码3. 加减法3.1普通算术加减法3.2模N加减法4. 总结1. 补码诞生的背景 不论是在生活中还是虚拟网络中,人们总是习惯与10进制数字打交道,很容易理解10进制的加减乘除运算,但是我们知道计算机无法直接理解10进制,只能识别高低电平,一般人为设定0为低电平...

2019-06-12 16:48:29 15575 14

原创 java泛型探秘(二):泛型擦除

目录一.泛型擦除是什么二. 为什么要擦除三. 擦除造成的限制1. 特殊的rawType2. 不支持原始类型3. 不能用占位符创建实例或数组4. 不能创建泛型数组一.泛型擦除是什么java泛型是编译期的泛型,不是运行时的泛型java语言是跨平台的,每个平台都有对应的JVM(java虚拟机),编写的java源码不能直接在JVM中运行,能在...

2019-04-19 10:49:13 951

原创 java泛型探秘(一):泛型是什么

目录一. 泛型基本概念二. java泛型是什么&为什么使用泛型三. java泛型的继承关系一. 泛型基本概念在维基百科上泛型是用这样一句话定义的:Generic programming is a style of computer programming in which algorithms are written in terms of types to...

2019-04-03 15:49:09 332

原创 英语五大基本句型

目录1. 引言 2. 英语基本句型2.1.主谓2.2. 主系表2.3. 主谓宾2.4. 主谓双宾2.5. 主谓宾宾补3. 注意事项3.1. 主谓宾宾补和主谓宾(主补)3.2. 相同形式句子不同句型3.3. 相同动词不同句型4. 总结1. 引言 平时看代码英文注释时,通常都是一些很短的句子,很容易...

2019-02-15 18:43:04 9467

翻译 java编译时常量-翻译

一、原文地址:http://www.zoopable.com/compile-time-constants-in-java/二、原文翻译在本教程中,我们将会基本了解java编程语言中的编译时常量。这不是编译时常量的详细教程,但是对于大部分人来说足够了。我们将会知道什么是编译时常量,还有它们怎么样特殊。首先,我们来看下编译时常量的一般规则。必须声明为fianl 必须是java...

2019-01-23 16:16:31 508 1

翻译 Nested Classes(嵌套类) - Java™ Tutorials 翻译

一、原文地址:https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html二、原文翻译:1、嵌套类 java编程语言允许在另一个类内部定义一个类。这样的类被叫做嵌套类,这里举例说明:/** 外部类 **/public class OuterClass { /** 嵌套类 **/ ...

2019-01-17 18:45:48 364

原创 List接口英文注释翻译

一个有序的容器(也被称为序列)。接口使用者可以精确控制列表中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,还能查找列表中的元素。 不像集合,列表通常允许重复元素。更正式点的说法是,列表通常允许满足e1.equals(e2)这样的e1和e2元素对,另外如果允许空元素通常也会允许多个空元素。有人想通过当使用者尝试插入重复元素时抛出运行时异常的方式...

2019-01-03 17:40:08 578

原创 为什么Collection接口的remove方法参数类型是Object而不是类型参数(泛型)

在jdk1.2版本之后的Collection接口被泛型化了,add方法的参数类型为泛型,remove方法的参数类型依然为Object,既然add添加元素时严格限制类型,保证了列表元素结构不被破坏,remove删除却放宽了类型限制,有点不合常理,查阅资料,了解到这样做的原因既有逻辑上的考虑,也有技术上的妥协,可能当时没有更好的解决办法。一、从remove方法含义上看 ...

2018-10-30 15:22:29 1327

原创 java源码英文注释翻译和解析(基于jdk1.7)-集合篇-Iterable&Iterator(接口)

目录1.接口概述:2.源码翻译&解析:1.接口概述: Iterable:该接口只有一个方法iterator(),此方法作用是获取一组元素的迭代器。当一个类实现了该接口,可以用foreach语法糖遍历该类元素,在编译阶段foreach语法糖会转换为调用iterator()方法获取迭代器遍历元素。容器根接口Collection继承Iterable,意味着所有...

2018-10-19 11:34:18 1639

原创 tcp/ip 探秘(二) : 信息交换方式的演变

一、tcp/ip的信息交换 tcp/ip是基于无连接的分组交换技术,选择分组交换的好处是显而易见的,因为无连接(此处的无连接是通信线路的无连接,逻辑通路可以建立连接,比如tcp在每次传输数据前,都要3次握手确认可以和接收方建立连接),所以能同时和多个端保持通信;另外分组交换将数据分成了一个个小的数据包,经过路由选择和存储转发,可以最大化的利用端和端之间的多条线路,并减少了传输错误。 ...

2018-05-16 13:48:43 1643

原创 tcp/ip 探秘(一) : tcp/ip和OSI模型

一、tcp/ip的诞生 tcp/ip 诞生于80年代,它的前身是arpanet。在美苏冷战期间,美方的军事指挥中心面临着被苏联的核武器摧毁,所有军事设施都将立即瘫痪的巨大风险,因为必要设计一个分散的指挥系统,在这个背景下,arpanet诞生了,arpanet是ARPA(美国国防部高级研究计划管理局)将分布在加利福尼亚州大学洛杉矶分校加州大学圣巴巴拉分校、斯坦福大学、犹他州大学四所大学的...

2018-04-26 18:13:02 953

原创 对面向对象设计OOD七大原则的理解

OOD原则的个人看法 面向对象设计OOD有很多原则可以遵守,但是最终目的可以用其中一个原则概括,即开闭原则。在功能迭代频繁的项目,怎么能不牵一发而动全身显得特别重要,如果做不到这点,那么可能一个小小的功能,就能影响核心功能,随之而来的就是全量测试,心惊胆战的发布上线。另外我们经常能听到、看到某些代码违反了xxx原则,没有做到高内聚、松耦合,这些xxx原则到底是什么呢,为什么要遵守这些原...

2018-03-15 22:26:14 1185 1

原创 正确使用字节流按照指定字符编码获取字符串

在实际工作中,我们经常会遇到读取文本或网络中的内容,但是由于编码格式的不统一,往往得到的结果总是一团乱码,这就需要将文本按照它原本保存的编码解析成正确的内容。下面这段代码使用了字节按照指定编码获取字符串,可能很多人也使用它,其实呢这段代码是错误的,如果使用的时候感觉一切正常的话,那只能说你运气挺好。private String inputStreamToString(InputStream i

2015-08-27 21:40:49 5985 2

原创 prototype详解及prototype、new之间的关系

1.prototype解释在JavaScript中,prototype对象是实现面向对象的一个重要机制。每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员

2014-06-29 12:15:57 3316

原创 js中this关键字探讨

1.this的作用

2014-06-05 14:52:37 895

原创 js中toString 和 object.toString区别解释

1.toString 和 object.toString运行结果演示

2014-06-04 11:36:15 7334

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除