java语法基础1——变量与运算符

变量与运算符

变量的定义和初始化
什么是变量?

表示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用。变量是内存中一块区域,可以往该区域存储数据,修改里面的数据,也可以获取里面的数据。总的来说就是占用内存;具有数据类型和变量名;在当前作用域(当前{}内)内可以重复使用,但是不能重新命名;在同一数据类型的范围内可以任意改变。

// 变量的定义初始化
int i;			//定义
i = 10;			//初始化
//定义和初始化可以一起进行
int j = 10;		//类型名 + 变量名 = 常量	;
表达式

表达式(expression):是由数字、运算符、括号、常量、变量等以能求得结果的组合。

// 表达式
int a = i + 10;
基本数据类型
1.数据类型:包括8大基本数据类型和引用数据类型。

基本数据类型:字节型byte,占用1位字节;短整型short,占用2位字节;整型int,占用4位字节;长整型long,占用8位字节,初始化时常量后面加L;浮点型float,占用4位字节,初始化时常量后面加F;双精度型double,占用8位字节;字符型char,占用2位字节,初始化时是单引号,切不可用双引号;布尔型boolean,占用1位字节,只有true 和 false两种结果。
引用数据类型:数组、类、接口、、、

// 列举几个定义初始化
long a = 1000000L;	//长整型,后缀L,内存很大,但是也有限度,超过18位报错,整数没有后缀默认是int
float f = 3.14F;	//浮点型,后缀F,小数没有后缀默认是double
2.数据类型转换:自动转换和强制转换

自动转换:占位字节小的数据类型可以自动转成占位大的数据类型,long转float除外,float底层不同所以支持long转float。转换顺序:byte、short、char(这3种数据类型互相之间不转换)→int→long→float→double。boolean只有true 和 false不参与转换。
强制转换:占位大的数据类型转占位小的数据类型。

// 自动转换
byte b = 10;
int i = b;	//变量b赋值给a时自动提升到int型
short s = 10;
i = s + b;	//byte,short,char参与运算时先自动转成int型,所以用int型的i来接收它们的和
double d = b + i + s + 3.14F + 3.14;	//不同类型的数据进行运算时会自动转成最高位的数据类型

//强制转换
int j = (int) 3.14;
System.out.println(j);	//输出3,因为把double类型的数据转换成整型会取整

byte x = 10;
byte y = 20;
byte z = x + y;		//会报错,因为运算时已经变成int类型了
byte z = (byte) (x + y);		//强制转换才能使用byte类型来接收
算术运算符

用来四则运算的符号,和小学学习的加减乘除无异:+、-、*、/、%(模)。
注意:“+”有3重意思,可以用于两个数的加,也可以用于表示正号,还可以用来连接字符串如:

// +	连接字符串
System.out.println("中国" + "加油");		//输出“中国加油”
前置++和后置++

这个要区分清楚,java面试经常会问这种问题。
前置++:++a表示先加1,再参与运算
后置++:a++表示先参与运算,运算完再加1

// 前后置++的区别
int a = 10;
System.out.println(a++);		//a=10,先打印a,再加1
System.out.println(++a);		//a=12,传下来时已经是11了,先加1,再打印
赋值运算符

赋值运算符包括:=、+=、-=、*=、/=、%=
重点说一下+=:

// +=赋值
int a = 10;
a += 2;		//等价于a = a + 2;
byte b = 10;
b += 2;		//不等价于b = b + 2;因为2是int型如果这样写会报错,结果已经是int型了,但是b += 2这样表达的时候底层已经完成了强制转换,结果还是byte型,所以一般自增都是使用+=,不建议使用b = b + 2
比较运算符

比较运算符:>、<、!=、>=、<=、==,比较运算符的结果是true 或者 false

三目运算符

重点,构成:数据类型 变量名 = boolean表达式 ?A :B;如果boolean表达式为true则结果为A,否则为B。

// 三目运算符————判断99的奇偶性
int i = 99;
String result;
result = i % 2 ==0 ? "偶数" : "奇数";
System.out.println("99是" + result);
逻辑运算符

常用逻辑运算符:&、|、!、&&、||(异或很少用,就不说了)。

// 逻辑运算符
int a = 10;
int b = 20;
int c = 30;
System.out.println(a > b & a > c);		//结果false,同真则真,false + false = false
System.out.println(a < b | a > c);		//结果true,一真则真,true + false = true
System.out.println(!a > b );		//结果true,取反,!false = true

//&与&&的区别
System.out.println(a > b & a / 0 == 0);		//结果报错
System.out.println(a > b && a / 0 == 0);	//结果false
//&与,无论&左边的表达式是否正确都要运行&右边的表达式。&&短路与,当&&左边的结果为false时不运行&&右边的表达式

//|与||区别
System.out.println(a < b | a / 0 == 0);		//结果报错
System.out.println(a < b || a / 0 == 0);	//结果false
//|或,无论|左边的表达式是否正确都要运行|右边的表达式。||短路或,当||左边的结果为true时不运行||右边的表达式

注:建议大家都使用短路与(&&)或短路或(||),因为程序会根据左边表达式判断是否运行右边表达式,能提高运行速度和性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值