12 2022 档案

摘要:3. 关于volatile volatile关键字确保了应用中的可视性。如果你将一个域声明为volatile的,那么只要对这个域产生了写操作,那么所有的读操作就都可以看到这个修改。即便使用了本地缓存,情况也确实如此,volatile域会立即被写入到主存中,而读取操作就发生在主存中。 理解原子性和易变 阅读全文
posted @ 2022-12-26 22:19 就叫清风吧 阅读(27) 评论(0) 推荐(0) 编辑
摘要:2. 使用显示的Lock对象 Java SE5的java.util.concurrent类库还包含有定义在java.util.concurrent.locks中的显式的互斥机制。Lock对象必须被显式地创建、锁定和释放。因此,它与内建的锁形式相比,代码缺乏优雅性。但是,对于解决某些类型的问题来说,它 阅读全文
posted @ 2022-12-26 19:15 就叫清风吧 阅读(19) 评论(0) 推荐(0) 编辑
摘要:2. 解决共享资源竞争 前面的示例展示了使用线程时的一个基本问题∶你永远都不知道一个线程何时在运行。想象一下,你坐在桌边手拿叉子,正要去叉盘子中的最后一片食物,当你的叉子就要够着它时,这片食物突然消失了,因为你的线程被挂起了,而另一个餐者进入并吃掉了它。这正是在你编写并发程序时需要处理的问题。对于并 阅读全文
posted @ 2022-12-26 19:14 就叫清风吧 阅读(17) 评论(0) 推荐(0) 编辑
摘要:共享受限资源 1. 不正确访问资源 考虑下面的例子,其中一个任务产生产生偶数,而其他任务消费这些数字。而这些消费者任务的唯一工作就是校验偶数的有效性 package concurrency; /** * @author Mr.Sun * @date 2022年09月03日 21:49 * * <p> 阅读全文
posted @ 2022-12-26 10:49 就叫清风吧 阅读(23) 评论(0) 推荐(0) 编辑
摘要:从任务种产生返回值:Runnable是执行工作的独立任务,但是它不返回任何值。如果你希望在任务完成时能够返回一个值,那么可以实现Callable接口而不是Runnable接口。在Java SE5中引入的Callable是一种具有类型参数的泛型,它的类型参数表示的是从方法call()中返回的值,并且必 阅读全文
posted @ 2022-12-26 10:48 就叫清风吧 阅读(22) 评论(0) 推荐(0) 编辑
摘要:第二十一章:并发基本的线程机制 并发编程使我们可以将程序划分为多个分离的、独立运行的任务。通过使用多线程机制,这些独立任务(也被称为子任务)中的每一个都将由执行线程来驱动。一个线程就是在进程中的一个单一的顺序控制流,因此,单个进程可以拥有多个并发执行的任务,但是你的程序使得每个任务都好像有其自己的C 阅读全文
posted @ 2022-12-26 10:46 就叫清风吧 阅读(17) 评论(0) 推荐(0) 编辑
摘要:第二十章:注解 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用某些数据。 定义注释 package annotations; import java.lang.annotation.ElementType;import java.lang. 阅读全文
posted @ 2022-12-25 22:25 就叫清风吧 阅读(23) 评论(0) 推荐(0) 编辑
摘要:使用EnumSet代替标志 Set是一种集合,只能向其中添加不重复的对象。当然,enum也要求其成员都是唯一的,所以enum看起来也具有集合的行为。不过,由于不能从enum中删除或添加元素,所以它只能算是不太有用的集合。Java SE5引入EnumSet,是为了通过enum创建一种替代品,以替代传统 阅读全文
posted @ 2022-12-25 22:23 就叫清风吧 阅读(20) 评论(0) 推荐(0) 编辑
摘要:第十九章:枚举类型关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。 enum的基本特性 我们已经知道,调用enum的values()方法,可以遍历enum实例。values()方法返回enum实例的数组,而且该数组中的元 阅读全文
posted @ 2022-12-25 22:21 就叫清风吧 阅读(16) 评论(0) 推荐(0) 编辑
摘要:第十八章:Java I/O系统 对程序语言的设计者而言,创建一个好的输入/输出(I/O)系统是一项艰难的任务。 File类既能代表一个特定文件的名称,又能代表一个目录下一组文件的名称。下面展示了如何使用“目录过滤器”显示我们符合条件的File对象 // Args: "D.*\.java"public 阅读全文
posted @ 2022-12-25 21:39 就叫清风吧 阅读(21) 评论(0) 推荐(0) 编辑
摘要:第十七章:容器深入研究完整的容器分类法:这张图是把工作中常用到的实现类和相关接口使用UML类图辨识出来 Java SE5新添加了: Queue接口及其实现PriorityQueue和各种风格的BlockingQueueConcurrentMap接口及其实现ConcurrentHashMap,它们也是 阅读全文
posted @ 2022-12-25 18:36 就叫清风吧 阅读(23) 评论(0) 推荐(0) 编辑
摘要:第十六章:数组Java中已经有了容器,为什么还需要数组呢,是因为数组可以持有基本类型吗?但是在泛型出来之后,通过自动包装机制,其实通过容器也能够持有基本类型。在Jav中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性用,这使得元素访问非常快速。但是为这种速度所付出的代价 阅读全文
posted @ 2022-12-25 18:34 就叫清风吧 阅读(17) 评论(0) 推荐(0) 编辑
摘要:第十五章:泛型我们希望达到的目的是编写更通用的代码,要使代码能够应用于“某种不具体的类型”,而不是一个具体的接口或类。 简单泛型​ 有许多原因促进了泛型的出现,而最引人注目的一个原因,就是为了创建容器类。有些情况下,我们确实希望容器能够同时持有多种类型的对象。但是,通常而言,我们只会使用容器类来存储 阅读全文
posted @ 2022-12-25 16:45 就叫清风吧 阅读(24) 评论(0) 推荐(0) 编辑
摘要:第十四章:类型信息运行时类型信息使得你可以在程序运行时发现和使用类型信息。 它使你从只能在编译期执行面向类型的操作的整锢中解脱了出来。并且可以使用某些非常强大的程序。对RTTI的需要,揭示了面向对象设计中许多有趣(并且复杂)的问题,同时也提出了如何组织程序的问题。 ​ 本章将讨论 Java 是如何让 阅读全文
posted @ 2022-12-25 15:08 就叫清风吧 阅读(21) 评论(0) 推荐(0) 编辑
摘要:第十三章:字符串​ 由于字符串在我们开发中使用频率是相当高的,本章内容也主要介绍了一些关于字符串常用的API,需要注意的是String对象是不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容,而最初的String对象 阅读全文
posted @ 2022-12-25 09:32 就叫清风吧 阅读(21) 评论(0) 推荐(0) 编辑
摘要:第十二章:通过异常处理错误Java的基本理念是“结构不佳的代码不能运行”。 ​ 发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。Java使用异常来提供一致的错误报告模型,使得构件能够与客户端代码可靠地沟通问题。 ​ 异常情 阅读全文
posted @ 2022-12-24 23:41 就叫清风吧 阅读(27) 评论(0) 推荐(0) 编辑
摘要:第十一章:持有对象如果一个程序只包含固定数量的且其生命周期都是已知的对象,那么这是一个非常简单的程序。 ​ 通常,程序总是根据运行时才知道的某些条件去创建新对象,在此之前,不会知道所需对象的数量,甚至不知道确切的对象。例如我们熟知的数组,它是编译器支持的类型,数组是保存一组对象的最有效的方式,如果你 阅读全文
posted @ 2022-12-24 23:40 就叫清风吧 阅读(41) 评论(0) 推荐(0) 编辑
摘要:最近阅读了《程序员修炼之道——从小工到专家》这本书,感触颇深,于是便写下自己的感想与诸位分享。 本书第一章,告诉了我们责任的重要性,提醒我们不要留着“破窗户”(低劣的设计、错误的决策、糟糕的代码)不修。石头汤与煮青蛙的故事告诉了我们团结的力量,不要忽略小事情,要时刻注意周围发生的事情,不要只局限于自 阅读全文
posted @ 2022-12-24 23:34 就叫清风吧 阅读(28) 评论(0) 推荐(0) 编辑
摘要:第十章:内部类可以将一个类得定义放在另一个类得定义内部,这就是内部类。 链接到外部类在最初,内部类看起来就像是一种代码隐藏机制;其实它还有其他用途。当生成一个内部类的对象时,此对象与制造它的外围对象之间就有了一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件。此外,内部类还拥有其外围类 阅读全文
posted @ 2022-12-22 21:22 就叫清风吧 阅读(43) 评论(0) 推荐(0) 编辑
摘要:第九章:接口接口也可以包含域,但是这些域隐式地是static和final的(因此接口就成为了一种很便捷的用来创建常量组的工具)。你可以选择在接口中显示地将方法声明为public的,但即使你不这么做,它们也是public的。因此,当要实现一个接口时,在接口中被定义的方法必须被定位为是public的;否 阅读全文
posted @ 2022-12-22 18:41 就叫清风吧 阅读(34) 评论(0) 推荐(0) 编辑
摘要:第六章:访问权限控制 本章讨论了类是如何被构建成类库的:首先,介绍了一组类是如何被打包到一个类库中的;其次,类是如何控制对其成员访问的。在Java中,关键字package、包的命名模式和关键字import,可以使你对名称进行完全的控制,因此名称冲突的问题是很容易避免的。 控制对成员的访问权限有两个原 阅读全文
posted @ 2022-12-22 13:28 就叫清风吧 阅读(38) 评论(0) 推荐(0) 编辑
摘要:第四章:控制执行流程 本章介绍了大多数编程语言都具有的基本特性:运算、操作符优先级、类型以及选择和循环等。例如布尔表达式、循环如while、do-While、for、分支判断如if-else以及选择语句switch-case-break等。由于本章的内容都是非常基础的语法知识,这里不再赘述。 第五章 阅读全文
posted @ 2022-12-22 13:27 就叫清风吧 阅读(33) 评论(0) 推荐(0) 编辑
摘要:第一章:对象导论 这一章主要是帮助我们了解面向对象程序设计的全貌,更多是介绍的背景性和补充性的材料。其实萌新应该跳过这一章,因为这章并不会去讲语法相关的知识,当然可以在看完这本书后续章节后,再来回看这一章,这样有助于我们了解到对象的重要性,以及怎样使用对象进行程序设计。 ​ Alan Kay曾经总结 阅读全文
posted @ 2022-12-22 13:25 就叫清风吧 阅读(195) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示