markdown学习Day4
标识符和关键字
关键字
以下是关键字,在JAVA里有特殊含义,不可以用作给变量和类起名
标识符
类名:scr新建的java class的名字
public class +[类名]
变量名:代码内部定义一个概念
String+[变量名]
【类名】+【变量名】+【方法名】=标识符
**【注意点】**
-
所以的标识符的首字母都应该是
-
字母大小写
-
美元符($)
-
下划线(_)
-
-
首字母之后可以是字母,美元符,下划线,数字的任意组合
-
不能使用关键字作为变量名和方法名
-
标识符是大小写敏感的
-
可以使用中文,但是一般不用,很LOW
数据类型
-
java是一种强类型语言,要求所有变量必须先定义后使用。
-
基本类型=整数(byte,short,int,long)浮点(float,double)是非(true,false)字符
-
引用类型:类,接口,数组
变量
-
变量就是一个可以变化的值
-
Java变量是程序中最基本的储存单元,包括【变量名】【变量类型】【作用域】
【type】+【varName】=【[=vaule]】
-
数据类型+ 变量名 = 值 (最后加个分号)
八大数据类型
字节
-
位(bit):计算机内部存储的最小单位
-
字节(byte):计算机的基本单位,一个字节等于8个位;1B=8b
-
字符:计算机中使用的字母,数字,字,符号
-
1024B=1KB
1024KB=1M(兆)
1024M=1G
1024G=1TB
数据类型拓展
-
整数拓展
进制,二进制[0b],十进制,八进制[0],十六进制[0x]
-
浮点数拓展
有限 离散 舍入误差 接近但是不等于
{最好不要用浮点数进行比较}
*【==】java中进行比较的符号
-
字符拓展
【强制换行】
原理:所有字符本质上还是数字
编码中有个叫Unicode表,将字母,汉字等转化成数值
如a=97,A=65,“中”=20013
sout(c1)-------->sout((int)c1) 即可以完成强制换行的操作
-
转义字符
【\t】制表符(空格)
【\n】换行
类型转换
JAVA是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低-------------------------------------------------------高
byte,short,char< int < long < float < double
运算中,不同类型的数据先转换为同一类型
【强制转换】 (类型)变量名
从高到低
int i =128;
byte b = i;
//(这个时候就会报错,因为是不同的数据类型)
int i =128;
byte b = (byte)i;
//英文括号里加需要转换成的数据类型
//但要注意每一个类型的最大最小值,不要产生内存溢出现象
【自动转换】
从低到高
int i =128;
double b = i;
//不需要任何操作就可直接转换
【注意点】
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
把高容量转到低容量时强制转换,从低到高自动转换
-
转换时可能出现内存溢出和精度问题
精度问题:当要将高容量的小数转换为低容量的整数时,其输出的精度会出现偏差,如会舍去小数点后的数字
System.out.println((int) 23.7);
System.out.println((int)-45.89f);
23
-45
Process finished with exit code 0
常见问题
1.操作比较大的数时,注意溢出问题
int money = 10_0000_0000;
//数字之间可用下划线分割
int year = 20;
int total = money*year;//-1474836480,未输出正确的值,计算时内存溢出
System.out.println(total);
//若换一个long,虽然long>int,但此时total的值默认是int
//转换之前就出现问题
//解决方式
long total2 =money*((long)year);//将其中一个数转化为long数据
System.out.println(total2);
浙公网安备 33010602011771号