01Java语言基础
文章
01 Java基础
Java 基础 Java 基础 0 引言 如何快速掌握一门语言 Java特性和优势 JDK、JRE和JVM 编译和解释 Java 各版本的新特性 Java 与 C++ 的区别 第一个Java程序 位、字节、字符、字长 1 注释、标识符和关键字 注释 标识符 关键字 2 数据类型 基本类型 引用类型 包装类型 字面值和转义字符 3 基本类型转换 转换规则 float 与 double 隐式类型转换 显示类型转换 4 变量常量 变量 变量作用域 变量初始化 常量 变量的命名规则 5 运算符 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 条件运算符(?:) instanceof 运算符 运算符优先级 6 包机制和JavaDoc 包机制 JavaDoc 0 引言 本笔记主要介绍java提供的语言级别的支持,不包括标准库的内容。 如何快速掌握一门语言一个语言应该包括以下几个部分 语言基础:数据类型和变量、控制流程、数据结构、函数、面向对象、其他 标准工具库:数学、日期、字符串、系统、序列化等 内置高阶库:文件IO、网络编程、并发编程 ...
02 流程控制
流程控制 1 顺序结构 2 选择结构 if单选结构 if-else结构 if-else嵌套 switch 3 循环结构 while do…while 循环 for循环 增强 for 循环 4 break&continue break 关键字 continue 关键字 流程控制1 顺序结构 java的基本结构 2 选择结构if单选结构12345678910public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("这是 if 语句"); } }} if-else结构123456789101112public class Test { public static void main(String args[]){ int x = 3...
03 函数方法
函数方法 1 概述 方法定义 方法优点 使用规则 2 方法实现 方法定义 方法调用 void关键字 参数传递 3 高级用法 构造方法 finalize()方法 方法重载 可变参数 命令行传参 函数方法1 概述方法定义Java方法是语句的集合,在一起执行一个功能。 方法是解决一类问题的步骤的有序组合。 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用。 方法优点 程序变得简短清晰 有利于程序的维护 提高程序开发的效率 提到了代码的重用性。 使用规则 命名,首字母小写,驼峰命名法。 原子性,一个方法值完成一个功能 2 方法实现方法定义123456修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值;} 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字...
04 Java数组
Java 数组 1 概述 概念 数组声明 数组定义 数组遍历 数组参数 数组返回值 多维数组 Java 数组1 概述概念Java 语言中提供的数组是用来存储固定大小的同类型元素。 数组声明12dataType[] arrayRefVar; // 首选的方法dataType arrayRefVar[]; // 效果相同,但不是首选方法 数组定义 使用new关键字和数组的大小创建数组。数组中的每一个元素都使用默认初始化。基本类型被初始化位数值,引用类型被初始化位空。 使用花括号和数组中的元素,创建数组 12dataType[] arrayRefVar = new dataType[arraySize];dataType[] arrayRefVar = {value0, value1, ..., valuek}; 数组遍历数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 For-Each 循环。 for遍历 12345678910111213141516171819202122public clas...
05 面向对象的类与对象
类与对象 1 基本内容 类的定义 五种成分 访问权限修饰符 2 成员变量Field 变量类型 成员变量 初始化顺序 3 成员方法Method 4 构造方法Constructor 构造方法 对象创建 访问对象 5 代码块CodeBlock 静态代码块 实例代码块 6 内部类InnerClass 7 关键字 final this super instanceof 类与对象1 基本内容 建模全宇宙,用有限的代码描述无限的世界 类的定义属性和方法(变量和函数),对象即实例。放到一起就是对象。面相对象的本质就是以类的方式组织代码,以对象组织封装数据。OOP:Object oriented programming 抽象,把共同的部分抽取出来,组成一个类。 一个项目应该只存在一个主启动类。 对象:对象是类的一个实例 类:类是一个模板,它描述一类对象的行为和状态。 123456789101112131415161718public class Dog { String breed; int size; String colour; ...
06 面向对象的三大特征
面相对象的三大特征 1封装 2 继承 3 多态 4 重写、重载、重定义 定义 重写的原则 与重载的区别 方法访问的优先级 面相对象的三大特征1封装高内聚、低耦合。属性私有。 隐藏实现的细节。将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 提高系统的安全性。在getset中对输入数据进行安全检查。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。 提供统一的接口 更容易理解与维护。 实现封装的步骤 修改属性的可见性来限制对属性的访问(一般限制为private) 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问。get/set方法 2 继承继承的定义 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 继承本质上是一种代码复用的方法。也提高了代码的耦合程度。 所有没有父类的类默认继承Object类。 12345class 父类 {} cla...
07 接口和抽象类
接口与抽象类 1 抽象类 2 接口 3 对比 抽象类和接口比较 抽象类和接口选择 接口与抽象类1 抽象类 抽象类和抽象方法都使用 abstract 关键字进行声明。 抽象方法,是一种约束,只有方法的声明,没有方法的实现。如果一个类中包含抽象方法,那么这个类必须声明为抽象类。抽象类可以包含普通方法。 抽象类,非抽象子类必须实现抽象方法。任何子类必须重写父类的抽象方法,或者声明自身为抽象类。 抽象类和普通类最大的区别是,抽象类不能被实例化,只能被继承。 抽象类没有构造方法。 1234567891011public abstract class AbstractClassExample { protected int x; private int y; public abstract void func1(); public void func2() { System.out.println("func2"); }} 123456public class Abstra...
08 Java内部类
Java 内部类 1 概述 基本概念 基本作用 2 使用 成员内部类 静态内部类 局部内部类 匿名内部类 一次输出ABC的答案 重名变量的引用 3 原理 成员内部类无条件访问外部类的私有变量 局部内部类和匿名内部类只能访问局部final变量 静态内部类有特殊的地方吗? 4 常见的与内部类相关的笔试面试题 根据注释填写(1),(2),(3)处的代码 下面这段代码的输出结果是什么? Java 内部类1 概述基本概念内部类就是在一个类的内部定义一个类。 成员内部类 静态内部类 局部内部类 匿名内部类 基本作用 每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。内部类使得多继承的解决方案变得完整。 方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。 方便编写事件驱动程序。 方便编写线程代码。 2 使用123456789101112131415161718192021222324252627282930313233343536373839404142434445import java.lang....
09 Java反射
反射机制 1 反射概述 反射机制的作用 Class对象 反射机制的使用 反射机制的优点 反射的缺点 反射机制的使用 2 反射机制实现 Class 中的方法 Field中的方法 Method中的方法 Constructor中的方法 获取一个类的父类以及实现的接口 反射机制 深入解析 Java 反射(1)- 基础 Java反射超详细,一个快乐的野指针 1 反射概述反射机制的作用 通过java语言中的反射机制可以操作字节码文件(可以读和修改字节码文件。) 通过反射机制可以操作代码片段。(class文件。) Class对象Class对象的作用 每个类都有一个Class对象,包含了与类有关的信息,代表整个字节码。代表一个类型,代表整个类。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。 类加载相当于 Class 对象的加载,类在第一次使用时才动态加载到 JVM 中。也可以使用 Class.forName("com.mysql.jdbc.Driver") 这种方式来控制类的加载,该方法会返回一个 Clas...
10 Java泛型
泛型机制 1 泛型概述 基本概念 泛型的基本用法 2 优势 安全性 消除强制转换 避免了不必要的装箱、拆箱操作,提高程序的性能 提高了代码的重用行 3 泛型的使用 泛型类 泛型接口 泛型方法 4 泛型通配符 5 泛型中的 KTVE 6 泛型的实现原理 7 泛型与反射 反射 8 泛型最佳实践 8.1 父类泛型化(模板基类) 8.2 子类保留泛型(继续向下传递) 8.3 父类想“知道子类类型”:CRTP(自引用泛型) 9 复杂问题 复杂问题 1 类型安全地组合“处理器/策略/管道” 定义泛型接口 组合(关键:通配符) 复杂问题 2:泛型 + 继承做“注册表/工厂/插件” Key 用 Class<T>(类型令牌) 复杂问题 3:泛型集合 API 设计(复制、merge、填充) 复制:经典 copy merge:K/V 继承关系更复杂 复杂问题 4:构建泛型数据库框架 复杂问题 5:构建泛型缓存框架 复杂问题 6:构建泛型事件系统 复杂问题 7:根据请求值类型定位返回值类型 9 常见坑与建...














