## 标识符
字母、数字、下划线和$,不可以数字开头,大小写敏感。驼峰名法。
类名:首字母大写,其余驼峰。
方法、变量名:首字母小写,其余驼峰。
包名:全小写。
## 字面常量和符号常量
## 数据类型
- 基本数据类型
- 数值型
- 整型 byte, short, int, long
- 浮点型 float, double
- 字符型 char
- 布尔型 boolean
- 引用数据类型
- 类 class
- 接口 interface
- 数组
> 浮点型常量默认double类型,后面加上f转换float类型
>
> 不要进行浮点类型之间的比较
```java
public class Demo{
public static void main(String[] args){
float f1 = 0.3f;
double d1 = 0.3;
System.out.println(f1==d1);
}
}
# 输出false
```
引用类型的变量太长,使用var关键字代替数据类型声明,编译器自动推断。
```java
StringBuilder a = new StringBuilder();
var a = new StringBuilder();
```
## 字符编码
- ASCII
- ISO8859-1
- GB2312
- GBK
- Unicode(UTF-8、UTF-16、UTF-32)
## 字符串
从Java 13开始,字符串可以用三个双引号写多行字符串(Text Blocks)。
```java
public class Test{
public static void main(String[] args){
String longString = """
first,
One
""";
System.out.println(s);s
}
}
```
## 空值null
引用变量类型可指向一个空值null,表示值不存在,即实际为变量不指向任何对象。
```java
String s1 = null;
String s2;
String s3 = s1;
String s4 = ""; //s4指向空字符串
/*
注意要区分空值null和空字符串"",空字符串是一个有效的字符串对象,它不等于null
*/
```
## 数组
```java
public class Test{
public static void main(String[] args){
//5个元素数组
int[] ns = new int[5];
ns[0] = 68;
ns[1] = 79;
ns[2] = 91;
ns[3] = 85;
ns[4] = 62;
//数组长度
System.out.println(ns.length);
//直接初始化
int[] a2 = new int[] {68, 79, 91, 85, 62};
//简写
int[] a3 = {68, 79, 91, 85, 62};
//字符串数组
String[] names = {"ABC", "XYZ", "model"};
}
}
```
数组特点
- 数组所有元素初始化为默认值,整型都是`0`,浮点型是`0.0`,布尔型是`false`;
- 数组一旦创建后,大小就不可改变。
数组是引用类型,在使用索引访问数组元素时,如果索引超出范围,运行时将报错。
## 输入和输出
格式化输出
```java
public class Test{
public static void main(String[] args){
double d1 = 156465;
//使用占位符%
System.out.printf("%.2f\n", d1);
System.out.printf("%.4f\n", d1);
}
}
```
输入
```java
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Input a string: ");
String name = input.nextLine();
System.out.print("Input age: ");
int age = input.nextInt();
System.out.printf("Hi, %s, %d", name, age);
}
}
```
## equals()方法
```java
public class Test{
public static void main(String[] args){
String s1 = "hello";
String s2 = "HELLO".toLowerCase();
System.out.println(s1);
System.out.println(s2);
if(s1.equals(s2)){
System.out.println("Yes.");
}else{
System.out.println("No.");
}
}
}
```