注释
//单行注释
/*
可以注释多行
可以注释多行
可以注释多行
*/
关键字与标识符
以下是Java的关键字不能用来作为变量名
Java变量名不能以数字开头,标识符区分大小写,不建议用中文
数据类型
Java是强类型语言要求变量必须定义后使用
基本数据类型大小
Java数据类型图
引用类型在传递和赋值的时候是本身而不是拷贝
基本数据类型在传递赋值的时候会发生拷贝一份单独的
数据类型转换
如果强制转换会丢失准确性很危险
如果小数转换整数会丢失精度 (小数点后面的数字)
字符类型扩展和转义符
变量
作用域
常量
常量有final修饰 赋值后不能修改
运算符
javaDoc文档
终端命令生产api文档打开index.html文件
读取输入对象Scanner
流程控制
String p = "男";
if (p.equals("女"))
System.out.println("女");
else if (p.equals("人妖"))
System.out.println("人妖");
else
System.out.println("男");
//3个循环的[1-100]
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
int i = 1;
while (i <= 100) {
System.out.println(i++);
}
int t = 1;
do {
System.out.println(t++);
} while (t <= 100);
//break,continue
for (int k = 1; k <= 100; k++) {
if (k % 2 == 0)
continue;//跳过后面所有语句执行下一轮循环
if (k == 75)
break;//结束当前循环
System.out.println(k);
}
go:for (int j = 0; j < 43; j++) {
System.out.println(j);
for (int k = 0; k < 23; k++) {
System.out.println(k);
for (int l = 0; l < 13; l++) {
if(l+k+j==74) {
continue go;//会跳到标签处,继续执行循环
}
System.out.println(l);
}
}
}
方法
修饰符 方法返回值 方法名 方法参数
xxx xxx xxx(…)异常
在方法传递引用类型时,不会拷贝一份直接使用传入的对象
列
public static void main(String[] args) {
int u = 2;
fx1(u); //u的值被改变了传递的是u对象本身,并不会拷贝
fx2(u);// u不会改变,传递的是u的拷贝,和本体互不影响
}
public static int fx1(Integer g) {
//调用此方法会影响传递的对象值
return g++;
}
public static int fx2(int g) {
//调用此方法不会影响传递的对象值
return g++;
}
方法可以重载
//方法可以重载参数类型不一样,或者参数数量不一样都可以重载
public int max(int a, int b) {
return a > b ? a : b;
}
public double max(double a, double b) {
return a > b ? a : b;
}
public int max(int a, int b, int c) {
return max(a, max(b, c));
}
可接受任意参数的方法
public int myMax(int a, int b) throws Exception {
return a > b ? a : b;
}
public static void main(String[] args) {
sum(1,2,3,4,5,6,7,2);
}
//一个方法只能有一个可变参数,并且可变参数只能是最后一个参数
public static int sum(int... numbers) {
int sm = 0;
for (int number : numbers) {
sm += number;
}
return sm;
}
方法可以抛出异常
//此方法会抛出空指针异常
public Integer nms(Integer m) throws NullPointerException {
if (m == null)
throw new NullPointerException();
return m;
}
方法可以是静态的
class MyMath {
private static int mx = Integer.MAX_VALUE;
//静态方法不能使用非静态属性,共有的静态方法可以不用创建对象就可以使用 xxx.xxx();
public static int max(int a, int b) throws Exception {
if (a > mx || b > mx)
throw new Exception();
return a > b ? a : b;
}
}
数组
public static void main(String[] args) {
//如何创建数组
//静态初始化
int[] a = {1, 2};
int[] s = {new Integer(2), new Integer(2)};
//动态初始化
int []b=new int[10];
//多维数组
//创建时只能留一个不给数量
int[][][]p=new int[2][3][];
}
Arrays类
基本用法
public static void main(String[] args) {
int[] arr = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1};
System.out.println(Arrays.toString(arr));//把数组转换为字符串
Arrays.binarySearch(arr, 4);//二分查找,返回索引位置,没有找到返回-1
Arrays.sort(arr);//快速排序算法
Arrays.parallelSort(arr);//多线程排序算法大规模比较快
}