1.变量定义与三要素
声明:
数据类型 变量名; int num; //开辟整数变量空间
赋值:
变量名 = 值; num = 100;
使用:
System.out.print(num);
2.变量名
标识符
语法规定:
字母、数字、 _ 、货币符号,不能以数字开头。
不与关键字(50个)、保留字重名。
不与字面常量重名:true,false,null
输出时,如果有注释,cmd运行时写为 javac -encoding utf-8 **.java
3.数据类型
3.1.基本数据类型*8种:
数值型
整数 byte(1字节8位 -2^7 ~ 2^7-1 即-128~127) short(2字节16位 -2^15 ~ 2^15-1) int(4字节32位 -2^31 ~ 2^31-1) long(8字节64位,int是默认,超出时在值后边追加L)
小数/浮点数 float(单精度浮点型 4字节,double是默认,超出时在值后边追加F) double(双高精度浮点型 8字节)
字符 char(2字符,万国码,0~65535)
ASCII码、Unicode万国码
常用ASCII码 --- 码48 ---》控制字 0 码65 ---》控制字A 码97 ---》控制字a
Unicode中,每个字符都对应一个二进制整数,可以使用多种方式赋值。
eg,字符赋值 char = 'A'(单引号引起来时,只能写1个字符,如果写为char e = '65'则错误) 整数赋值 char = 95(窄化简单类型转换) 进制赋值 char = '\u0041'
转义字符: \n换行符 \t缩进(最多代表8位) \\反斜线 \'单引号 \"双引号
非数值型
布尔boolean true false (4字节,存的是0和1,是特殊的int,但不参与算术运算) 或表达式(结果也只能是true/false)
拓宽简单类型转换:
3.2.引用数据类型:
字符串String (任何“ ”之间的字面值,Unicode字符序列)
4.类型转换
自动类型转换:两种类型互相兼容;目标类型大于源类型。
强制类型转换:两种类型互相兼容;目标类型小于源类型。
强制类型转换规则:
整数长度足够,数据完整。 int i = 100; byte b = (bytr)i // b=100
整数长度不够,数据截断。 int i = 10000; byte b = (byte)i // b = 16(符号位变化,可能会变成负数)
小数转换整数,数据截断。 double d = 2.5; int i = (int)d // i = 2(小数位舍掉)
字符整数互转,数据完整。 char c = 65;int i = c; //i=65
自动类型提升:
进行算术运算时,
两个操作数有一个为double,计算结果提升为double;
如果操作数中没有double, 有一个为float,计算结果提升为float;
如果操作数中没有float,有一个为long,计算结果提升为long;
如果操作数中没有long,有一个为int,计算结果提升为int;
如果操作数中没有int,均为short或byte,计算结果提升为int;
特殊,任何类型与String 相 + 时,实际为拼接,其结果自动提升为String。
5.运算符
算术运算符 + - * / % 加减乘除模
特殊情况:
a,b均为int类型时,a/b如果想得到小数数值,需要改变其中一个类型:(double)a/b 。
5/0 ==> 抛出异常
5.0/0 ==> Infinite(无限大)
0.0/0 ==> NaN(not a number)
一元运算符 ++ -- 自增/自减 在前时,先自增/自减后输出;自增/自减 在后时,先输出后自增/自减。
赋值运算符: = += -= *= /= %=
关系运算符: > < >= <= == !=
逻辑运算符:运算布尔值 && || ! 短路与/或(多个条件时,第一个条件未满足时,不会再运算第二个条件)
短路与&& 和 位与&
三元运算符:?:
优先级:括号优先,算术>关系>赋值,算术运算符遵循 */% > +-,