Java基础语法
文章目录
注释
- 单句注释 //
- 段落注释 /* */
- 文档注释
标识符
标识符注意点
-
所有的标识符都应该以字母(A-Z或a-z)、美元符($)或者下划线(_)开始
-
首字母之后可以是字母(A-Z或a-z)、美元符($)、下划线(_)或者数字的任意字符组合
-
不能使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
合法标识符举例:age、$salsry、_value、__1_value
-
非法标识符举例:123abc、-salary、#abc
-
可以使用中文命名,但是一般不建议这样去做
数据类型
强类型语言:要求变量使用要严格符合所有规定,所有变量都必须先定义后才能使用
基本数据类型
数值类型
整数类型
-
byte 占1个字节范围
byte num1 = 10;
-
short 占2个字节范围
short num2 = 20;
-
int 占4个字节范围
int num3 = 30;
-
long 占8个字节范围
long num4 = 30L;
浮点类型
-
float 占4个字节
float num5 = 50.1F;
-
double 占8个字节
dounle num6 = 3.1415926;
字符类型
-
char 占2个字节
char name = 'A';
boolean类型(布尔值)
-
占1位其值只有true和false两个
boolean flag = ture; //boolean flag = false;
整数拓展
进制 二进制ob 十进制 八进制0 十六进制0x
int i =10;
int i2 =010;//八进制0
int i3 = 0x10;//十六进制
浮点数拓展
-
float 有限 离散 舍入误差 大约 接近但不等于
-
BigDecimal 数学工具类
字符拓展
-
强制转换
-
转义字符
布尔值拓展
boolean flag = true;
if (flag==true){}
if (flag){}
类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算
byte,short,char->int->long->float->double
-
强制类型转换
(类型)变量名 高->低
int i = 128;
byte b = (byte)i;//内存溢出
-
自动变量转换
低->高
int i = 128;
double b = i;
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出或者精度问题
操作比较大的时候,注意溢出问题
JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
变量
变量就是可以变化的量
注意点:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法标识符
- 变量声明是一条完整的语句,因此每一个声明必须以分号结束
类变量 static
常量
初始化后不能再改变的值,不会变动的值
常量名一般使用大写字符
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:**首字母小写和驼峰原则:moneySalary 除了第一个单词以外,后面的单词首字母大写 **
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
- 算数运算符:+,-,*,/,%,++,–
- 赋值运算符=
- 关系运算符:<,>,>=,<=,==,!=instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符?,:
- 扩展赋值运算符:+=,-=,*=,/=
运算数值里有long类型,结果为long类型,如果没有,结果则为int
同理,如果里面有double类型,则结果为double类型
关系运算符通过布尔值体现
很多运算会使用工具类来做
逻辑运算
短路运算
boolean a = true;
boolean b = false;
System.out.println(a && b);//true
System.out.println(b && a);//false
//&&第一个为真,则运算结果为真,第一个为假,则运算结果为假
位运算
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 上下相乘
A|B = 0011 1101 如果上下都是0,则为0,有一个1则为1
A^B = 0011 0001 相同则为0,不同则为1
~B = 1111 0010 与B完全相反
2*8 = 16
<< 左移 相当于*2
>> 右移 相当于/2
2<<3
*/
字符串连接符
""+a+b //字符串在前面,后面进行拼接
a+b+""//字符串在后面,先运算在拼接
三元运算符
x ? y : z
如果x==true,则结果为y,否则结果为z
16
<< 左移 相当于*2
右移 相当于/2
2<<3
*/
### **字符串连接符**
[外链图片转存中...(img-MkXSGI4Z-1619792215245)]
```java
""+a+b //字符串在前面,后面进行拼接
a+b+""//字符串在后面,先运算在拼接