变量~表达式

(一)常量

概念:常量,在程序运行过程中,其值不可以发生改变的量(数值)。

java中的常量分类

类型特点
字符串必须用“”双引号包裹"Hi" 、 "Hello"、"北京"等
整数-10、20等
小数-10.5、20.5等
字符必须用 ' ' 单引号包裹'A'、'B','中'等
布尔由 true和false表示“真”或“假”true、false

例:打印输出各种类型的常量

public class Demo {

public static void main(String[] args) {

System.out.println("要想健康又长寿"); // 输出字符串 System.out.println(20); // 输出一个整数 System.out.println(12.5); // 输出一个小数

System.out.println('A'); // 输出一个字符

System.out.println(true); // 输出boolean值true

}

}

一、变量(重点)

概念:计算机中一块内存空间,是数据的基本存储单元,通俗的讲变量就是用于存储数据的容器。

(一)变量的组成

1. 变量名:用于获取变量中存储的数据

2. 数据类型:用于约束变量所存储的数据种类与数值范围

3. 变量的值:变量中存储的数据

(二)变量的使用步骤

1.声明定义

语法:数据类型 变量名;

例:

int a;

2.为变量赋值(将数据存储到变量中)

语法:变量名 = 值;

例:

int a;//声明定义一个int类型的变量a

a = 10;//将10保存到变量a中,为变量赋值

3.定义变量同时为变量赋值

语法:数据类型 变量名 = 值 ;

例:

int a = 10;

4.同时定义多个相同类型的变量

语法:数据类型 变量名1, 变量名2, 变量名3....;

例:

int a,b,c;//同时定义三个int类型的变量

5.同时定义多个变量并赋值

例:

int a = 200, b = 400, c = 100;

注意

1. Java是强类型的语言,务必保证变量类型与值(数据)的类型一致。 例如:int 是整型变量,只能存储 整型数据

2. 在一个主函数中变量名不能相同*

二 数据类型(重点)

(一)类别

 

(二) 基本数据类型         

特点:存储一个数据

数据类型关键字所占空间数值范围字面值
整数byte1B-128~127整数
整数short2B-32768~32767整数
整数int(重点)4B-2147483648~2147483647整数
整数long8B-9223372036854775808~9223372036854775807整数L/l
浮点float4B-3.4e38~-1.4e-45 / 1.4e-45~3.4e38小数F/f
浮点double(重点8B-1.7e308~-4.9e-324 / 4.9e-324~1.7e308小数/D
布尔boolean*4Btrue|false 表示真或假
字符char28字符 :'A' 任何可以打出的字符 整数:0~65535 Unicode编码:'\u0000'~'\uFFFF''字符' 整数unicode编码

1)字面值:变量中可以存储的数据样式(类型)

2)数值范围所示为十进制数值范围

3)e/E表示科学计数法,e后面的整数表示乘10几 次幂,例如3.5*10*10*10 , 转换为科学计数法表示:3.5e3

(三)引用数据类型

特点:存储一个引用(内存地址),通过引用指向的地址获取数据。

字符串类型

关键字:String

作用:存储多个字符例:

String str="helloWorld";

System.out.println( str );

三、类型转换

(一)自动类型转换

概念:JVM自动将某种数据类型转换为另一种类型

作用:更换数据类型,扩大变量的数据存储范围

转换时机:赋值时

转换条件:

1.两种类型相互兼容

byte-short-int-long-float-double-char 相互兼容

例:byte转换为int

//源类型 byte b = 10; //目标类型 int a = b;

2.目标类型大于源类型

类型大小关系:byte<short/char<int<long<float<double 从小到大(按数据存储量进行排行)

例:long转换为float

long l1 = 100000L; //目标类型 源类型

float f1 = l1;//两种类型相互兼容 切 目标类型大于源类型

注意:以上两个条件必须同时满足才能自动类型转换

(二)强制类型转换

概念:手动强制JVM将变量的类型转换为另一种类型,强制类型转换的结果,不一定是正确的。

作用:不满足自动类型转换条件,需要更换数据类型时

转换时机:赋值时

语法:目标类型 变量名 = (目标类型) 源类型;

转换时机:

1.两种类型相互兼容

2.目标类型小于源类型

例:

int a = 10; //目标类型<源类型,强制类型转换

byte b = (byte)a;//强制将int类型的数据转换为byte

short s = (short)a;//强制将int类型的数据转换为short

转换结果:

1.整数长度合适,数据转换完整

例:

int a = 20;

byte b = (byte)a;

System.out.println( b );//结果:20

2.整数长度不合适,数据截取

例:

int a = 12345;

byte b = (byte)a;//byte只能存储一个字节的数据,其余三个字节全部截断

System.out.println( b );//结果:57

3.小数转换为整数,数据截取,只保留整数部分

例:

float f = 2.5F;

long l = (long)f;//截断小数位,只保留整数

