Загрузил shaoming cong

Java笔记

Реклама
强制转换格式
新变量类型 想把原来的变量转换成的类型
不做重点
a
三元运算符
如何从键盘输入不同类型变量 (scanner 类)
(非要用)
If-else 结构
.equals 返回 true or false
Switch-case 结构
For 循环结构
While 循环
Do-while
嵌套循环
Break-continue 关键字
修饰符
数组
一维数组
1.
2.
3.
4.
5.
//
联
系
方
式
二维数组
输入随机数
例子:随机两位数
Array1=Array2 只是复制了地址
数组的复制
快速排序?(代码不会)
Arrays 工具类的使用(常见的)
Java.util.Arrays
数组使用常见的异常
面向对象
成员变量 VS 局部变量‘
方法的重载
可变个数形参的方法
匿名对象
方法参数的值传递机制
封装性的体现
个人理解:方法类里面的变量设置为私有,让用户
在 主 函 数 中 通 过 方 法 来 调 用 变 量
高内聚:类的内部数据操作细节自己完成,不能允许外部干涉
低耦合:仅保留少量的方法用于使用
封装性的体现需要权限修饰符来配合(private ,缺省,protected ,public)
四种权限可以用来修饰类及类的内部结构:属性方法构造器内部类
修饰类的话只能使用缺省和 public
构造器
关键字:
This 关键字的使用
1. this 可以用来修饰属性,方法,构造器
2. this 修饰的属性和方法:理解为当前对象,在了的
方法中,我们可以使用“this.属性”或“this.方法“的方
式电泳当前对象的属性或方法,但是通常情况下,
选择省略 this.
3. this 修饰的构造器:
package 的使用
1. 为了更好地实现项目中类的管理
2. 使用 package 声明类或接口所属的包,声明在源文件的首
行
3. 属于标识符,遵循标识符的命名规则,规范()见名知意
4. 每“.“一次,就代表一层文件目录
补充:同一个包下,不能命名同名的接口。不同的包下可以;
import 的使用
import:导入
1. 在源文件中显式的使用 import 结构导入指定包下的类,接口
2. 声明在包的声明和类的声明之间
3. 可以使用“xxx”.*的方式表示可以导入 xxx 包下的所有结构
4. 如果使用的接口是 java.lang 包下定义的,则可以省略 import 结
构
5. 如果使用的类或接口是本包下定义的,则可以省略 import 结构
6. 如果在源文件中使用了不同包下的同名的类,则必须至少有一个
类以全类名的方式显示
Eclipse 中的快捷键
继承性
(私有的也可以继承)
方法的重写(重写父类的方法,进行覆盖操作)
重写的规定(只有非 static 可以被重写)
① 子类重写的方法的方法名和形参列表相同
② 子类重写的方法的权限修饰符不小于父类被重写的方法
的权限修饰符
特殊情况:子类不能重写父类中的 private 方法
③ 返回值类型:父类被重写的方法返回值类型是 void,
则子类重写的方法返回值类型也需要是 void
父类被重写的方法返回值类型是 A,则子类重写的方法
返回值类型需要是 A 类或 A 的子类
父类被重写的方法的返回值类型是基本数据类型,则子
类返回值类型必须是相同的基本数据类型
④ 子类重写的方法抛出的异常类型不大于父类被重写的
的方法抛出的异常类型
Super 关键字的调用
① Super 理解为父类的
② Super 可以用来调用:属性,方法,构造器
③ 调用构造器 super(形参列表),必须声明在子类构造器的首
行
④ This(形参列表)调用子类的构造器
⑤ 在构造器的首行,没有显示的声明 this(形参列表)或 super
(形参列表),则默认调用的是父类中空参的构造器
⑥ 在类的多个构造器中,至少有一个构造器使用了 super(形参
列表),调用父类的构造器
1.子类对象实例化的全过程
2.多态性的使用
调用的是父类中有的方法,但是实际执行的结果是子类重写的方法
如何调用子类特有的属性和方法
使用强制转换符
Man p1= (Man)p2
Instanceof 关键字
a instanceof A:判断对象 a 是否是 A 的子类实例,如果是,返回
true 否则返回 false。
Object 类的使用
equals
Tostring 方法
单元测试方法
包装类(Wrapper )的使用
自动装箱与自动拆箱(jdk 5.0 新版本)
Static 关键字
设计模式——单例模式
代码块
代码块执行优先级
Final 关键字
Abstract(抽象类和抽象方法)
抽象方法:去掉大括号 ,在加一个 abstract
1 月份是 0,所以判断时需要加 1
接口
*1 接口的使用interface
*2 java语言中类和接口是并列的结构
*3 如何定义接口:定义接口的成员:
*
jdk7及以前:只能够定义全局常量和抽象方法
全局常量
*
public static
final
(书写时可以不写,系统
默认在接口里这么写)
抽象方法
*
*
jdk8
public abstract
还可以定义静态方法,默认方法
*
*4 接口中不能定义构造器:接口不可以实例化
*
*5 java开发中,接口都通过让类实现(implements)的方式来使用
* 如果实现类重写了接口中所有的抽象方法,则此实现类就可以实例化
* 如果实现类没有覆盖接口中的所有方法,则此类仍为抽象类
*
*6 java类可以实现多个接口——>弥补了Java单继承的局限性
*
格式
class
AA extends BB implements CC,DD,EE;
*
*
*7 接口与接口之间可以继承,而且可以多继承
*****************************************
*
*8接口具体的使用能够体现多态性,体现多态性
*
*9 接口:实际上可以看作是一种规范
代理模式
代理类
被代理类
Java8
内部类
新特性(使得接口越来越像类)
4.1
4.2
4.3
创建接口有名的实现类的对象
内部类总结:成员内部类和局部内部类,在编译后,都会生成字节码文件
格式:成员内部类:外部类$内部类名.class
局部内部类:外部类$数字 内部类名.class
注意点:
异常概述与异常体系结构(语法错误和逻辑结构不算异常)
Error :严重的问题 Java 虚拟机无法解决的错误(jvm 错误)
Exception:因编程错误或者偶然的外在因素导致的一般性问题,可以使用
针对性代码进行处理
例如:空指针访问
试图读取不存在的文件
网络连接中断
数组角标越界
解决方法:
Try_catch
异常处理的方式二: throws +
异常类型
手动抛出异常
例:
补充
用户自定义异常类
Idea 模板
程序
进程
线程
多线程优点
线程的创建和使用
线程的优先级
比较两种方式
线程的分类
线程的同步(解决线程的安全问题)
Old method
同步的方式:
解决了线程的安全问题—- 好处
操作同步代码时只能有一个线程参与,其他线程只能
等待,相当于单线程,效率低—--局限性
死锁
线程的通信
Jdk5.0 新增线程创建方式
1 实现 Callable 接口
2 使用线程池
Java 常用类
String 类(不可变性)
StringBuffer 存储时初始长度为 16 存入数据时变成数据
长度+16,当再次添加长度不够时,扩容长度为原来的二倍
多二
Date 类
Java.util.Date 类
Calendar 类
Joda—Time
Instant
时间格式化
其他时间 API
Comparator
BigInterger 类
BigDecimal 类
枚举类
注解
四个元注解
集合
List 集合方法
Map 中的常用方法
通配符
File 方法
IO 流
Скачать