Java的变量、数据类型、表达式、运算符?(二)

不积跬步,无以致千里;
不积小流,无以成江海。

那么什么是变量呢?

在这里插入图片描述
变量即是计算机中一块存储空间,是用来存储数据的基本单元。

变量的组成部分?

数据类型 变量名 = 数据

数据类型:

(1) 数据类型:决定变量在内存中空间大小 
(2) 变量名:方便查找变量对应空间数据 
(3) 数据:存在变量对应空间中内容

变量语法:

(1) 先声明再赋值: 
	数据类型 变量名; // 声明 
	变量名 = 值; // 赋值 
	int a; 
	a = 3; 
(2) 声明的同时并赋值: 
	数据类型 变量名 = 数据; 
	int a = 3;
(3) 同时声明多个同类型的变量:
	数据类型 变量名1,变量名2,变量名3=数据;
	int a = 1,b,c;

数据类型(8个)【重点】

字节:
Byte简写为 B
1B = 8b (bit 位)
1024B = 1KB
1024KB = 1MB
1024MB = 1GB (G)
1024GB = 1TB 10.24 程序猿节日

					(4个整数类型)
整数类型 字节 取值范围
byte 1B -128~127
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B -922京~922京-L

注意:
long字面值后面需要加 大写L或是 小写l,建议加L区分数据1;存储整数应用 int较多

					(2个小数类型)
小数类型/浮点类型 精度 字节
float 单精度 4B
double 双精度 8B

注意:
a. float字面值后面必须加 小写f或是大写 F
b. double字面值后面可以加 d或是D,也可以不加;存储小数应用 double较多

					(1个字符类型)
字符类型 字节
char 2B

字面值有以下三种方式:

a. 单引号引起来的一个字符(字母、符号+汉字) 
	char c = 'x'; 
    char c1 = '可';
b. 利用 整数进行赋值:0~65535 
	char c = 65; // A 
	char c2 = 29233; //'爱' 
c. 利用 unicode编码(十六进制)存储: 
	char c = '\u0041'; // 转换为十进制为 65->A 

在这里插入图片描述

				(1个布尔类型)
布尔类型 字节
boolean 1B

注意:

Java中boolean只能接受 true/false (字面值)
true:代表关系成立 
false:关系不成立

引用数据类型(对象数据类型)→String

(1) 理解:数组、对象、接口、集合等数据类型都为对象类型/引用类型 
(2) 以String为例理解对象类型: 
	a. 利用 双引号 引起来的 一个或是多个字符 
	b. String str = "HelloJava";
	   String s="你好";

数据类型之间的转换

Java是一种强类型的语言,对应的数据必须存储在对应类型的变量! 

自动类型的提升?

(1) 应用场景:小数据类型的变量赋值给大数据类型的变量
注意:衡量数据大小,从存储的数据范围考量
(2) 自动类型提升的规则:

byte->short->int->long ->float ->double

注意:float和double采用科学计数法形式进行存储,所以存储的数据范围会远远大于long

char -> int ->long ->float->double 

强制类型转换?

(1) 应用场景:大数据类型的变量赋值小数据类型的变量,需要使用强制类型 转换
(2) 语法: 源数据类型 变量名 = 值; 
		// double d = 2.5; 
	目标数据类型 变量名 = (目标数据类型)源数据类型的变量名;
		 // int a= (int)d; 
(3) 强制转换的结果: 
	a. 如果大数据类型的变量中存储的数据合理(在小数据的存储范围内), 结果不丢失数据 。
		int a = 10; 
		byte b = (byte)a; // 10
	b. 如果大数据类型的变量中存储的数据不合理,则数据丢失部分
		double d = 2.6; 
		int a =(int)d; // 2 

什么是表达式

由字面值、运算符、变量组成式子称为表达式,通常有一个结果

表达式的结果的类型规则如下:

(1) 如果表达式中有一个为double类型,则结果为double类型 
(2) 如果表达式中没有double类型,有一个为float类型,则结果为float类 型
(3) 如果表达式中没有double/float,有一个为long类型,则结果为long类 型
(4) 如果表达式中没有double/float/long,其余结果都为int类型 
	byte+byte    byte+short    short+short 
	int+int    byte+int    short+int 
	↑这几种情况结果都为int类型

什么是运算符

算术运算符:

(1) +     -    *(乘法)     /(除法)    %(取模、取余数) 
(2) 注意:Java中的 + 有两种应用: 
	a. 如果+两端都为数值类型,则 + 为加法运算 
	b. 如果+两端有一端为字符串(String),则+为字符串拼接

赋值运算符:

(1) =    +=   -=   *=   /= 等 
(2) 举例: 
	int a = 1; 
	a += 1 ; 
	// 结果上:a = a+1 
(3) 综合赋值运算符应用层没有自动类型提升: 
	byte b = 1; 
	b+=1; 
	// 编译通过,运行结果为2;
 	b = (byte)(b+1)

一元运算符:

(1) ++(自增)     --(自减) 
(2) 举例: 
	int a = 5; 
	a++ :或者写成 ++a, 执行一次,a变量中的数据自动加1 
	a-- :或者写成 --a,执行一次,a变量中的数据自动减1

在这里插入图片描述

关系运算符:

(1) >(大于)    >= (大于等于 )    <(小于)   
	<=(小于等于)     == (等于)    !=(不等于)  
(2) 布尔表达式:
	被关系运算符连接的表达式,如果关系成立,则结果为true; 
	关系不成立,结果为false,结果为布尔类型的表达式称为布尔表达式

逻辑运算符:

(1) &&:逻辑与,可以理解为大白话"并且"
	两端都必须为布尔表达式,同时为true,结果才为true,只 有有一端为false, 结果为false 
(2) ||: 逻辑或,两端都必须为布尔表达式,只要有一端为true,结果为 true,同时为false,结 果为false 
(3) !:逻辑非:在布尔表达式的结果上取反

三元运算符:

(1) 语法: 布尔表达式 ? 表达式1:表达式2 
(2) 执行原理:
	判断布尔表达式的结果为是否为true,为true,则执行表达 式1的结果, 如果布尔表达式的结果为false,则执行表达式2的结果 
(3) 举例: 
	int i= a>b ? a+b:a-b; 
	// 1>2     
	关系是否成立,不成立-执行表 达式2 a-b
	System.out.println("i="+i);

猜你喜欢

转载自blog.csdn.net/weixin_60768515/article/details/123305351