System.out.println( l );//结果:2

4.整数转换为字符,长度合适,数据完整

例:

int a = 65;

.char c = (char)a;//将65转换为对应的字符

System.out.println( c );//结果:'A'

类型转换注意事项:

1. boolean 类型与其他类型均不兼容,所以不能用任何一种方式进行转换

2. 转换时两种变量数据类型必须兼容

3. 强制类型转换编译器不再干预,但依然有可能出现损失精度(数据不完整)的问题

四、表达式

概念:使用运算符链接的 变量 或 值,最终可以得到 一个结果

例:

int a = 10;

int b = 5; //表达式

a + b 结果:15

自动类型提升

作用 :表达式中参与运算的变量类型不一致,运算结果类型为参与运算的最大类型。

例:

int a = 10;

double b = 20.5;

System.out.print( a+b );//结果为30.5 类型为:double

byte b = 10;

long l = 100L;

double d = 10.25;

System.out.println( b+l+d );//结果: 120.25 类型为 double

double d = 10.25;

String str = "Hello";

System.out.println( d+str );//结果:10.25Hello 类型为String

自动提升规则

1. byte/short/char<int<long<float<double<String 由小到大

2. 任何类型遇到String都会提升为String类型

3. 与String类型的变量使用 + 号,结果为字符串拼接,将变量中的数据与字符串直接拼接在一起。

五、运算符(重点)

(一)算数运算符

已知有以下变量

.int a = 10 , b = 2;

String str = "Hello";

运算符参照表

运算符作用结果
+加法运算/字符串拼接a + b 、a + str12、10Hello
-减法运算a - b8
*乘法运算a * b20
/除法运算a / b5
%模运算 (获取余数)a % b0

(二)赋值运算符

特点:运算后,会改变一个变量的值

已知有以下变量

int a = 10 , b = 2;

运算符参照表

运算符作用执行结果表达式结果
=左侧变量或数据为右侧变量赋值a=20a的值为2020
+=用变量本身的值与另一个变量相加再赋值a += b 等同于 a = a+ba的值为1212
-=用变量本身的值与另一个变量相减再赋值a -= b 等同于 a = a-ba的值为88
*=用变量本身的值与另一个变量相乘再赋值a *= b 等同于 a = a*ba的值为2020
/=用变量本身的值与另一个变量相除再赋值a/=b等同于a=a/ba的值为55
++变量用变量本身的值+1再赋值++a 等同于 a = a+1a的值为1111
--变量用变量本身的值-1再赋值--a 等同于 a = a-1a的值为99
变量++用变量本身的值+1再赋值a++ 等效于 a = a+1a的值为1110
变量--用变量本身的值-1再赋值a-1a的值为910

注意:任何表达式本身都有相应的结果产生,赋值运算还会影响变量本身的值

int a = 10;

int b = 20;

System.out.println( a+=b );//输出表达式的结果 30 System.out.println( a );//输出变量的值 30

++、--在后问题:

int a = 5;

int b = 5;

//System.out.println( b=b+1); System.out.println( ++b );//作用同上,输出表达式的结果 6 System.out.pirntln( b );//输出变量的值 6

//通常情况下表达式的值与变量的最终值一致

//++、--在后,用变量本身的值,作为表达式的结果

System.out.println( a++ );//5 , 变量本身的值会作为表达式的结果,再为变量赋值 System.out.println( a ); //6

(三)关系运算符

作用:判断两个变量之间的关系,结果为boolean类型,表示真或假,成立或不成立

已知有以下变量

int a = 5; int b = 5;

运算符参照表

运算符作用结果
>大于a > bfalse
<小于a < btrue
==等于a == bfalse
>=大于或等于a >= bfalse
<=小于或等于a <= btrue
!=不等于a != btrue

(四)逻辑运算符

作用:用于多条件联合判断,结果均为boolean类型(布尔表达式)

已知有以下变量

int a = 10 , b = 20 , c = 2;

运算符参照表

运算符作用
(表达式)||(表达式)逻辑或,表示或者 两个表达式有一个true,结果为truea<b || a>c 、a>b || b<ctrue 、false
(表达式)&&(表达式)逻辑与,表示并且 两个表达式必须同时为true,结果为truea<b || b>c 、a<b || b==ctrue 、 false
!(表达式)逻辑非,取布尔表达式结果相反的值!(a>b)true

(五)三元/三目运算符

作用:可以根据 一个布尔表达式的真假,获取不同的结果

语法 :

布尔表达式 ? 结果1 : 结果2;

布尔表达式为 true ,获取结果1

布尔表达式为 false,获取结果2

结果1或结果2,可以使用数据、变量、表达式

例:

int a = 10;

int b = 20;

int r = 200;

System.out.println( a>b? 100: 110 ); //结果:110

System.out.println( a<b? 100: 110 ); //结果:100

System.out.println( a<b? r: 110 ); //结果:200

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值