finally块
finally块
finally块的使用前提是必须要存在try块才能使用。
finally块的代码在任何情况下都会执行的,除了jvm退出的情况。
finally块非常适合做资源释放的工作,这样子可以保证资源文件在任何情况下都会被释放。
class Demo{
public static void main(String[] args){
FileReader fileReader = null
try{
//找到目标文件
File file = new File("f:\\a.txt");
//建立程序与文件的数据通道
fileReader = new FileReader(file);
//读取文件
char[] buf = new char[1024];
int length = 0;
length = fileReader.read(buf);
System.out.println("读取到的内容" + new String(buf, 0, length))
} catch (IOException e) {
System.out.println("读取资源文件失败...");
}finally{
try{
//关闭资源
fileReader.close();
System.out.println("释放资源文件成功!");
} catch(IOException e){
System.out.println("释放资源文件失败...");
}
}
}
}
导包语句
包:Java中的包就相当于Windows中的文件夹;
包的作用:1、解决类名重复产生冲突的问题;2、便于软件版本的发布;
定义包的格式:package 包名;
包语句要注意的事项:
1.package语句必须位于Java文件中的第一个语句;
2.如果一个类加上了包语句,那么该类的完整类名就是:包名.类名;
3.一个Java文件只能有一个包语句;
有了包之后类与类的访问:
导包语句的作用:简化书写(误区:把一个包导入到内存中)
导包语句的格式:import 包名.类名;(导入包中某个类)
导包语句要注意的细节:
1.一个Java文件中可以出现多条导包语句;
2.“*”是导包语句的通配符。可以匹配任何的类名;(推荐使用import 包名.类名,因为使用通配符会导致结构不清晰)
什么时候使用import语句:1、相互访问的两个类不是在同一个包下面,这时候就需要导包语句;2、java.lang是默认导入的,不需要我们自己导入。
权限修饰符
权限修饰符:权限修饰符就是空值被修饰成员的范围可见性。
public(公共) > protected(受保护) >default(缺省) >private 范围从大到小
同一个类 true true true true
同一个包 true true true false
子父类 true true false false
不同包 true false false false
注意:在不通报下面只有public与protected可以访问,而且protected必须是在继承关系下才能够访问。
jar包
打jar包: 需要使用到jdk的开发工具(jar.exe)
jar的用法:
使用格式: jar cvf jar文件的名字 class文件或者是文件夹
打jar包要注意的事项:
1.一个程序打完了jar之后,必须要在清单文件上指定入口类:格式:Main-Class: 包名.类名
2.jar包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用
jar文件的作用:1.方便用户快速运行一个项目;2.提供工具类以jar包的形式给别人使用。
如果使用jar包里面的类必须要先设置classpath路径
模板模式
模板模式:解决某类事情的步骤有些是固定的,有些是会发生变化的,那么这时候我们可以为这类事情提供一个模板代码,从而提高效率。
模板模式的步骤:
1.先写出解决该类事情其中的一件的解决方案;
2.分析代码,把会发生变化的代码抽取出来独立成一个方法,把该方法描述成一个抽象的方法;
3.使用final修饰模板方法,防止别人重写你的模板方法。