基本命名规范
命名的规范(见名知意)
1>包/模块/组件:包域名写前面,全部用小写;
2>方法/字段/变量:首字母小写,多个单词组合使用驼峰表示法
3>类:首字母大写,多个单词组合使用驼峰表示法
4>常量:全部大写字母组成(一般取英文首大写字母),多个单词使用下划线分割,适用于public static final修饰的常量
5>接口:以i的大写字母开头,多个单词组合使用驼峰表示法
6>接口实现类:以Ipml结尾,首字母大写,以接口的名称为参照,去掉前面的字母I
程序设计原则:
1>可拓展性
2>可维护性
3>可重复性
jar包
什么是jar包?
因为编写程序工具导入了JDK,我们可以使用API里面的一些内置工具类,jar就是我们写好的工具类,当别人想用只需要导入我们写好的jar就可以直接使用了.
jar包的生成和导入(IDEA)
1>编写工具类(单例)和工具方法
2>点击File > Project Structure > add jar > From… >只改from librectories 那里,选第二个copy to the …
3>添加完还要在Buid那里buid一下,选Build Artifacts…
4>想在另外的项目用的时候,在项目目录下创建文件包,复制粘贴到文件包中,再右击文件包选Add as Library
单元测试Test(IDEA)
为什么要单元测试
程序写的得不得行不是说得算,是测出来的;程序运行测试需要靠main方法入口,单元测试就摆脱这个束缚啦.但进行单元测试之前需要导入回归测试框架(Junit)
测试方法
在项目下创建一个Test文件包,然后把它变成测试包,然后在里面创建测试类编写测试方法,在测试方法上加@Test就可以测试了,也可以在其他类中选中要测试的类名 Alt + Enter-> Create Test直接选要测试的方法一键生成,但测试编写方法有要求:
1>方法必须要public修饰(给jvm访问用的);
2>测试方法返回值必须用void(有返回值也没用);
3>不能传参数(方法自身运转不能传参数,这里要区别一下外部调用)
配置文件
先了解硬编码:写代码中的需要经常修改的代码内容,这个代码就称为硬编码;
硬编码存在的隐患:让程序维护成本变高;
解决方案:使用配置文件(单独写一个文档记下需要经常修改的代码内容);分Properties和XML
配置文件也需要在项目目录下建个directory,然后变成资源文件根目录(方便编译成字节码文件时它也被带进去给类加载器方法用)
properties
在资源根文件夹建个以.properties为后缀的文档,在里面一key=value的形式编写,注意不能有空格出现;文件后缀不能写错;为避免配置文件路径写死,使用相对于字节码输出路径(通过类的加载器去获取字节码输出路径下的文件);
操作有两种思路:
1>创建File,再用preperties的对象去load加载这个file,load后没有返回值是因为存储到properties的对象中了,再通过properties的对象去getcontextproperty(key)获取对应的value值(这里使用了绝对路径,在开发中绝对不能使用.要使用相对于字节码输出路径.)
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class PropertiesDemo {
public static void main(String[] args) throws Exception {
InputStream fileInputStream = new FileInputStream("F:\\ClassInformation\\java\\mid\\mid\\basicsOfStrong_day01\\properties\\resource\\db.properties");
Properties properties = new Properties();
properties.load(fileInputStream);
String name = properties.getProperty("name");
String id = properties.getProperty("id");
System.out.println("name = " + name);
System.out.println("id = " + id);
}
}
2>通过Tread.currentThread.getContextClassloader获取类加载器,通过类加载器.getResourceasStream加载到输入流中,再用properties对象load加载获取对应值(相对于字节码输出路径),tip:没有效果就把out目录删了再运行
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class PropertiesDemo_2 {
public static void main(String[] args) throws Exception {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream fileInputStream = classLoader.getResourceAsStream("db.properties");
Properties properties = new Properties();
properties.load(fileInputStream);
String name = properties.getProperty("name");
String id = properties.getProperty("id");
System.out.println("name = " + name);
System.out.println("id = " + id);
}
}
XML
XML文件就是以.xml结尾的文件,xml结构语法省略,它加载到内存中的各个组成部分是以一个个对象的形式加载的,分XML文件,标签/元素,属性,文本,由结构分析可以发现需要获取底层文本信息(解析XML文件)都需要寻回到XML文件Document这个对象(即下层需要上层对象get获取),操作思路也是这样
获取Document对象:
1>通过DocumentBuiderFactory的newInstance方法获取本身的对象
2>再通过DocumentBuiderFactory的对象newDocumnentBuider去获取DocumentBuider对象
3>再由DocumentBuider的对象parse解析File文件获取Document对象;
XML约束:这个是为了不让XML文件不乱写,双方约好的约束(相当于XML文件的格式框架);