目录
- for macOS
安装Java环境
Terminal中执行Java程序
编译:
javac A(文件名).java
编译后,会生成字节码文件: A.class
运行:
java A
输入输出
输入读取
- System.in
缺点:读取到的是ASCII码,不便于阅读
- new Scanner(System.in)
读取一整行内容
- new Scanner(System.in).nextInt(); // int
- new Scanner(System.in).nextDouble(); // double
- new Scanner(System.in).nextLine(); // String
输出
- System.out.println()
输出后会换行
- System.out.print()
输出后不会换行
System.out.println()
// '':一个字符
// "":一个字符串
/* 文本块
"""
Hello,
world!
...
"""
*/
注:System.out.println(null) 会报错
原因:空常量是不能直接被输出的
数据类型
计算机存储单元
- 最小信息单元:bit(位)
- 最小存储单元:byte(字节)
变量
在定义long类型的变量的时候,需要在变量值后面加上“L”
例:
long a = 10000000000;
System.out.println(a); // 会报错
// 报错原因:整数默认是int类型,10000000000超过了int能表示的范围
// 解决方案:long a = 10000000000L;
在定义float类型的变量的时候,需要在变量值后面加上“F”
例:
float a = 13.14;
System.out.println(a); // 会报错
// 报错原因:浮点数默认是double类型,导致定义时变量类型不兼容
// 解决方案:float a = 13.14F;
标识符
类型转换
自动类型转换
强制类型转换
注:强制类型转换会引起数据的丢失
字符“+”的操作
- int 与 char 相加,结果会把char转为对应的ASCII码值来与 int 相加,结果为 int
public class task1 {
public static void main(String[] args) {
int a = 10;
char b = 'A';
System.out.println(a + b); // 75
}
}
拓展运算符(+=、/= 等)底层隐含了强制转换
public class day1 {
public static void main(String[] args) {
int i = 10;
i += 20.3;
System.out.println(i); // 30(+=隐含了强制转换,有数据丢失)
}
}
练习代码: day1_code