1. 包装的定义与使用(文件夹)
包的本质实际上就是文件夹。
打包编译命令:
javac -d . 类名.java
: 表示生成目录,根据package的定义生成;
. 表示在当前所在目录生成子目录。
1.1 包的导入
import
自动匹配编译顺序:(在当前目录下按照主类的使用情况自动编译)
javac -d . ./*.java
1.2 系统的常用包
- java.long :系统的常用基础类(String、Object、包装类),JDK1.1之后导入
- java.util:Java提供的工具程序包(集合类,ArrayList 、HashMap),需要手工导入
- juc:java.util.concorrent:并发程序包
1.3访问控制权限
private < default(包访问权限) < protected(继承访问权限) < public
2.单例设计模式&多例设计模式(重要)
定义:一个类只允许产生一个实例化对象
- 对象如何产生?通过类的构造方法
- 要想限制对象的产生?通过构造方法限制
2.1 饿汉式单例:上来就new
class Singleton{
private static final Singleton SINGLETON = new Singleton();
//构造方法私有化,类外部无法实现实例化
private Singleton(){}
//对象方法
public static Singleton getSingleton(){
return SINGLETON;
}
}
2.2 懒汉式单例:用时再new
class Singleton {
private static Singleton SINGLETON;
//构造方法私有化,类外部无法实现实例化
private Singleton() {
}
//对象方法
public static Singleton getSingleton() {
if (SINGLETON == null) {
SINGLETON = new Singleton();
}
return SINGLETON;
}
}
2.3 多例模式(知道概念)—— 有限个数对象
所谓的多例只是比单例多了一些实例化对象而已。
3.异常
异常的继承类结构:
-
Error:Error类描述Java运行时内部错误与资源耗尽错误。应用程序不抛出此类异常,这种内部错误一旦出现,除了告知用户并使程序安全终止之外,别无他法。
-
RuntimeException(运行时异常):由于程序错误导致的异常。
-
IOException:程序本身没有问题,但由于出现I/O问题导致的异常(例如:打开一个并不存在的文件)
- 非受查异常:继承于Error与RuntimeException类的所有异常子类称为非受查异常(不强制用户进行异常处理)
- 受查异常:Exception以及IOException子类属于受查异常(强制用户进行异常处理)
添加异常快捷键,选中要添加的地方:Ctrl+Alt+t
throws:用在方法上,明确表示本方法可能产生异常,并且不处理,放回给调用方处理。
throw:
public static void main (String[] args){
try {
System.out.println(div(10,0));
} catch (Exception e) {
e.printStackTrace();
}
}
public static int div(int x, int y) throws Exception{
return x/y;
}
报错:首先看错误最前面
java.lang.ArithmeticException: / by zero
at www.abnormal.Test.div(Test.java:18)
at www.abnormal.Test.main(Test.java:6)
3.1异常处理格式
为了保证程序出现异常后也能正常执行下去,需要进行异常处理。
语法如下:
try {
//有可能出现异常的语句
}[catch (异常类 对象)......]
//出现异常后的解决方案
}[finally]{
//异常出口,无论是否产生异常,均会执行finally代码块
//即便try、catch语句中存在return语句,也会在return之前执行finally代码块
}
3.2 thorws:用在方法上
明确表示此方法会产生异常但是方法内部不处理,将异常抛回给调用处。
3.3 thorw :用在方法中
由用户产生异常类对象而非JVM产生。一般与自定义异常搭配使用。
异常错误网站:https://stackoverflow.com/
4.断言assert
语法:
assert 布尔表达式 : "返回false执行的代码块"
当断言返回false时会抛出异常。
java断言开启参数(JVM参数) 为-ea,默认断言关闭。
IDEA开启断言的方法: