摘要:
本文对Java中的线程组和线程工厂的概念及API进行了简单的介绍,虽然这两个概念并不是非常重要,但是它们经常出现在很多线程相关的类的源码中。因此,了解它们对我们阅读和理解源码很有帮助。 阅读全文
摘要:
在上一篇文章中,我们已经学习了部分Java中的线程间通信方式。本文我们将会继续学习其他有关线程间通信的内容。 阅读全文
摘要:
线程是操作系统中独立的个体,但不同的线程之间难免会需要沟通和协作,因此线程间的通信就成为一个必须要解决的问题。可以说,线程间的通信可以大大提高任务处理的效率和对CPU的使用率。本文和下一篇文章将会对Java中关于线程间的通信机制进行详细的介绍。 阅读全文
摘要:
线程同步机制是一套用于协调线程间的数据访问及活动的机制,该机制用于保障线程安全以及实现这些线程的共同目标。Java平台提供的线程同步机制包括锁、volatile关键字、final关键字、static关键字以及一些相关的API。本文将会对Java中的这些线程同步机制进行介绍。 阅读全文
摘要:
线程安全是应用于多线程代码的一种计算机编程概念,它确保多个线程能够按照程序的设计正确的访问共享数据结构。本文将从线程安全的概念以及线程安全的特性两个角度来对线程安全进行介绍。 阅读全文
摘要:
多线程编程在为我们带来快捷和高效的同时也带来了潜在的风险。本文将会介绍在多线程编程中可能会面临的挑战和问题。只有理解这些问题及其产生的原因,我们才能够在遇到这些问题时使用合适的机制或语法来解决它们。 阅读全文
摘要:
线程是Java语言中不可或缺的重要功能,它能使复杂的异步代码变得更简单,从而极大地简化了复杂系统的开发。此外,要想充分发挥多处理器系统的强大计算能力,最简单的方式就是使用线程。随着处理器数量的持续增长,如何高效地使用并发正变得越来越重要。 阅读全文
摘要:
反射是指在运行时动态获取某个类型或对象的类型信息,并通过这些信息执行创建对象、调用方法、修改属性等操作的行为。反射机制是构建框架技术的基础所在,在阅读各种框架的源码时,我们会发现大量的反射代码。与反射有关的类和接口均位于java.lang.reflect包中。本文将会对Java中反射的内容进行全面的讲解。 阅读全文
摘要:
I/O是Input/Output的简写,它表示输入/输出。我们的程序经常会有与外界系统交互的需要,例如读写本地文件、操作数据库等场景,这时候就需要在我们的程序与外界系统之间传递数据。Java中的I/O体系为我们提供了丰富的API,这些类全部位于java.io包中,它们封装了与操作系统和网络交互的细节,使得我们在编写程序时可以专注于传递数据。 阅读全文
摘要:
在实现方法时,选择不同的数据结构会导致其实现风格以及性能存在着很大差异。简单的数组已经无法满足我们的需求,因此Java为我们提供了包含各种数据结构实现的集合框架。本文对Java中的集合框架从接口、实现和算法三个层面进行了全面的介绍。 阅读全文
摘要:
Lambda表达式是Java 8中最令人激动的新特性。使用lambda可以编写出更加简洁的代码,可读性也好过那些样板式的、笨重的匿名类。本文首先介绍了lambda表达式的定义和语法,然后通过一个生动的例子展示了如何在代码中使用lambda表达式,最后对关键概念函数式接口和方法引用进行了详细的阐述。 阅读全文
摘要:
我们在编写代码时,总是希望程序能够按照我们的逻辑和流程执行。但是,程序的执行并不总是一帆风顺的,经常会有各种意想不到的情况发生。Java提供了异常机制来帮我们处理这些问题。本文我们将对Java中的异常机制进行深入的学习。 阅读全文
摘要:
泛型是Java SE 5.0中新增的特性,它的本质是类型参数化,也就是说将参数看作是一个类型。这意味着我们在定义泛型类型时无需指定具体的类型,而在使用泛型类型的时候可以根据需要去指定不同的类型。使用泛型可以编写更加灵活和高效的代码。本文将对泛型进行详细的介绍。 阅读全文
摘要:
本文主要介绍Java中的数字和字符串,首先讨论了Java中的数字和字符,然后介绍了一个可以简化代码的编译器特性————自动装箱与拆箱,最后对Java中的字符串进行了详细的阐述。 阅读全文
摘要:
Object类是所有类的始祖,如果一个类没有使用extends关键字明确地指出它的父类,那么它就会继承Object类。可以说,所有类都直接或间接地继承了Object类。本文将对Object类中常用的方法进行介绍。 阅读全文