变量、数据类型、运算符

第2章 变量、数据类型、运算符

一、标识符:
标识符
二、关键字,也叫保留字:

在这里插入图片描述
三、什么是变量:程序中为存储数据而定义的名称。变量就是存储空间数据的表示,它可以表示数据在内存中的地址。通过变量改变存储的值,任何变量都有类型。
变量的命名规范:遵循“骆峰命名法”,变量首字符小写,各单词连接的首字符必须大写。如:studentName, myName, ……。变量名称命名必须含义清晰,可由一或多个单词组成或由单词的简写形式组成。
在这里插入图片描述
注意:变量名是标识符,所以变量的命名与标识符命名是完全一样的。
声明变量语法:
i.方式1)数据类型 变量名 = 值;//计算机会分配内存来存储值
ii.方式2)数据类型 变量名; //这种方式不占用计算机的内存
变量名 = 值; //接着再给变量赋值
如: int money = 1000;
System.out.println(money);
或者
int money;
Money = 1010;

注意:如果变量在使用前必须初始化(即赋值)否则将会报编译错误。
int money; //未赋值
System.out.println(money); //编译错误

四、 数据类型的分类:
基本数据类型(也叫值类型、原始类型)。值类型仅仅表示内存一个简单的数值。
引用类型(对象类型,如数组、接口,即使是基本数据类型的数组也是引用类型)。在Java中任何一种基本数据类型(值类型)都有一个相对应的类进行封装;这点后面会讲到现在先了解即可。
值类型 –-> 引用类型(包装类型)
int java.lang.Integer类
short java.lang.Short类
byte java.lang.Byte类
long java.lang.Long类
char java.lang.Character类
float java.lang.Float类
double java.lang.Double类
boolean java.lang.Boolean类
基本数据类型(值类型)的细分如下:
在这里插入图片描述
在这里插入图片描述
byte:字节,占8个二进制位,数值范围256:-128 ~ +127
char: 字符,占2个字节,16个二进制位。
boolean: 布尔类型,false/true.
short: 短整型,占2个字节,数值范围65536:-32768 ~ +32767
int: 整型,占4个字节
long: 长整型,占8个字节
float: 单精度浮点型,占4个字节
double:双精度浮点型,占8个字节
注意:String不属于基本数据类型,是引用类型。引用类型(对象)才会有属性和方法(后面会详细讲解)。
五、各数据类型的使用:
//整数类型
byte bt = 10; // -128 ~ +127
short sh = 90; //-32768 ~ +32767
int i = 22;
long ln = 784354353L;

System.out.println("byte bt=" + bt);
System.out.println("short sh=" + sh);
System.out.println("int i=" + i);
System.out.println("long ln=" + ln);

//小数类型,在实际开发应用中double使用的多,float使用少。
float fl = 3.1415926F; //单精度浮点类型,定义时要加一个"f/F"
//float fl = 3.1415926; //错误

double db = 543.099;  //双精度浮点类型
System.out.println("float fl=" + fl);
	System.out.println("double db=" + db);

注意:Java里小数默认的数据类型是double,如果是float类型要在值后面加一个”F”或”f”。

六、常量:值永远不变, 常量一但声明就不能给它重新赋值。
语法:
public static final 数据类型 常量名(全大写)= 值;//定义常量时必须初始化
final double PI = 3.1415926; //正确
PI = 899.98342; //错误
注意:如果是局部常量声明时不能有public static

七、运算符:
赋值运算符: =
算术运算符:+, -, , / (取整), % (取余数)
关系运算符:>,<,,<=,>=,!=。其运算结果是boolean值。
逻辑运算符: &, &&, |, ||, !。用来连接多个关系运算符表达式。
boolean bln = (1
2 & 1<2);
位运算符:>>>,<<<, &, |如果用于数值运算则为位运算
八、算术运算符: +, -, , / (取整), % (取余数)
int a = 10;
int b = 3;
/

int a = 99, b=10;
a += b; 等价于 a = a + b;
其它的几个运算符( -,
,/,%)类似。
*/
a /= b; //等价于:int a = a/b;
System.out.println(“a=” + a);
九、运算符的优先级
(1) 先执行算数运算(+ - * / %)
(2) 然后执行比较运算(> <…)
(3) 然后执行逻辑运算
(4) 最后执行赋值运算

十、(容易晕菜)自增(递增)++和自减(递减)—
后++,后–
i.变量的原值先被使用或先输出后,变量的值再自增1或自减1,其优先级低。
int age = 20;
  System.out.println( age++ ); //输出20
System.out.println( age-- ); //输出20
前++,前–
i.变量值先自增或先自减后,变量的新值再参与运算或输出,其优先级高。
int age = 20;
System.out.println( ++age ); //输出21
  System.out.println( --age ); //输出19

十一、数据类型转换:
自动类型转换
制类型转
在这里插入图片描述
自动类型转换
i.将一种类型的变量赋给另一种类型的变量时,只要满足以下条件,就会发生
自动类型转换:
a)两种类型兼容,如数值类型;
b)目标类型大于源类型;
// float->double 会发生自动转换
float fl = 0.9F;
double db = fl;

	System.out.println("float->double: " + db);

	//byte->short->int->long->double 会发生自动转换
	//float -> double
	byte bt = 11;
	short sh = bt;
	int i = sh;
	long ln = i;
	System.out.println("byte->short->int->long: " + ln);

注意:自动类型转总是安全的,可以放心使用的,也就是说数值的精度不受影响。

 强制类型转换
i.强制转换用于显式类型转换。如果被转换的值的数据类型大于其目标类型,就会丢失部分信息。
特别需要注意:强制类型转换是不安全的,数据精度可能会受到影响。
类型提升规则
1.两种类型兼容;
i.例如:int 和 double、float等兼容。
2.目标类型大于源类型;
例如:
i.byte、char和 short 型值可提升为 int 型。
ii.例如:double 型 大于 int 型。
3.对于表达式
i.如果一个操作数为 long 型,则整个表达式提升为 long 型。
ii.如果一个操作数为 float 型,则整个表达式提升为 float 型。
iii.如果一个操作数为 double 型,则整个表达式提升为 double 型。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40574657/article/details/85596384