Java细知识

单元测试 单元测试:针对最小的功能单元编写测试代码 Java程序最小的功能单元是方法,对Java程序进行单元测试就是针对单个方法测试 测试驱动开发 先编写接口,紧接着编写测试。编写完测试后,我们才开始真正编写实现代码 举例子 public class Factorial { public static long fact(long n) { long r = 1; for (long i = 1; i <= n; i++) { r = r * i; } return r; } } 测试这方法,一个很自然的想法是编写一个main()方法,然后运行一些测试代码: public class Test { public static void main(String[] args) { if (fact(10) == 3628800) { System.out.println("pass"); } else { System.out.println("fail"); } } } 只能有一个main()方法,不能把测试代码分离 是没有打印出测试结果和期望结果,例如,expected: 3628800, but actual: 123456 很难编写一组通用的测试代码 编写JUnit测试 JUnit是一个开源的Java语言的单元测试框架,专门针对Java设计...

Java高级

异常处理 Java的异常 调用方获取调用失败的信息 约定返回错误码 处理一个文件,如果返回0,表示成功,返回其他整数,表示约定的错误码: int code = processFile("C:\\test.txt"); if (code == 0) { // ok: } else { // error: switch (code) { case 1: // file not found: case 2: // no read permission: default: // unknown error: } } 语言层面上提供一个异常处理机制、 try { String s = processFile(“C:\\test.txt”); // ok: } catch (FileNotFoundException e) { // file not found: } catch (SecurityException e) { // no read permission: } catch (IOException e) { // io error: } catch (Exception e) { // other error: } 异常是class,它的继承关系如下:...

Java中级

面向对象基础 理解: class是一种对象模版,定义了如何创建实例,class本身就是一种数据类型 instance是对象实例,instance是根据class创建的实例,可以创建多个instance,每个instance类型相同,但各自属性可能不相同 定义class 创建一个类,例如,给这个类命名为Person,就是定义一个class: class Person { public String name; public int age; } class Book { public String name; public String author; public String isbn; public double price; } 创建实例 定义了class,只是定义了对象模版,而要根据对象模版创建出真正的对象实例,必须用new操作符 Person ming = new Person(); 区分Person ming是定义Person类型的变量ming,而new Person()是创建Person实例 ming.name = "Xiao Ming"; // 对字段name赋值 ming.age = 12; // 对字段age赋值 System.out.println(ming.name); // 访问字段name Person hong = new Person(); hong.name = "Xiao Hong"; hong.age = 15; 上述两个变量分别指向两个不同的实例,它们在内存中的结构如下: ┌──────────────────┐ ming ──────▶│Person instance │ ├──────────────────┤ │name = "Xiao Ming"│ │age = 12 │ └──────────────────┘ ┌──────────────────┐ hong ──────▶│Person instance │ ├──────────────────┤ │name = "Xiao Hong"│ │age = 15 │ └──────────────────┘ 方法 意义:...

Java基础

Java基础 程序流程 Java默认初始值与无默认区分 public class DefaultValuesExample { int instanceVar; // 默认值: 0 static int staticVar; // 默认值: 0 int[] array = new int[5]; // 数组元素默认值: 0 public void method() { int localVar; // 局部变量,必须显式初始化 // System.out.println(localVar); // 编译错误 } public static void main(String[] args) { DefaultValuesExample example = new DefaultValuesExample(); System.out.println("Instance variable: " + example.instanceVar); System.out.println("Static variable: " + staticVar); System.out.println("Array element: " + example.array[0]); } } 局部变量必须有显式初始化 Java简易程序 public class Hello { public static void main(String[] args) { System....