Java集合详解

通常,程序总是根据运行时才知道的某些条件去创建新的对象。在此之前,无法知道所需对象的数量甚至确切类型。为了解决这个普遍的编程问题,需要在任一时刻和任意位置创建任意数量的对象。因此,不能依靠创建命名的引用来持有每一个对象:MyType aReference ,因为从来不会知道实际需要多少个这样的引用。Java 中有多种方式保存对象(准确来说是对象的引用)。数据是 Java 中保存一组对象最有效的方式,如果想要保存一组基本类型数据,也推荐使用数组。但是数组具有固定的大小尺寸,而且在更一般的情况下,在写程序的时候并不知道需要多少个对象,或者是否需要更复杂的方式来存储对象,因此数组尺寸固定这一限制就显得太过受限了。

Java线程详解

并发编程使我们可以将程序划分为多个分离的、独立运行的任务。通过使用多线程机制,这些独立任务(也被称为子任务)中的每一个都将执行线程来驱动。一个线程就是在进程中的一个单一的顺序控制流,因此,单个进程可以用于多个并发执行的任务,但是你的程序使得每个任务都好像有自己的CPU一样。其底层机制是切分CPU时间,但通常你不需要考虑它。

Java中NIO、BIO和AIO介绍

原文链接:mp.weixin.qq.com

BIO、NIO、AIO的基本定义和类比描述:

  • BIO(Blocking I/O): 同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。这里使用那个经典的烧开水例子,这里假设一个烧开水的场景,有一排水壶在烧开水,BIO的工作模式就是,叫一个线程停留在一个水壶那,直到这个水壶烧开,采取处理下一个水壶。但是线程实际上在等待水壶烧开的时间段什么都没有做。

  • NIO(New I/O): 同时支持阻塞和非阻塞模式,但这里我们以同步非阻塞来说明,那么什么叫做同步非阻塞?如果还拿烧开水来说,NIO的做法是叫一个线程不断的轮询每个水壶的状态,看看是否有水壶的状态发生了改变,从而进行下一步的操作。

  • AIO(Asynchronous I/O):异步非阻塞I/O模型。异步非阻塞和同步非阻塞的区别在哪里?异步非阻塞无需一个线程去轮询所有IO操作的状态改变,在相应的状态改变后,系统会通知对应的线程来处理。对应到烧开水中就是,为每个水壶上面装了一个开关,水烧开之后,水壶会自动通知我水烧开了。

Java异常详解

摘要 (来自于 Java编程思想)

Java 的基本理念是“结构不佳的代码不能运行”。

改进的错误恢复机制是提高代码健壮性的最强有力的方式。错误恢复在我们所编写的每一个程序中都是基本的要素,但是在 Java 中它显得格外重要,因为 Java 的主要目标之一就是创建供他人使用的程序构件。发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源能通过某种方式,把适当的信息传递给某个接受者–该接受者将知道如何正确处理这个问题。

Java内部类详解

内部类的定义:一个定义在另一个类中的类,叫做内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。然而必须要了解,内部类与组合是完全不同的概念,这一点很重要。在最初,内部类看起来就像是一种代码隐藏机制:将类置于其他类的内部。但是,你将会了解到,内部类远不止如此,它了解外部类,并能与之通信,而且你用内部类写出的代码更加更加优雅而清晰,尽管并不总是这样(而且Java8的Lambda表达式和方法引用减少了编写内部类的需求)。

Java基础知识点

面向过程编程和面向对象编程的区别在于:面向过程编程强调的是整个软件系统由一个个函数构成,最小的程序单元是函数,其中作为程序入口的函数称之为主函数,主函数依次调用其他函数,普通函数之间可以相互调用,从而实现整个系统的设计。 面向对象的设计是使所需要的对象具备某些功能,强调的是具备某些功能的对象。面向对象主要有三大特征:封装(Encapsulation),继承(Inheritance),多态(Polymorphism)。

Java运行环境

操作系统(OS)是管理计算机硬件和软件资源的系统软件,为计算机程序提供公共服务。分时操作系统可以有效地使用系统,还可以包括处理器处理器事件、海量存储、打印和其他资源的成本分配的会计软件。对于诸如输入输出和内存分配这样的硬件功能,操作系统充当了程序和计算机硬件之间的中介,尽管应用程序代码通常是由硬件直接执行的,并且常常使系统调用一个OS函数或被它中断。在许多设备上都有操作系统,这些设备包括电脑—-从手机和视频游戏机到网络服务器和超级计算机。Android是一种基于Linux的自由及开发源代码的操作系统。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×