1. Java 程序的语法
1.1 标识符的命名规范
标识符:给类或者变量类的方法属性命名都是标识符
组成必须是: 首字母不能是数字
1.2 约定
- 类:首字母大写
- 变量、方法名、属性首字母小写
- 包全部小写(包 Package: 相对于操作系统文件夹)
- 驼峰式命名
- 见名知意
2. Java 的输入输出
(输入)
(输出)
3. 基本类型(8大)
3.1 整数:
3.2 小数:
3.3 字符:
3.4 布尔:
4. 数据类型的转换
4.1 自动类型转换
- 数据类型兼容
- 低的数据类型赋值给高的数据类型
4.2 强制类型转换
高的数据类型赋值低的数据类型
- 溢出
- 精度的丢失
5. 操作符
- 算术运算:(不建议 byte,short,char 进行操作,如果一定要操作,都默认转换成 int 操作)
- 比较运算符:
- 逻辑运算符:(返回 Boolean)
- 位运算:
- 三目运算: (条件成立,返回值1,否则返回值2)
6. Java 流程控制语句
6.1 顺序结构
:(加强型 for 循环)
:for(数据类型 变量名 : 数组)
6.2 分支结构
6.3 循环结构
7. Java 面向对象
7.1 计算机语言发展
- 机器语言:0 1
- 汇编语言
- 初级编程语言:passic,vb,vc,dephi,PHP,ASP
- 高级语言:C#,C++,Java,Object-C
7.2 语言又分为两种
- 面向过程:vc
- 面向对象:Java,C++
面向过程是面向对象的基础,面向对象依赖于面向过程,他们之间不存在冲突
面向对象(OO),面向对象的编程(OOP),面向对象的分析(OOS),面向对象的设计(OOD)
面向过程 → 侧重于业务流程的实现,算法的本身
面向对象 → 侧重于实现业务的事物,调用着程序的指挥官
面向对象:编程最小单位
8. Java 定义
8.1 Class(类)
把具有相同属性与行为的一系列事物统称为一个类。例如:动物,鱼 <・)))><<
8.1.1 定义类的语法:
8.2 引用类型
类,接口,数组
8.3 属性的定义
类的属性也可以称为类的成员变量,类的成员属性,域;Java 的数据类型 属性名
类的属性如果不赋值,会有默认值,基本类型默认值都与0相关,引用类型默认值都是 null
8.4 方法(函数)
是具有特定功能的封装
8.4.1 方法的定义:
8.5 返回值类型
可以是 Java 的数据类型:基本类型,引用类型,void
8.6 对象
是客观存在的,是类的实例;类是对象的模版(万物皆对象)
创建对象:
调用对象的属性或者行为: 代表引用
对象名.属性,对象名.行为(参数列表);
8.7 类的属性
成为类的成员属性,全局变量会有默认值
默认值规则:byte,short,int,long 默认值:0
8.8 package(包)
相当于操作系统里面的文件夹
包主要是为了解决开发过程中类的命名冲突问题
一般把完成特定功能的代码放在同一个包里
:Java 核心类包,默认都已经导入,不需要手工导入
:Java 的工具类包
9. Java 面向对象
面向过程:注重程序的流程,数据结构与算法,参与者就是它本身
面向对象:注重的事物的属性与行为,参与者更多是一个指挥者
9.1 extends(继承)
继承是单继承:一个类只能有一个直接父类,但一个父类可以有多个子类
Java 中没有多继承,但是有多重继承,所有类的顶级父类是 Object 类
9.2 继承关系中,类的初始化顺序
- 父类的静态 static
- 子类的静态
- 父类的普通(属性与方法) 代码
- 父类的构造
- 子类的普通
- 子类的构造
9.3 overload(方法的重载)
- 发生在同一个类中
- 方法名相同
- 参数列表不同(个数不同,参数数据类型不同,个数与数据类型都不相同)
- 与返回值类型无关,与访问修饰符无关
9.4 override(继承方法的覆盖 / 重写)
在继承关系中,子类对父类的方法的重新实现
- 方法名与父类相同
- 参数列表也相同
- 返回值类型也相同,或者可以隐式转换成父类的返回值类型
9.5 继承转型
- 向上转型:把子类对象转换成父类对象(是安全的,但子类对象的自身属性会被隐藏)
- 向下转型:把父类对象转换成子类对象
- 不允许直接 new 父类赋值给子类的向下转型
- 可以向上转型,再向下转型
9.6 混合类型转型
只能骗过编译器,运行会发生转换异常
9.7 访问修饰符
修饰符:控制别的类对本类的属性与方法的访问权限
面向对象的封装,就是通过访问修饰符来控制访问权限
- 修饰符 数据类型 属性名;
- 修饰符 返回值类型 方法名(参数列表)
- 修饰符 class 类名{}
- public:公共权限
- protected:受保护的
- default / 不写:默认
- private:私有的
9.8 instanceof(判断对象类型)
对象名 instanceof 类名:用来判断对象是否是类的实例
10. Java 中的常用方法
10.1 构造方法
- :返回类的类路径 + @+hascode对应的16进制数
- :对象(Object)的比较 equals与==相同
- : 返回内存地址的整数
10.2 字符串序列(String)
构造:
10.3 构造字符串对象
String s = "hello";
10.4 字面量值赋值
String s = new String("hello");
10.5 常用方法
10.6 Object 类
Object 是 Java 的祖先类,基类,金字塔最顶端的类,最小的细胞类
- 如果是基本类型(byte short int long char float double boolean)
== 比较的内容(值) - 如果比较是引用类型(类 接口 数组)
== 比较的是内存地址
- equals 只能用于引用类型的比较
比较的时候看当前对象的类里面有没有重写 equals 方法,如果没有重写 equals 方法,默认调用 Object 里面的 equal 方法
如果重写 equals 方法,那么按照当前类中 equals 方法的逻辑进行比较
- 如果两个对象 equals() 返回true,那么 hashCode() 值会相同,但是两个对象 hashCode() 相同,两个对象未必能 equals() 相等
10.7 Java 重写
- 继承关系中,子类对父类的方法重写实现
- 方法名相同
- 参数列表也相同
- 返回值类型也相同或者可以隐式转换成父类的返回值类型
- 访问修饰符的权限不能低于父类
10.8 final 关键字
final 修饰变量:就变成常量,不可以变
final 修饰方法:就变成最终方法,不可以被重写 override
final 修饰类:类就不可以被继承 (太监类)
10.9 StringBuffer 可变的字符串序列
:往字符串追加内容
:往字符串指定位置追加内容
:删除字符串从 start 开始到 end - 1 位置上的字符串
:让里面的内容反转
10.10 System
:输入流
:输出流
10.11 获取控制台的输入对象
10.12 GC(garbage Collect) 垃圾回收器
Java 程序垃圾是不需要程序员去手工回收,系统(JVM)在后台启动一个线程(守护线程) 每隔一定的时间,自动调用方法,扫描系统中长时间
未使用对象,或者对象指向null,自动回收这些对象。
调用该对象的方法来释放占用的内容空间,当然程序员也可以手工调用
10.13 java.util.Date 时间类
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类
10.13.1 Date 时间格式
yyyy:四位年
MM:月
dd:日
hh:12进制时
HH:24进制时
mm:分
ss:秒
10.14 Math 数学工具类
10.15 基本类型的包装类
基本类型的包装类里面都提供了操作该基本类型的属性与方法
10.16 数组
Java 数组用来存储具有相同数据类型的若干个数据的集合,数组长度不可变
10. 16.1 一维数组的定义
一个一维数组里面每个元素都是一个一维数组
- 动态定义
- 申明: 数据类型[] 变量名(数组名);
- 初始化:数组名 = new 数据类型[length];
- 数据类型[] 变量名(数组名) = new 数据类型[length];
- 静态定义
- 数据类型[] 数组名 ={数据1,......数据n}
10.16.2 二维数组的定义
易出现异常
:数组下标越界异常
11. 排序算法
11.1 冒泡排序
11.2 选择排序
11.3 查找算法
- 全部遍历
- 二分查找(折半查找):适合已经排好序的数组
12. abstract 抽象
12.1 抽象方法
一个方法没有方法体{}
访问修饰符 abstract
返回值类型 方法名(参数列表);
这个时候方法就必须申明为抽象方法(用关键字 abstract 修饰)
12.2 abstract 抽象类
访问修饰符(default protected public)
12.3 抽象类
- 可以有抽象方法,也可以没有抽象方法
- 抽象类可以有构造方法,但是不能 new 操作
- 抽象类中可以有成员变量(属性)成员方法
- 抽象类中可以有常量
- 抽象类可以继承其他的类
- 如果一个类继承一个抽象的类,要不继续声明为抽象类,要么重写抽象类中的所有抽象方法
- 抽象类用来被继承的,只能单继承,抽象类与子类存在 instanceof 关系
12.4 接口(interface)
- 接口是一种特殊的抽象,接口中的方法全部都是抽象的
- 接口中方法默认都是 public abstract 都是抽象的
- 接口中不能有成员变量方法
- 接口中可以有常量,默认都是public final
- 接口没有构造,不能实例化
- 接口不能继承类
- 接口可以继承接口,接口与接口的继承多继承
- 接口是用来被实现的,一个类可以实现多个接口,一个类可以实现多个接口主要是为了弥补 Java 单继承缺陷
12.5 抽象类与接口对比
13. Java 的集合类框架
13.1 数组
数组定长的定义后大小不可以变化的
13.2 Collection:集合类框架的顶端接口
13.2.1 常用方法
13.2.2 Collection 子接口
List 接口:有序的,可以重复的集合接口
13.2.3 常用实现类
- ArrayList,LinkedList,Stack,Vector
- ArrayList 取数据块,插入慢
- LinkedList 取数据慢,插入快
- ArrayList 与 Vector:Vector多线程安全的
- Set:无序的,不可以重复的集合
- 常用实现类 HashSet,TreeSet,HashSet
- 去重:先调用当前对象的 hashCode 去集合里面找,如果没有相同的就会放入集合,如果有相同的继续调用 equals(),如果有 equals 就不放入,如果没有相同的就放入
- Map 接口: 键值对存储
- key(键)是一个 Set 集合,不可以重复值;value(值) 是一个可重复的集合
- 常用实现类:HashMap,HashTable,TreeMap
13.2.4 List 常用的方法
- :在指定位置上添加元素
- :把集合转换成数组
14. Java 泛型
指定参数或者集合的数据类型
- 用法
- 泛型好处
- 指定存放的数据类型,提升安全性
- 指定存放的数据类型,取数据时候减少强制类型的转换,减少出错的概率,同时提升程序的运行效率
15. Java 的异常处理(Exception)
15.1 Throwable 类
子类 Error 是程序错误,不可以运行或者内存溢出,断电,程序是无法捕获的
Exception 程序运行过程中输入输出计算结果不当发生
15.2 异常处理五大关键字
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/1133.html