2.2.1为什么要学习?
数据是各式各样的,开发者要根据数据的类型为其在内存中申请一块合适空间。还有一个原因是:Java是一门强类型语言,任何数据都需要数据类型。
2.2.2数据类型的分类:
(1)基本数据类型:
整型:
byte(一字节-128~127);
short(二字节,-3万-3万 );
int(四字节);
long(八字节);
小数:
float(单精度,精确到7-8位 );
double(双精度,精确到15-16位);
char类型:
char(表示单字符用单引号 ‘’表示);
布尔类型:
boolean(用一个位0和1表示true和false);
以上统称为java八大基本数据类类型。
(2)引用数据类型:
String:字符串型,用于存储一串字符;
数组、类、接口;
区别:JVM编译或者执行堆栈时,基本数据类型是分配在栈上,而引用类型是分配在堆上;
注意点:java中默认的基本数据类型是:整形:int,浮点型:double。如果需要其他类型进行赋值时,在量的后面加上相应首字母(大小写都可以)e.g:long a = 10L;float = b = 1.0f;
2.2.3 变量命名规则
[1]可以是字母、数字、_、$
[2]数字不能开头
[3]不能是java关键字或者保留字
命名规范
[1]驼峰命名法:首字母小写,后续具有单个意义的单词首字母大写。
[2]见名知意
2.2.4其他:
其他字符:
转义字符\b退格 \n换行 \r回车 \t制表符 \”双引号 \’单引号 \\反斜杠
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接
常量:
在开发过程中,值不能发生变化的量称之为常量,用Final表示。
其他命名规则:
标识符命名规范
所有变量、常量、方法、类名:见名知意
变量、方法名:首字母小写和驼峰原则: run(), runRun(), age ageNew monthSalary
常量:
大写字母和下划线:MAX_VALUE
类名:
首字母大写和驼峰原则: Man, GoodMan
2.2.5运算符:
算术运算符:+ - * / % ++ --;
拓展运算符:+= -= *= /= %=;
关系运算符:>、<、>=、 <=、 ==、 !=,返回的是布尔值;
逻辑运算符 &&(与)(并、并且)、||(或)(或、或者)、非(!)。逻辑运算符两边的表达式一定是布尔值,结果也是布尔值。
逻辑&&的短路运算:
当逻辑&&左边的表达式结果为false时,第二个表达式将不进行任何运算。
逻辑||左边的表达式如果为true,第二个表达式将不进行任何运算。
三目运算符:(布尔表达式) ? r1 : r2
布尔表达式为true,这个运算的结果取r1,否则取r2。
2.2.6类型转换:在实际开发过程中,存在类型转换,类型转换分为两种,自动类型转换和强制类型转换。
自动类型转换:
[1]容量小的数据类型可以自动转换为容量大的数据类型。
[2] 类型兼容:1.数值型都相互兼容。2.int和char相互兼容(char本质上是整形,char是被编码的字符)
jvm对自动类型转换的优化:可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围;
在表达式进行计算时,表达式的结果会自动发生类型转换——>表达式的结果都向高精度偏移。
e.g:如果一个操作数为double型,则整个表达式可提升为double型(表达式中只要存在一个高精度的数值或者类型,表达式都会自动提升为该值的类型。)
强制类型转换: 强制类型转换,又被称为造型,用于显式的转换一个数值的类型.
形式:
int a = 100; byte b = (byte)a; System.out.println("b="+b);
强制类型转换存在信息丢失或者精度丢失的情况,一定要避免这两种情况的发生,特别是信息丢失的发生:
// 存在精度丢失的强制类型转换 float c = 10.2f; int d = (int)c; System.out.println("d="+d); // 信息丢失的强制类型转换。 int e = 300; byte f = (byte)e; System.out.println("f="+f);
本次复习结束。