首页
关于
留言
归档
动态
友链
推荐
虫洞
开往
憶夣
累计撰写
57
篇文章
累计创建
11
个标签
累计收到
2
条评论
栏目
首页
关于
留言
归档
动态
友链
推荐
虫洞
开往
目 录
CONTENT
Java核心技术卷I-憶夣
以下是
Java核心技术卷I
相关的文章
2023-04-04
14、并发
## 摘要 本文系统介绍了Java并发编程的核心知识,涵盖线程基础与高级特性。 **线程基础**:讲解了线程的创建(应调用`start()`而非直接调用`run()`)、中断机制(通过`interrupt()`设置中断标志)、六种线程状态(New、Runnable、Blocked、Waiting、Timed Waiting、Terminated)及其转换,以及线程属性(优先级、守护线程、未捕获异常处理器)。 **同步机制**:详述了`ReentrantLock`与`Condition`的使用、`synchronized`关键字及内部锁的原理与局限、`volatile`域和`final`变量的可见性保证、原子变量(如`AtomicLong`、`LongAdder`)、读写锁(`ReentrantReadWriteLock`)、锁测试与超时、`ThreadLocal`线程局部变量,以及死锁问题,并说明了弃用`stop`和`suspend`方法的原因。 **并发工具**:介绍了阻塞队列(如`ArrayBlockingQueue`、`LinkedBlockingQueue`等)用于线程间安全数据传递;`java.util.concurrent`包中的高效线程安全集合(如`ConcurrentHashMap`及其原子更新、批操作方法);`Callable`与`Future`用于获取异步任务结果;执行器(`Executor`)框架实现线程池管理,包括缓存池、固定大小池、预定执行、任务组控制、Fork-Join框架和`CompletableFuture`异步编程;以及同步器(信号量`Semaphore`、倒计时门栓`CountDownLatch`、障栅`CyclicBarrier`、交换器`Exchanger`、同步队列)用于协调线程间的协作。 整体而言,文章全面覆盖了Java并发编程从底层线程管理到高层并发工具的使用方法与最佳实践。
2023-04-04
63
0
0
Java
2023-04-04
9、集合
## 摘要 本文系统介绍了Java集合框架的核心知识,涵盖六大主题: **1. 集合框架架构**:框架的核心思想是将接口与实现分离,基础接口为Collection和Map。Iterator迭代器用于遍历集合,支持forEach循环和lambda表达式。集合类层次包括List(有序)、Set(不重复)和Map(键值对)等接口。 **2. 具体集合实现**:LinkedList适用于频繁插入删除,ArrayList适用于随机访问;HashSet基于散列表实现高效查找;TreeSet基于红黑树提供有序集合;ArrayDeque和LinkedList实现双端队列;PriorityQueue基于堆结构实现优先级排序。 **3. 映射**:HashMap和TreeMap是两种主要实现,Java 8新增了merge、compute等方法简化映射更新。WeakHashMap使用弱引用管理键,LinkedHashMap可按插入或访问顺序迭代,支持LRU缓存实现;EnumSet和EnumMap为枚举类型提供高效实现。 **4. 视图与包装器**:包括轻量级包装器(Arrays.asList、nCopies等)、子范围视图、不可修改视图、同步视图和受查视图,它们包装底层集合而非复制数据。 **5. 算法**:Collections类提供排序(归并排序)、混排、二分查找、批操作等实用算法。 **6. 遗留集合**:包括Vector、Hashtable、Properties、Stack和BitSet等,其中Properties支持文件读写,BitSet高效存储位序列。
2023-04-04
102
0
0
Java
2023-04-04
8、泛型程序设计
## 摘要 本文系统介绍了Java泛型程序设计的核心概念与实践要点。**定义简单泛型类**通过类型参数T实现类型安全的通用类(如Pair);**泛型方法**使用`<T>`声明,调用时可显式指定或由编译器自动推断。**类型变量限定**利用`extends`和`&`对T添加上界约束,确保类型能力。 **类型擦除**是泛型在虚拟机中的实现机制——泛型信息被擦除,类型参数替换为限定类型(无限定则为Object),编译器自动插入必要的强制转换和桥方法以保持多态与类型安全。 泛型存在多项**约束**:不能用基本类型实例化、不能创建参数化数组、不能在静态上下文中使用类型变量、不能抛出或捕获泛型实例、不能实例化类型变量本身等。可通过`Supplier<T>`等函数式接口变通解决实例化问题。 **继承规则**上,`Pair<S>`与`Pair<T>`互不兼容。**通配符**提供灵活的类型匹配:`? extends T`用于安全读取,`? super T`用于安全写入,`?`为无限定通配符仅可读null。通配符捕获机制允许通过辅助泛型方法间接操作通配符类型。 最后,**反射与泛型**结合方面,`Class<T>`和`Constructor<T>`等类已泛型化,`java.lang.reflect`包提供了`TypeVariable`、`WildcardType`、`ParameterizedType`等接口,可在运行时获取泛型类型声明信息。
2023-04-04
52
0
0
Java
2023-04-04
7、异常、断言和日志
七、异常、断言和日志(1)受检查的异常:这种在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。(2)不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。7.1
2023-04-04
60
0
0
Java
2023-04-04
6、接口、lambda 表达式与内部类
六、接口、lambda 表达式与内部类接口(interface)技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现使用 lambda 表达式, 可以用一种精巧而简洁的方式表示使用回调或变量行为的代码。内部类技术主要用于设计具有相互协作关系的类集合。代理(proxy)是一种实现任意接口的对象
2023-04-04
50
0
0
Java
2023-04-04
5、继承
五 继承5.1 类、超类和子类关键字this一是引用隐式参数二是调用该类其他的构造器关键字super一是调用超类的方法二是调用超类的构造器方法调用过程注1:方法的名字和参数列表称为方法的签, 如 public int setAge(int age),签名为 setAge(int)注2:若子类中定义一
2023-04-04
62
0
0
Java
2023-04-04
4、对象和类
第四章 对象和类4.1 面向对象程序设计概述对象的三个主要特性对象的行为(behavior)对象的状态(state)对象标识(identity)类之间的关系依赖(“uses-a”):如果一个类的方法操纵另一个类的对象, 我们就说一个类依赖于另一个类。聚合(“has-a”):聚合关系意味着类A 的对象
2023-04-04
52
0
0
Java
2023-04-04
3、Java基本程序设计结构
第三章 Java基本程序设计结构3.3 数据类型Java 是一种强类型语言。这就意味着必须为每一个变量声明一种类型: 在Java 中, 一共有8种基本类型(primitive type ), 其中有4 种整型、2 种浮点类型、1 种用于表示Unicode 编码的字符单元的字符类型char和1 种用于
2023-04-04
57
0
0
Java