1 编写一个简单的Java程序–手速练习
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
2 语法基础
2.1 变量
变量必须先定义,才可以使用。不能重名。
变量定义的方式:
public class Main {
public static void main(String[] args) {
int a = 5;
int b, c = a, d = 10 / 2;
}
}
-
内置数据类型
类型 字节数 举例 byte 1 123 short 2 12345 int 4 123456789 long 8 1234567891011L float 4 1.2F double 8 1.2, 1.2D boolean 1 true, false char 2 ‘A’ -
常量 使用
final
修饰
final int N = 110;
-
类型转化
- 显示转化:
int x = (int)'A';
- 隐式转化:
double x = 12, y = 4 * 3.3;
- 显示转化:
2.2 运算符
A = 10, B = 20
运算符 | 描述 | 实例 |
---|---|---|
+ |
把两个数相加 | A + B 将得到 30 |
- |
从第一个数中减去第二个数 | A - B 将得到 -10 |
* |
把两个数相乘 | A * B 将得到 200 |
/ |
分子除以分母 | B / A 将得到 2 |
% |
取模运算符,向零整除后的余数,注意余数可能为负数 | B % A 将得到 0 |
++ |
自增运算符 | A++ :先取值后加1;++A :先加1后取值 |
-- |
自减运算符 | A-- :先取值后减1;--A :先减1后取值 |
+= |
第一个数加上第二个数 | A = A + B 可以简写为 A += B |
-= |
第一个数减去第二个数 | A = A - B 可以简写为 A -= B |
*= |
第一个数乘以第二个数 | A = A * B 可以简写为 A *= B |
/= |
第一个数除以第二个数 | A = A / B 可以简写为 A /= B |
%= |
第一个对第二个数取余数 | A = A % B 可以简写为 A %= B |
2.3 表达式
-
整数的加减乘除四则运算
public class Main { public static void main(String[] args) { int a = 6 + 3 * 4 / 2 - 2; System.out.println(a); int b = a * 10 + 5 / 2; System.out.println(b); System.out.println(23 * 56 - 78 / 3); } }
-
浮点数(小数)的运算
public class Main { public static void main(String[] args) { double x = 1.5, y = 3.2; System.out.println(x * y); System.out.println(x + y); System.out.println(x - y); System.out.println(x / y); } }
-
整型变量的自增、自减:
public class Main { public static void main(String[] args) { int a = 1; int b = a ++ ; System.out.println(a + " " + b); int c = ++ a; System.out.println(a + " " + c); } }
2.4 输入
-
方式1:效率较低,输入规模较小时使用
import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); String str = sc.next(); // 读入下一个字符串 int x = sc.nextInt(); // 读入下一个整数 float y = sc.nextFloat(); // 读入下一个单精度浮点数 double z = sc.nextDouble(); // 读入下一个双精度浮点数 String line = sc.nextLine(); // 读入下一行 } }
-
方式2:效率较高,输入规模较大时使用。注意需要抛异常
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(str); } }
2.5 输出
- 方式1:效率较低,输出规模较小时使用
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(123); // 输出整数 + 换行
System.out.println("Hello World"); // 输出字符串 + 换行
System.out.print(123); // 输出整数
System.out.print("yxc\n"); // 输出字符串
System.out.printf("%04d %.2f\n", 4, 123.456D); // 格式化输出,float与double都用%f输出
}
}
-
System.out.printf()中不同类型变量的输出格式:
int:%d
float: %f
, 默认保留6位小数double: %f
, 默认保留6位小数char: %c
, 回车也是一个字符,用'\n'表示String: %s
-
方式2:效率较高,输出规模较大时使用。注意需要抛异常
import java.io.BufferedWriter; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws Exception { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write("Hello World\n"); bw.flush(); // 需要手动刷新缓冲区 } }