11 2021 档案
摘要:###4.四种Channel实现类 4.1 FileChannel FileChannel是一端连接硬盘文件的Channel,想要获得这个FileChannel可以使用open方法指定文件Path及读写选项操作打开或者通过InputStream、OutputStream或RandomAccessFi
阅读全文
摘要:###1.什么是NIO? Java NIO(New IO)在Java 1.4被引入,该API可以实现与传统IO完全不同的机制。对于NIO来说,其主要提供了新的对网络的多路复用IO技术。在面向网络的数据传输中,如果含有连接数很多而每次传输的数据量不是很大,那么这个场景会更适合使用NIO技术。 注意,J
阅读全文
摘要:###1.操作系统内存划分与缓存机制 首先,操作系统将虚拟内存(对物理内存的映射)划分为用户空间和内核空间,用户空间分配给应用程序,而系统的核心功能在内核空间中运行。这样的分隔可以保证用户程序出现问题(比如软件崩溃)不会影响到操作系统。 无论是使用Java传统的流I/O还是NIO,在传输数据时,都不
阅读全文
摘要:在Java中,Path类和Files类封装了在用户机器上处理文件系统所需的所用功能。这两个类在Java SE 7中被引入,组合这两个类操作文件、路径将比java第一个版本的File类要方便很多。
阅读全文
摘要:在Java API中,读入或写出一个字节序列的对象分别叫做输入流与输出流,这些字节序列的来源和目的地可以是文件、网络结构与内存块,抽象类InputStream与OutputStream构成了输入/输出(I/O)类层次结构的基础。
面向字节的流不适合与处理Unicode形式存储的信息,所以从抽象类Reader和Writer中继承出来一个专用于处理Unicode字符的类层次结构,这些类操作针对与两个字节的Unicode代码单元(一个char的表示范围)而不是的单个字节。
阅读全文
摘要:上一节介绍的是Java一些偏底层的保护多线程并发和同步安全的构建与机制。而这一部分的内容将展示部分Java平台提供好的一些较高实现层次类库,比如阻塞队列、线程安全的集合类、线程池与任务组和Fork-Join框架等。使用这些类库可以简单的实现相应的具有线程安全的操作,而无需担心手动编写类似代码时出现的问题。
阅读全文
摘要:基于OOP的思想,Java将每个线程作为一个线程对象,每个线程对象相应的具有从创建到终止的整个生命周期状态。由于在多线程环境下各个线程的运行次序具有不确定性,为了保护该环境下程序运行结果的正确性,Java有着一套相应的并发和同步机制,包括使用到不同锁与条件对象、关键字、数据结构和语言机制等。同时为了实现平台无关性,JVM还定义了一套Java内存模型(JMM)以规定程序如何使用统一的方式在不同平台上读取内存中的变量。
阅读全文
摘要:###5.算法 由于泛型机制的支持,对于集合可以实现很多通用算法。(泛型,迭代器,接口如Collection完成通用算法的编写) 5.1 排序与混排 Collection.sort对实现了List接口的集合进行排序,元素实现Comparable或调用时传入比较器,默认升序排列。 其内部调用了List
阅读全文
摘要:###4.视图与包装器 视图(view)即对原数据结构的数据根据不同方式映射成一个新集合(如HashMap的keySet),其特点是对视图进行操作,也会对原数据结构产生影响。 4.1 轻量级集合包装器 通过Arrays的asList方法将返回一个包装了普通Java数组的List包装器返回一个视图。该
阅读全文
摘要:###1.Java集合概述 在最初的Java版本只为常用的数据结构提供了很少的一组类:Vector、Stack、HashTable、BitSet与Enumeration。 随着Java2(JavaSE 1.2)的推出,设计人员推出了一组功能完善优点清晰又易于学习的数据结构。 1.1 将集合的接口与实
阅读全文
摘要:###1.泛型概述 泛型设计在JDK5被引入,它提供了一个类型参数,提前指示某种数据结构将操纵的数据类型,即可以在编译时检测出非法类型。 List list = new ArrayList<>(); 泛型的设计可以使程序有更强的可读性和安全性。 类型参数不能是基本数据类型 ###2.泛型类 一个泛型
阅读全文
摘要:###2.断言 断言机制允许在测试期间向代码插入一些检查语句。当代码发布时,这些插入的检测语句会被自动移走。 2.1 形式 assert 条件; 2)assert 条件:表达式; 条件为假则会抛出一个AssertionError异常,第二种形式,表达式将被传入AssertionError构造器作为一
阅读全文
摘要:###1.异常 1.1 处理错误 异常处理的任务就是将控制源从错误产生的地方转移给能够处理这种情况的错误处理器。 1.2 异常分类 在Java中,所有异常对象都是派生于Throwable类的一个实例。 对于Throwable类的两个子类: Error类:描述了Java运行时系统内部错误和资源耗尽错误
阅读全文
摘要:###7.代理 7.1 概念 假如你现在有这样两个需求: 1.为某个对象的某个方法做扩展,要求执行方法之前加一些逻辑,执行方法之后加一些逻辑。(例如添加日志) 2.传入的对象与方法不确定,也就是说你需要实现一个通用方法,这个方法能够对传入的任何对象的任何方法做扩展。 显然,对于传入的类型不确定,你需
阅读全文
摘要:###6.内部类 内部类即定义在另一个类中的类,使用内部类的主要原因有下面三点: · 内部类可以访问该类定义所在作用域中的数据,包括私有数据 · 内部类可以对同包中的其它类隐藏起来 · 匿名内部类适用于回调代码 6.1 内部类语法规则 内部类的对象实际上为外部类对象的一个属性。 · 内部类只对其外围
阅读全文
摘要:###3.lambda表达式 3.1 概念 带参数变量的表达式被称为lambda表达式。lambda表达式是一个可传递的代码块,在Java8被引入,使用场景为替换需要使用接口类型的变量。 lambda表达式的引入使Java提供了对函数式编程的支持。关于函数式编程是什么,见:https://www.c
阅读全文
摘要:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳
阅读全文
摘要:###2.回调 2.1 什么是回调: 在计算机科学中,回调函数是指一段以参数的形式传递给其它代码的可执行代码。简单地说,函数A的参数是一个函数,在A中执行这个参数函数的形式与过程就是回调。其中作为参数传入函数A的函数就是回调函数。一般在应用开发过程中,我门是负责编写回调函数的。将函数传入其它函数,要
阅读全文
摘要:###1.接口 接口不是类,接口是对一组行为的抽象,他是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。 1.1 概念解释 首先考虑现实世界中存在的"Human"类与"Dog"类,"Human"类拥有眼睛、嘴巴等域。可以派生出两种不同的Human男人、女人。"Dog"类可以派生出不同种类
阅读全文
摘要:###7.反射 能够分析类能力的程序称为反射,运用反射可以在运行时获取类与对象的信息,因此其主要使用人员为工具的构造者,在JavaBean中也大量运用了反射技术。下面是反射的一些应用: ·在运行时分析类的能力 ·在运行时查看对象属性 ·实现通用数组操作 ·利用Method对象,实现函数式编程 7.1
阅读全文
摘要:#3.泛型数组列表 Java数组可以不像C++那样必须在编译时确定长度,但Java数组仍然是定义长度后就不可更改了。这个问题可以由ArrayList类实现动态数组来解决。 ArrayList维护一个内部数组,若添加元素时数组已满,则会常见一个更大的数组,并把原值复制过来。 new ArrayList
阅读全文
摘要:###2.Object类 2.1 Object类是所有类的始祖,包括数组和其他类 2.2 equals方法 对于Java,==是比较内存地址是否相同,其实,equals方法来自于Object,其原始含义也是比较内存地址: public boolean equals(Object obj) { ret
阅读全文
摘要:整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ...,
阅读全文
摘要:###1.类,超类,子类 1.1 super关键字:super关键字可以在子类中使用以获取超类的public属性和方法。可以用于重写超类方法时获取超类的方法逻辑。 @Override public String getName() { System.out.println(super.getName
阅读全文
摘要:###2.类 2.1 类: 类是构造对象的蓝图或模板,由类构造对象的过程称为创建类的实例。一个Java源文件中只能有一个公有类,但可以有任意数目的非公有类。如果一个类中包含其他的类,在编译该类时会自动寻找引用类的class文件,若没有则会自动进行编译。 2.2 对象: 对象在类中的全局变量称为实例域
阅读全文
摘要:###1.面向对象程序设计概述 如果说算法+数据结构=程序,那么面向对象程序设计OOP(Object Oriented Programming)实际上就是对于一个问题,先考虑数据的组织形式,再根据问题设计数据的操作(算法)。因此在OOP中,数据是第一位的。 ####1.1 编程范式 什么是面向对象式
阅读全文
摘要:###1.数据类型 Java包含8中基本类型,包括4种整型,2种浮点型,1种表示Unicode编码字符的字符型以及1中布尔型 1.1 整型 byte 1字节 8个二进制位 -128~127 short 2字节 16个二进制位 int 4字节 32个二进制位 long 8字节 64个二进制位 数值后面
阅读全文
摘要:##Java程序设计环境 ###1.Java术语与介绍 JRE:Java Runtime Environment Java运行环境,Java程序运行所需组件,包括JVM和Java核心类库,面向使用者。 JDK:Java Development Kit Java开发工具,Java程序开发及运行所需组件
阅读全文
浙公网安备 33010602011771号