基础 Java
跨平台
-
通过虚拟机
JVM
实现 -
并不是直接运行在操作系统中, 而是运行在虚拟机中
-
针对不同操作系统, 安装不同的虚拟机
JDK 和 JRE
-
JDK
: Java 开发工具包 (包括JVM
虚拟机, 核心类库, 开放工具) -
JRE
: Java 运行环境 (JDK
去掉部分工具, 保留运行工具)
关键字
-
字母全部小写
-
一般有颜色高亮
-
class
用于创建/定义一个类, 类是 Java 最基本的组成单元
标识符命名规则建议
-
小驼峰: 用于
方法, 变量
- 一个单词: 全部小写
- 多个单词: 第一个单词首字母小写, 其余首字母大写
-
大驼峰: 用于
类名
- 一个单词: 首字母大写
- 多个单词: 每个单词首字母大写
基本数据类型
boolean, byte, char, double, float, int, long, short, null
引用数据类型
理解为指针/引用
存储地址值
final
final double PI = 3.14;
暂时理解为 const
隐式转换
数据类型不一样时不能直接运算
byte < short < int < long < float < double
-
取值范围小的先提升为大的, 再进行运算
-
byte short char 运算时都会先提升为 int 再运算
强制转换
double a = 12.3;
double b = 31.5;
int c = (int)(a + b);
数组
int[] ary = new int[10];
数据类型[]
+ 变量名
= new
+ 数据类型[数组大小]
字符串
String a = "Hello";
char[] ch = {'H', 'e', 'l', 'l', 'o'};
String s = new String(ch);
+
只要有字符串参与, 就是字符串拼接, 无论字符串与什么类型运算
3.7 + "abc" => "3.7abc"
'A' + "abc" + true => "Aabctrue"
多个运算时, 从左至右进行
1 + 99 + "abc" => "100abc" 而不是 "199abc"
键盘输入
使用 类 Scanner
import java.util.Scanner;
Scanner sc = new Scanner(System.in); // sc 为变量名
// 遇到空格, 制表符, 回车就停止接收
int a = sc.nextInt();
double b = sc.nextDouble();
String c = sc.next();
// 遇到回车才停止接收
String d = sc.nextLine();
输出
System.out.println(...);
可以打 sout
自动补全
System.out.printf("%d\n", a);
System.out.printf("%f\n", b);
System.out.printf("%s\n", c);
循环语句
基本与 c++ 完全相同
for 可以 for (int a : v) {}
方法
即 函数, 基本与 c++ 完全相同
-
重载:
- 同一个类里面
- 方法名相同
- 参数不同 (个数, 类型, 顺序)
- 返回值可以不同
- 即
max(a,b)
和max(a,b,c)
-
传参:
- 基本数据类型
- 引用数据类型