
java-se
文章平均质量分 67
掌握细节
szuaudi
编程小学生
展开
-
Java核心技术:Java SE 8的流库——Optional类型
get方法会在Optional值存在情况下获得其中包装的元素,或不存在的情况下抛出一个NoSuchElementException对象。有效使用Optional的关键是要使用这样的方法:它在值不存在的情况下会产生一个可替代物,而只有在值存在的情况下才会使用这个值。因为s.f()的类型为Optional,而不是T。假设有一个产生Optional对象的方法f,并且目标类型T具有一个可以产生Optional。第一条策略:在没有任何匹配时,产生相应的替代物。用来创建一个不包含可选值的Optional对象。原创 2023-05-23 10:54:37 · 502 阅读 · 0 评论 -
ThreadLocal源码解读
ThreadLocal源码解读转载于:ThreadLocal源码解读 - 活在夢裡 - 博客园1. 背景ThreadLocal源码解读,网上面早已经泛滥了,大多比较浅,甚至有的连基本原理都说的很有问题,包括百度搜索出来的第一篇高访问量博文,说ThreadLocal内部有个map,键为线程对象,太误导人了。ThreadLocal非常适合对Java多线程编程感兴趣的程序员作为入门类阅读,原因两方面:加上注释源码也不过七八百行。结构清晰,代码简洁。本文重点导读ThreadLocal中的嵌套内转载 2021-07-12 22:38:07 · 186 阅读 · 0 评论 -
Java核心技术:输入与输出——对象输入/输出流与序列化
对象输入/输出流与序列化保存和加载序列化对象理解对象序列化的文件格式修改默认的序列化机制序列化单例和类型安全的枚举版本管理为克隆使用序列化对象序列化可以将任何对象写出到输出流中,并在之后将其读回。保存和加载序列化对象为了保存对象数据,首先需要打开一个ObjectOutputStream对象。ObjectOutStream out = new ObjectOutStream(new FileOutputStream("employee.dat"));可以直接调用ObjectOutputStream原创 2021-05-09 01:12:20 · 512 阅读 · 1 评论 -
Java核心技术:Java SE 8的流库——并行流
并行流原创 2021-04-25 13:06:25 · 180 阅读 · 0 评论 -
Java核心技术:输入与输出——输入输出流
抽象类InputStream和OutputStream构成了输出/输出(I/O)类层次结构的基础。读写字节InputStream类有一个抽象方法:abstract int read()这个方法将读入一个字节,并返回读入的字节,或者在遇到输入源结尾时返回-1。在设计具体的输入流类时,必须覆盖这个方法以提供适用的功能。InputStream类还有若干非抽象的方法,可以读入一个字节数组,或者跳过大量的字节。这些方法都要调用抽象的read方法,因此,各个子类都只需覆盖这个方法。public abs原创 2021-04-23 11:48:00 · 210 阅读 · 0 评论 -
Java核心技术:Java SE 8的流库——收集结果
收集结果收集到映射表中群组和分区下游收集器约简操作原创 2021-04-12 19:26:03 · 188 阅读 · 0 评论 -
Java核心技术:Java SE 8的流库——转换流
filterfilter转换可会产生一个流,它的元素与某种条件匹配。// 将一个字符串流转换为只包含长单词的另一个流List<String> wordList = ...;Stream<String> longWords = wordList.stream().filter(w -> w.length() > 12);filter的引元是Predicate<T>,即从T到boolean的函数。map可以使用map方法并传递执行转换的函数来实现按原创 2021-04-11 21:42:30 · 121 阅读 · 0 评论 -
Java核心技术:Java SE 8的流库——流的创建
用Collection接口的stream方法可以将任何集合转换为一个流。public interface Collection<E> extends Iterable<E> { default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); } // java.lang.Iterable#spliterator @Override de原创 2021-04-11 18:46:19 · 155 阅读 · 0 评论 -
Java核心技术:集合——遗留的集合
Hashtable类Hashtable类与HashMap类的作用一样,它们拥有相同的接口。Hashtable的方法是同步的。如果对同步性或与遗留代码的兼容性没有要求应该使用HashMap。如果需要并发访问,则要使用ConcurrentHashMap。枚举遗留集合使用Enumeration接口对元素序列进行遍历。Enumeration接口有两个方法...原创 2020-05-08 12:55:48 · 392 阅读 · 0 评论 -
Java核心技术:集合——视图与包装器
轻量级集合包装器Arrays类的静态方法asList将返回一个包装了普通Java数组的List包装器。Card[] cardDeck = new Card[52];...List<Card> cardList = Arrays.asList(cardDeck);这个方法可以将数组传递给一个期望得到列表或集合参数的方法。返回的对象不是ArrayList。它是一个视图对象。改...原创 2020-05-08 10:16:24 · 291 阅读 · 0 评论 -
Java核心技术:集合——映射
Java核心技术:集合——具映射基本映射操作更新映射项映射视图弱散列映射连接散列集与映射枚举集与映射标识散列映射基本映射操作Java类库为映射提供了两个通用的实现:HashMap和TreeMap。这两个类都实现了Map接口。散列映射对键进行散列;树映射用键的整体顺序对元素进行排序,并将其组织成搜索树;散列或比较函数只能作用于键。如果不需要按照排列顺序访问键,就最好选择散列。往映射...原创 2020-04-21 17:14:23 · 320 阅读 · 0 评论 -
Java核心技术:集合——具体的集合
Java核心技术:集合——具体的集合链表在上表中,以Map结尾的类实现了Map接口,除此外,其他类都实现了Collection接口。链表在Java语言中,所有链表都是双向连接的(doubly linked)。...原创 2020-04-17 16:46:55 · 172 阅读 · 0 评论 -
Java核心技术:集合——Java集合框架
Java核心技术:集合——Java集合框架将集合的接口与实现分离Collection接口迭代器泛型使用方法集合框架中的接口Java最初版本只为最常用的数据结构提供了很少一组类:Vector、Stack、Hashtable、BitSet与Enumeration接口,其中的Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制。Java SE 1.2之后,设计人员退出了一组功能更...原创 2020-04-14 12:55:56 · 352 阅读 · 0 评论 -
Java核心技术:泛型程序设计——泛型代码和虚拟机
Java核心技术:泛型程序设计——泛型代码和虚拟机原创 2020-04-13 18:02:01 · 164 阅读 · 0 评论 -
Java核心技术:泛型程序设计——泛型类与泛型方法
Java核心技术:泛型程序设计——为什么要使用泛型程序设计类型参数的好处泛型程序设计(Generic programming)意味着编写的代码可以被很多不同类型的对象所重用。类型参数的好处在Java中增加泛型类之前,泛型程序设计使用继承实现的。ArrayList类只维护一个Object引用的数组:public class ArrayList // before generic classe...原创 2020-04-10 21:52:45 · 415 阅读 · 0 评论 -
Java核心技术:异常、断言和日志——使用异常机制的技巧
Java核心技术:异常、断言和日志——使用异常机制的技巧书中虽明确列出了使用异常机制的技巧,但这些技巧并不是看了就能掌握的,要想使用好这些技巧还是要在编程中练习、感悟异常处理不能代替简单的测试示例编写一段代码,试着上百万次对一个空栈进行退栈操作。在试试退栈操作前,首先查看栈是否为空。if (!s.empty()) s.pop();强行进行退栈操作,捕获哦哦EmptySta...原创 2020-04-09 18:06:04 · 160 阅读 · 0 评论 -
Java核心技术:异常、断言和日志——捕获异常
Java核心技术:异常、断言和日志——捕获异常捕获异常捕获多个异常再次抛出异常与异常链finally字句带资源的try语句分析堆栈轨迹元素异常的捕获比较简单,只列出需要注意的地方捕获异常使用try/catch语句块捕获一个异常。编译器严格地执行throws说明符,如果调用了一个抛出受查异常的方法,就必须对它进行处理,或者继续传递。通常,应该捕获那些知道如何处理的异常,而将那些不知道怎样处...原创 2020-04-08 19:08:18 · 421 阅读 · 0 评论 -
Java核心技术:异常、断言和日志——处理错误
Java核心技术:异常、断言和日志——处理错误异常分类声明受查异常如何抛出异常创建异常类异常分类在Java语言中,异常对象都是派生于Throwable类的一个实例。所有的异常都是由Throwable继承而来,在下一层立即分解为两个分支:Error和Exception。Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对象。如果出现了这样的...原创 2020-04-07 23:08:34 · 217 阅读 · 0 评论