编程可以让计算机进行复杂操作,实现人类与计算机的交互。
变量必须先定义再使用,不可重名。
方式 1
// 先定义再赋值
int a; // 定义
a = 5; // 赋值
方式 2
// 边定义边赋值
int a = 5; // 边定义边初始化
int b; // 定义变量不赋值
int c = a; // 赋值变量,此时 c = 5
int d = 10 / 2; // 赋值一个算式
| 类型 | 字节数 | 表示范围 | 举例 |
|---|---|---|---|
| byte | 1 | -128 ~ 127 | byte a = 123; |
| short | 2 | -32768 ~ 32767 | short b = 12345 |
| int | 4 | -2147483648 ~ 2147483647 (109) | int c = 123456789 |
| long | 8 | -263 ~ 263 - 1 (1018) | long d = 123456723423432L |
byte:整数,占一个字节,8 位,可以表示 28 = 256 种情况(表示数的范围一般为一半负数一半非负数 -27 ~ 27 - 1);short:整数,占两个字节,16 位,可以表示 216 = 65536 种情况(表示数的范围为 -215 ~ 215-1);int:整数,占四个字节,32 位,表示数的范围为 -231 ~ 231-1 (表示数的范围的绝对值为 2.1*109);| 类型 | 字节数 | 表示范围 | 举例 |
|---|---|---|---|
| float | 单精度浮点型 4 字节 | 有效数字为 6-7 位 | float e = 1.2F |
| double | 双精度浮点型 8 字节 | 有效数字为 15-16 位(10300) | double f = 1.2, g = 1.2D |
举例,1.234*105:有效数字为 4 位;
float:有效数字为 6-7 位,即只能保证前 6-7 位的数字是精确的,后面位的数字是近似值;
double:有效数字为 15-16 位,即只能保证前 15-16 位的数字是精确的,后面位的数字是近似值(Java 中不加 F 标识默认为 double 类型)。
判断两个 double 类型的数是否相等?
double x = 1, y = 2;
if (x == y) // 不要这样判断,会有误差
if (Math.abs(x - y) < 1e-6) // 判断两个数的差值小于一个很小的数,认为相等,1e-6:表示10的-6次方
| 类型 | 字节数 | 表示范围 | 举例 |
|---|---|---|---|
| boolean | 1 | false、true | boolean f = false |
| 类型 | 字节数 | 表示范围 | 举例 |
|---|---|---|---|
| char | 2 | 0 ~ 65535 | char c = ‘A’ |
final,表示该值不可以进行修改;int x = 10; // 变量x
final int y = 10; // 常量y
final 修饰的类不能被继承,修饰的方法不能被重写,修饰的变量不能被修改;不同数据类型间是可以进行相互转化的。
显示转化(可以明显看到向哪个类型进行转换)
int x = (int)'A';
隐式转化
double x = 12; y = 4 * 3.3;
30 / 20 = 1,-30 / 20 = -1;-30 / 20 = -2;a%b:a/b 的余数是多少int a = 1;
int b = a ++; // 先取出a的值赋值给b,a再+1
int c = ++ a; // 先将a的值+1,再赋值给c
a = a +b; <=> a += b; // 在a的基础上加上b
a -= 5; // 在 a 的基础上减去5
a *= 2; // a 乘某个数
a /= 2; // a 除某个数
a %= 4; // 将 a 变成对于某个数的整数
int a = 6 + 3 * 4 / 2 - 2;
int b = a * 10 + 5 / 2;
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(); // 读入一个字符串,读入时遇到空格、回车、制表符 停止,每次读入一个字符串
String line = sc.nextLine(); // 读入一个字符串,直到遇到回车停止(读入一整行字符串),
int x = sc.nextInt(); // 读入下一个整数
float y = sc.nextFloat(); // 读入下一个单精度浮点数
double z = sc.nextDouble(); // 读入下一个双精度浮点数
}
}
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(); // 只有这一个api,读入字符串
System.out.println(str);
}
}
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输出
}
}