返回顶部
摘要:`Lock java.util.concurrent.locks synchronized Lock synchronized`块更灵活、更复杂。 话不多说,我们直接来看官方文档对Lock接口相关概念及功能的描述,今天又是看英文文档,翻译理解的一天。 一、Lock继承关系 二、官方文档解读 三、Lo 阅读全文
posted @ 2020-02-16 20:20 天乔巴夏丶 阅读 (93) 评论 (0) 编辑
摘要:[toc] 在并发编程中,保证线程同步,从而 实现线程之间正确通信 ,是一个值得考虑的问题。本篇将参考许多著名书籍,学习如何让多个线程之间相互配合,完成我们指定的任务。 一、synchronized 与 volatile 关键字是Java提供的 互斥的内置锁 ,该锁机制 不用显式加锁或者释放锁 。互 阅读全文
posted @ 2020-02-15 23:28 天乔巴夏丶 阅读 (92) 评论 (2) 编辑
摘要:[toc] 在并发编程中,保证线程同步,从而 实现线程之间正确通信 ,是一个值得考虑的问题。本篇将参考许多著名书籍,学习如何让多个线程之间相互配合,完成我们指定的任务。 当然本文只是学习了一部分线程间通信的方法,还有一些例如使用Lock和Condition对象,管道输入输出、生产者消费者等内容,我们 阅读全文
posted @ 2020-02-13 22:47 天乔巴夏丶 阅读 (9) 评论 (0) 编辑
摘要:[toc] 本篇参考许多著名的书籍,形成读书笔记,便于加深记忆。 前文传送门: "Java并发读书笔记:JMM与重排序" 导致线程不安全的原因 当一个变量被多个线程读取,且 至少被一个线程写入 时,如果读写操作不遵循 规则,那么就会存在 数据竞争 的隐患,如果不给予正确的同步手段,将会导致线程不安全 阅读全文
posted @ 2020-02-12 22:45 天乔巴夏丶 阅读 (134) 评论 (0) 编辑
摘要:[toc] Java内存模型(JMM) Java内存模型(JMM)定义了程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。 在Java中,所有实例域、静态域和数组元素都存在堆内存中,堆内存在线程之间共享,这些变量就是 共享变量 。 局部变量(Local Vari 阅读全文
posted @ 2020-02-11 19:45 天乔巴夏丶 阅读 (108) 评论 (0) 编辑
摘要:[toc] 前文传送门: "Java:多线程概述与创建方式" "Java:线程的六种状态及转化" Java:谈谈控制线程的几种办法 控制线程的办法诸多,本篇做出一部分整理总结。 join() 官方解释简洁明了: ,很明显,针对线程来说,谁调用,等谁死。举个例子:当在A线程中调用B线程的join()方 阅读全文
posted @ 2020-02-10 16:11 天乔巴夏丶 阅读 (127) 评论 (0) 编辑
摘要:[toc] 前文传送门: "多线程概述及创建方式" Java:线程的六种状态及转化 关于线程的生命周期,网上书上说法不一,难以统一,本篇做一个总结: 枚举类中定义了六种线程的状态,可以调用线程Thread中的 方法 获取当前线程的状态 。 | 线程状态 | 解释 | | | | | NEW | 尚未 阅读全文
posted @ 2020-02-09 20:49 天乔巴夏丶 阅读 (130) 评论 (1) 编辑
摘要:[toc] Java:多线程概述与创建方式 在之前的学习过程中,已经不止一次地提到了并发啊,线程啊,同步异步的内容,但是出于内容的局部一体,之前总是几笔带过,并附上:以后学习的时候再细说。 那么,现在到了细说的时候,在翻阅并参考了介绍Java并发编程的书之后,突然感觉压力有些大,因为有些概念确实比较 阅读全文
posted @ 2020-02-08 20:01 天乔巴夏丶 阅读 (21) 评论 (1) 编辑
摘要:[toc] 前文传送门: "小白学Java:I/O流" 小白学Java:RandomAccessFile 之前我们所学习的所有的流在对数据操作的时候,都是只读或者只写的,使用这些流打开的文件很难进行更新。Java提供了 类, 允许在文件的任意位置上进行读写 。 概述 官方文档的解释是这样的: Ins 阅读全文
posted @ 2020-02-05 11:51 天乔巴夏丶 阅读 (97) 评论 (2) 编辑
摘要:用IDEA开启断言 IDEA的默认工作目录在当前的项目下,我们可以通过 查看。 在 输入框中写上 ,即可开启断言。 测试如下: 阅读全文
posted @ 2020-02-04 16:54 天乔巴夏丶 阅读 (11) 评论 (0) 编辑
摘要:如何通过IDEA添加serialVersionUID 直接搜索 找到 ,勾上。 在类上按下 +`Enter`即可。 阅读全文
posted @ 2020-02-03 18:11 天乔巴夏丶 阅读 (34) 评论 (0) 编辑
摘要:[toc] 小白学Java:I/O流 流,表示任何有能力产生数据的数据源对象或者是有能力接收数据的接收端对象,它屏蔽了实际的I/O设备中处理数据的细节。 基本分类 根据方向 输入流 :数据从外部流向程序,例如 从文件中读取数据 。 输出流 :数据从程序流向外部,例如 向文件中写数据 。 根据形式 字 阅读全文
posted @ 2020-02-03 17:46 天乔巴夏丶 阅读 (134) 评论 (0) 编辑
摘要:更改IDEA相对路径 IDEA的默认工作目录在当前的项目下,我们可以通过 查看。 可以看到我当前java文件的工作目录,是: 。 可以通过右边 浏览并修改目录。 只是修改指定的java文件,可以通过左边列表选择。 有时候在测试demo的时候可以小作修改,会方便一些。 阅读全文
posted @ 2020-02-02 20:18 天乔巴夏丶 阅读 (12) 评论 (0) 编辑
摘要:[toc] 小白学Java:File类 我们可以知道,存储在程序中的数据是暂时的,在程序终止的时候,存储在程序中的数据就会丢失。我们通常为了永久地保存在程序中创建地数据,需要将它们 存储到磁盘上 或者其他永久存储设备的文件中,这些文件之后可以被其他的程序传输和读取。 而java.io包下的File实 阅读全文
posted @ 2020-02-01 17:36 天乔巴夏丶 阅读 (27) 评论 (0) 编辑
摘要:[toc] 小白学Java:内部类 内部类是封装的一种形式,是定义在类或接口中的类。 内部类的分类 成员内部类 即定义的内部类作为外部类的一个普通成员(非static),就像下面这样: 我们通过以上一个简单的示例,可以得出以下几点: Inner类就是内部类,它的定义在Outer类的内部。 Outer 阅读全文
posted @ 2020-01-31 16:47 天乔巴夏丶 阅读 (113) 评论 (0) 编辑
摘要:[toc] Java小白的源码学习系列:HashMap 春节拜年取消,在家花了好多天时间啃一啃HashMap的源码,同样是找了很多很多的资料,有JDK1.7的,也有JDK1.8的,当然本文基于JDK1.8。将所学到的东西进行整理,希望回过头再看的时候,有更深刻的见解。 官方文档解读 先来看看史诗级长 阅读全文
posted @ 2020-01-27 20:50 天乔巴夏丶 阅读 (179) 评论 (2) 编辑
摘要:Leetcode数组题 3 [toc] 66.加一 题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例: 链接: "https://leetcode c 阅读全文
posted @ 2020-01-21 15:43 天乔巴夏丶 阅读 (21) 评论 (0) 编辑
摘要:[toc] 小白学Java:奇怪的RandomAccess 我们之前在分析那三个集合源码的时候,曾经说到:ArrayList和Vector继承了 接口,但是LinkedList并没有,我们还知道继承了这个接口,就意味着其中元素支持 快速随机访问(fast random access) 。 Rando 阅读全文
posted @ 2020-01-20 16:11 天乔巴夏丶 阅读 (147) 评论 (0) 编辑
摘要:[toc] 删除链表元素:哨兵节点 83. 删除排序链表中的重复元素Ⅰ 题目描述 给定一个 排序链表 ,删除所有重复的元素,使得 每个元素只出现一次 。 这是一道标星为简单的题,难度不是很大。需要注意的几点是: 链表已经排好序,这样子的话,寻找重复元素,只要看下一个是否与前一个相等就好了。 还有一点 阅读全文
posted @ 2020-01-19 21:56 天乔巴夏丶 阅读 (21) 评论 (0) 编辑
摘要:[toc] 小白学Java:迭代器原来是这么回事 前文传送门: "Enumeration" 上一篇,我们谈到了那个古老的迭代器Enumeration,还谈到了取代他的新迭代器—— Iterator 。相比于以往,这个新物种又有哪些优点呢? 迭代器这个词,在没查找许多资料之前,我只知道个大概,我知道它 阅读全文
posted @ 2020-01-18 19:59 天乔巴夏丶 阅读 (151) 评论 (0) 编辑
摘要:[toc] Vector源码学习 前文传送门: "Java小白集合源码的学习系列:LinkedList" "Java小白集合源码的学习系列:ArrayList" Vector是JDK1.0中的集合,是集合中的老大哥,其中大部分的方法都被 synchronized 关键字所修饰,与ArrayList和 阅读全文
posted @ 2020-01-17 22:51 天乔巴夏丶 阅读 (121) 评论 (1) 编辑
摘要:[toc] LinkedList 源码学习 前文传送门 : "Java小白集合源码的学习系列:ArrayList" 本篇为集合源码学习系列的 学习部分,如有叙述不当之处,还望评论区批评指正! LinkedList继承体系 LinkedList和ArrayList一样,都实现了List接口,都代表着列 阅读全文
posted @ 2020-01-17 15:54 天乔巴夏丶 阅读 (139) 评论 (0) 编辑
摘要:[toc] 707.设计双向链表 链表简介 链表(LinkedList) 是一种线性表,但不是顺序表,因为它是通过节点直接的相互引用相互联系起来的。 由于不必按顺序存储, 链表在插入和删除的时候可以达到O(1)的复杂度 ,比顺序表快的多。但是查找一个节点或者访问特定编号的节点则需要O(n)的时间。 阅读全文
posted @ 2020-01-16 20:07 天乔巴夏丶 阅读 (17) 评论 (0) 编辑
摘要:[toc] ArrayList源码学习 本文基于JDK1.8版本,对集合中的巨头 ArrayList 做一定的源码学习,将会参考大量资料,在文章后面都会给出参考文章链接,本文用以巩固学习知识。 ArrayList的继承体系 ArrayList 继承了 AbstracList 这个抽象类,还实现了 L 阅读全文
posted @ 2020-01-15 21:04 天乔巴夏丶 阅读 (205) 评论 (2) 编辑
摘要:[toc] Leetcode动态规划【简单题】 动态规划 (Dynamic programming,简称DP),是一种把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划相较于递归,拥有更少的计算量。 53. 最大子序和 题目描述 给定一个整数数组 ,找到一个具有最大和的连续子数组(子数 阅读全文
posted @ 2020-01-14 19:43 天乔巴夏丶 阅读 (29) 评论 (0) 编辑
摘要:[toc] 小白学Java:老师!泛型我懂了! 泛型概述 使用泛型机制编写的程序代码要比哪些杂乱地使用Object变量,然后再进行强制类型转换地代码具有更好的安全性和可读性。 以上摘自《Java核心技术卷一》 在谈 泛型 的定义之前,我先举一个简单又真实的例子:如果我想定义一个容器,在容器中放同一类 阅读全文
posted @ 2020-01-13 23:50 天乔巴夏丶 阅读 (297) 评论 (0) 编辑
摘要:[toc] 小白学Java:包装类 学习了许久的Java,我们知道Java是一种面向对象的语言,万物皆对象。但是我们之前在说到Java基本数据类型的时候,由于处理对象需要额外的系统开销,于是出于对性能的考虑, 基本数据类型并不做为对象使用 。 既然是面向对象的,在Java中许多方法需要把对象作为参数 阅读全文
posted @ 2020-01-12 22:56 天乔巴夏丶 阅读 (141) 评论 (0) 编辑
摘要:[toc] "Java面向对象之异常【一】" Java面向对象之异常【二】 往期回顾:上一篇我们大致总结了异常的继承体系,说明了Exception和Error两个大类都继承于顶级父类Throwable,又谈到编译时异常与运行时异常的区别,谈到异常的处理方式,以及处理方式中关于捕获方式的几种类型。 本 阅读全文
posted @ 2020-01-11 19:24 天乔巴夏丶 阅读 (119) 评论 (0) 编辑
摘要:[toc] Java面向对象之异常【一】 终于完成本学期的最后一门考试,考试周的我,边复习通信之傅里叶变换,边学习Java的新知识。虽然很久没更,但是私底下的笔记满满,特地总结一波。 总结什么呢?异常!嗯?异常?最近倒是人有些异常……复习到一两点,早上早早起来刷题,不异常才怪。异常嘛,很好理解,就是 阅读全文
posted @ 2020-01-10 01:02 天乔巴夏丶 阅读 (54) 评论 (0) 编辑
摘要:浅谈Java中接口与抽象类的异同 抽象类 和 接口 这两个概念困扰了我许久,在我看来,接口与抽象类真的十分相似。期间也曾找过许许多多的资料,参考了各路大神的见解,也只能是简简单单地在语法上懂得两者的区别。硬着头皮,做出一波小总结。或许,学习了之后的知识,理解会更加深刻吧,奥利给! 语法上的区别 一个 阅读全文
posted @ 2020-01-04 16:40 天乔巴夏丶 阅读 (32) 评论 (0) 编辑