windows是不区分大小写的,也就是在同一个路径下,创建test和Test文件夹是冲突的
// a simple java program
// a source file can contain many class, but public class can only be one at most.
// 最多只能有一个class被public修饰
// 被public修饰的class类名需要和所在文件的文件名一样
class A {
public static void main(String[] args){
}
}
class B {
public static void main(String[] args){
}
}
变量
// 变量必须经过定义和初始化才可以被拿去使用
// Integer a;
// System.out.println(a); // error
// SqlSession sqlSession;
// return sqlSession; // error,使用之前必须要初始化
Integer b = null;
System.out.println(b);// ok
// 在方法内声明的为,局部变量
// 在方法外声明的为,成员变量(static为类变量)
// 整数常量默认为int类型,小数点的默认为double类型
// 表示long型的常量,要加L
// long a = 2147483648; // 2147483648 默认被认为是int, 但溢出了, error
long a = 2147483648L; // ok 后面加上L表示常量是一个long不是默认的int
float f1 = 12.4F; // 必须要加F, 12.4默认被认为是double
/*
基本数据类型间运算
byte char short --> int --> long --> float --> double
自动类型提升
1. byte char short类型的变量进行运算得到的结果都是int
2. 其他情况下,都是向表示范围大的数据类型靠拢(如: int + long => long)
强制类型转换
容量大的类型转为容量小的
double d1 = 12.7;
int i1 = (int)d1;
*/
System.out.println("* *");// * *
System.out.println('*' + '\t' + '*');// 93(注意是字符间的加法, 不是字符串)
System.out.println('*' + "\t" + '*');// * *
运算符
循环结构
for(a初始化;b判断条件;c累加器){
d;
}
// 执行过程:(a -> b -> d -> c) -> (b -> d -> c)
数组
数组本身是引用数据类型
创建数组对象会在内存中开辟一整块连续的空间,数组名中引用的是这块连续空间的首地址
数组的长度一旦确定,就不能再修改
// 三种初始化方式
int[] arr = {10, 20, 30, 40, 50};
byte[] arr0 = new byte[]{};// 长度为0
int[] arr1 = new int[]{12,56,89};// 长度为3
String[] arr2 = new String[2];
// 数组工具类
int[] arr = new int[3];
// 打印数组,打印多维数组使用deepToString
System.out.println(Arrays.toString(arr));
List<String> list = Arrays.asList("hello","world","java");// 返回固定大小的List
Arrays.sort(arr);// 按照升序排,使用的是双支点的快排
int index = Arrays.binarySearch(arr,21);
java.util.Arrays#fill(int[], int)// 填充数组