标识符
Java中一切起名字的地方都可称之为是标识符
命名规则:
标识符只能有数字,字母,美元$符号和下划线任意的组合而成,但是不能数字开头
严格区分大小写
关键字不可以作为标识符被使用
命名规范:
见名知意: String name1_$="张三";
驼峰命名:
包: 全部小写 shangxuetang
多级包:每个级别之间使用.进行分隔 shang.xue.tang
类|接口: 每个单词首字母大写 ShangXueTang
方法|变量: 第一个单词全部小写,第二个单词开始首字母大写 shangXueTang
常量: 全部大写 SHANGXUETANG
注释
对代码进行解释说明的文字,方便后期的修改维护;当然注释的内容不会被编译,若编译过程中出现了乱码情况,去更换一下编码格式.
1.//单行注释
2./*多行注释*/
3./**文档注释*/
变量的类型与定义
变量就是在程序执行过程中,其值可以发生改变的量;
Java是一门强类型的语言,在生命之前一定要先确认好即将定义的变量的数据类型
变量:可以声明并赋值,也可以先声明后赋值;
但是在使用变量之前,变量必须是被声明好并赋值的
数据类型 变量名 = 赋值
常用的数据类型: int整数 double小数 String字符串"" boolean布尔类型 char字符型''
变量关注的点:
1.数据类型
2.变量名(标识符的规则|规范)
3.值
4.作用域 {}
常量
讲就是在程序运行过程中,其值不能发生变化的量
分类:
1.字面值常量
整数常量: 1 123 -7
小数常量: 0.34 -0.5 3.4
布尔常量: false true
字符常量: 'a' '1' '好' '~'
字符串常量: "abc" "哈哈" "123"
2.自定义常量
被final修饰的变量为常量
数据类型:
基本数据类型:四类八种
整型
表示形式 表示名称 范围 大小
byte 字节型 [-128,127] 1字节 8bit
short 短整型 +-3万 2字节 16bit
int 整型 +-21亿 4字节 32位
long 长整型 非常大 8字节
浮点型
表示形式 表示名称 大小 精度
float 单精度 4个字节 小数点后7位左右
double 双精度 8个字节 小数点后15为左右
小数类型会有精度不准确的问题,参与运算可能会失真 BigDecimal
小数的字面常量值默认是double类型的,如果给float赋值,数据后面添加f/F
字符型
表示形式 表示名称 范围 大小
char 字符型 [0,65535] 2个字节
字符型的表示形式:
1. ''中给单个字符 '1' ', ' '
2. 0~65535 根据Unicode字符集进行确认 去 ascii
当字符型参与运算的时候,先转为10进制的数再去参与运算
布尔型
boolean true|false 1位
引用数据类型: 类 接口 数组
public class DataType05{
/**主方法*/
public static void main(String[] args){
//byte
byte b=127;
System.out.println(b);
short s=1;
System.out.println(s);
int i=5555;
long l=111111111111L;
System.out.println(l);
//double
double d=0.9;
System.out.println(1.2-1);
float f=0.9f;
System.out.println(d);
//char
char ch1='a'+1;
char ch2=97;
char ch3='好';
System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
//boolean
boolean False =true;
boolean flag=False; //java严格区分大小写
System.out.println(flag);
}
}
数值型的表现形式:满几进一
整形:
二进制:是0,1组成,0b开头表示是二进制
八进制:0~7之间的数字组成, 以0开头
十进制:系统默认的就是十进制
十六进制:由0~9,a~f组成 以ox开头
其他进制转为十进制:从右往左计算;每一位数的值*进制数(次方从开始,以此加1) 结果就是十进制的值
十进制转为其他进制: 十进制的数一致除以要转的进制数 求余数,从下往上看
浮点数:
1) 0.5->.5 z整数位数是0的时候,0可以省略
2) 科学计数法 e->10 1.23e2==>1.23*10^2 (只能用来表示浮点数)
public class Demo06{
/**主方法*/
public static void main(String[] args){
System.out.println(0b10); //0 * 2^0 + 1*2^1=2
System.out.println(0B0110); // 0 * 2^0 + 1*2^1 + 1*2^2+ 0*2^3 =6
System.out.println(0110); // 0 * 8^0 + 1*8^1+1*8^2 = 72
System.out.println(0X15); // 5* 16^0 + 1* 16^1 = 21
System.out.println(0b1100); // 12
System.out.println(.5); // 0.5
System.out.println(1.23e2); // 123.0
System.out.println(1.23e-2); // 123.0
}
}
数据类型转换:
1.boolean不参与类型转换
2.自动类型转换|提升
从小范围类型的数据->大范围类型的数据
多个类型的值参与运算,最终结果的数据类型默认自动提升为最大的参与运算的数据的类型
多个数据的类型,如果只有byte,short,char任意组合,最终的结果会自动提升成为int
byte,short,char赋值,只要是在其范围内的常量值都可以成功赋值
3.强制类型转换 ,强制类型转换有可能会损失精度
小范围数据类型 变量名 = (小范围数据类型)大范围类型的数据;
byte -> short-> int -> long-> float ->double
转义字符
使用转义字符让一些具有特殊含义的字符表示其本身
转义字符从\开始 \+要转义的字符
\'
\"
\\
\t 制表符 : 一个制表符代表8个空格 一个汉字占2个空格,一个字母占1个空格
如果制表符位置前面的内容满足制表符的整数倍,重开一个制表符位,如果不满,就不全一整个制表符位
\b 退格 光标回删一个
\n 换行 光标从这一行的行尾变为下一行的行首
\r 回到行首
运算符
算术运算符
赋值运算符
比较运算符
逻辑运算符
条件运算符
位运算符
操作数: 运算符左右两边的数就是操作数
表达式: 运算符连接左右两边的操作数叫做表达式
语句: ;代表一个语句的结束
一元运算符|单目运算符:操作数只有一个的运算符 ++ --
二元运算符|双目运算符:操作有两个 + - * /
三元运算符|三目运算符:条件运算符
算数运算符:
+ - * / % ++ --
+:
1) 正号(省略)
2)加法运算
3)字符串的连接符使用 : 当+左右两边只要有字符串的出现,那么就作为连接符使用,会把拼接为一整个字符串
赋值运算符
基础赋值运算符 =
= 优先级最低
唯一一个自右向左运算符的符号
扩展赋值运算符(基础赋值运算符+算数运算符)
+= -= *= /= %=
a+=1 ==>a=a+1;
优点:
提高执行效率,否则编译器也会把数据优化成为扩展赋值运算符的形式,能够成倍提高效率
帮强制类型转换
缺点: 不直观
推荐使用扩展赋值运算符
比较运算符|关系运算符
> < >= <=
只能比较byte,short,int,long,float,double,char
== !=
可以使用基本数据类型|引用数据类型
结果都是boolean类型的结果
逻辑运算符
操作数是值为boolean类型的表达式
& 与: 两边都为true结果才为true,一个为false结果为false
| 或: 一个为ture就是true,两个都为flase才是false
! 非: 取反 !true-->false
^ 亦或: 两个操作数相同为false,不同为true
短路的作用:如果第一个操作数就已经能够决定最终的结果了,第二个表达式不再执行
&& ||
推荐使用短路