注释
单行注释://
多行注释:/**/
文档注释:/**
*@
*@
*/
标识符和关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rCvPELWq-1614687766199)(C:\Users\YATING\AppData\Roaming\Typora\typora-user-images\image-20210203113007414.png)]
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线( _ )开始
-
首字符之后可以是字母(A-Z或者a-z)、美元符($)、下划线( _ )或数字的任何字符组合
-
不能使用关键字作为变量名或方法名。
-
标识符是大小写敏感的
-
合法标识符举例: age,$salary,_value,__1_value
-
非法标识符举例: 123abc、-salary、#abc
-
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
public static void main(String[] args) { String 王者荣耀 = "最强王者"; System.out.println(王者荣耀); }
-
数据类型(强类型语言)
基本类型
-
整数类型,数字间可以用下划线分割,更清楚
-
byte 字节:1个字节,-128~127
-
short 短整数:2个字节,-32768~32767
-
int 整数:4个字节,-2147483648~2147483647
int num = 30;
-
long 长整数:8个字节,-9223372036854775808~9223372036854775807
long num = 30L; //要加一个L
二进制:
十进制:
八进制:0开头
十六进制:0x开头
-
-
浮点类型
-
float 单精度:4个字节
float num = 50.1F; //要加一个F
-
double 双精度:8个字节
double num = 3.14159265358;
最好完全避免使用浮点数进行比较
银行业务用 BigDecimal 类来进行
-
-
字符类型 char :2个字节
char name = 'a';
char name2 = '中';
//所有字符本质还是数字,Unicode编码表,类ASCII码
System.out.println((int)name);//97
System.out.println((int)name2);//20013
//U0000-UFFFF,输出a,0x61=97
char c = '\u0061';
System.out.println(c);
- 布尔类型 boolean :1位,true或false
boolean flag = false;
if (flag){}
-
转义字符
\t:制表符
\n:换行
基本数据类型和引用数据类型的差别
基本数据类型中,==比较的是数据的值
引用数据类型中,==比较的是数据的地址和值
String sa = new String(original: "hello wor1d");
String sb = new String(original: "hello world");//保存在堆中,地址栏的比较
System.out.println(sa==sb);//输出false
String sc = "hello world";
String sd = "hello world";//保存在字符串常量池
System.out.println(sc==sd);//输出true
引用类型
- 类
- 接口
- 数组
字节
位(bit):内部数据储存的最小单位
字节(byte):数据处理的基本单位,用 B 表示
1 B = 8 bit
1 KB = 1024 B
1 M = 1024 KB
1 G = 1024 M
类型转换
int i = 128;
byte b = (byte)i;
System.out.println(i);//输出128
System.out.println(b);//输出-128,溢出
- 强制转换,内存大的—>内存小的,eg. int—>float
- 自动转换,内存小的—>内存大的,不用加括号()转换
- 注意
- 不能对Boolean类型进行转换
- 不能把对象类型转换为不相干类型
- 高容量转换到低容量时要强制转换
- 转换时可能会有内存溢出(操作时较大),可以将一个数转为long,其余会自动转为long。
- 或者精度丢失等问题
变量
变量必须声明类型
public class Demo{
//**类变量**,从属于类
static double salary=2500;
//**实例变量**,从属于对象。如果为初始化则初始化为默认值,int是0,小数是0,boolean是false,除了基本类型其余默认都为null,eg.string为null,
String name;
int age;
//main方法
public static void main(String[] args){
//**局部变量**,必须声明和初始化值
int i=10;
System.out.println(i);//10
//**实例变量**
Demo demo=new Demo();
System.out.println(demo.age);//0
System.out.println(demo.name);//null
//**类变量**
System.out.println(salary);//2500
}
}
常量
初始化后不能再改变的值,final
public class Demo{
//**类变量**,从属于类
//final修饰符,不分先后
static final double PI=3.14;
final static double Si=3.12;
//main方法
public static void main(String[] args){
System.out.println(PI);//3.14
System.out.println(Si);//3.12
}
}
命名
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则, monthSalary,除了第一个单词以外,后面的单词首字母大写lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线,MAX_VALUE
- 类名:首字母大写和驼峰原则, Man, GoodMan
- 方法名:首字母小写和驼峰原则, run(), runRun()
输出
System.out.println();
标识符
Java语言支持如下运算符:
- 算术运算符:+,-,*,/,%,++, –
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= ,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解! ! ! )
- 条件运算符 ? ∶
- 扩展赋值运算符:+=,-=,*=,/=
public class Demo{
//main方法
public static void main(String[] args){
long a=123123123123L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//结果Long
System.out.println(b+c+d);//结果int
System.out.println(c+d);//结果int,无论操作数有没有int
}
}