javase基础--数据类型&基本运算

1变量

概念
内存中一个存储区域,该区域拥有自己的名称和数据类型,该区域的数据可以在同一数据类型的范围内不断变化。

定义
数据类型 变量名=初始化值。
通过变量名来访问所指向内存区域的值。

注意
需要初始化才能使用变量
变量作用域在一对{ }内

2数据类型

基本数据类型 8个
byte : 8位,最小数据单位,-128-127
short : 16位 -32768 ~ 32767
int : 32位 -2^31 -1 ~ 2^31 ,默认
long :64位 在定义后面加l ,小于32位的变量按int结果算
char :16位 用单引号括起来的 1 个字符 不能为 0个字符
boolean
float: 32位 1 位符号位,8 位指数,23 位有效尾数 如果要是float, 数字后面要加f
double : 64位 1 位符号位,11 位指数,52 位有效尾 默认

级别:byte,char,short(这三个平级)–>int–>float–>long–>double
string是引用数据类型

3运算符

1算数运算符
“ + -*/ %” %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
+:连接符。
++,- -
2比较运算符
3赋值运算符
= += -= *= /= %=
4逻辑运算符 运算结果为true或false
& | ^ ! && ||
^两边不一样为true

& 和 &&区别:
& :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别:
|:两边都运算。
||:短路或,如果左边为true,那么右边不参与运算。

5位运算符 现将数字转化为二进制,按位计算,运算结果为数字,
& | ^~
<< 左移:向左移几位就是乘以2的几次幂 12<<2=12*4=48
>>右移 :向友移几位就是除以2的几次幂 12>>2=12/4=3
^:相同则0,不同则1 一个数据对另一个数据位异或两次,该数本身不变。
~:按位取反

6三元运算符
(关系表达式) ? 表达式1 : 表达式2;

陷阱题

1
byte b1=3,b2=4,b;
b=b1+b2; //错误,在计算中jvm把b1,b2转换为int类型计算,int类型赋值给byte会抛出损失精度的错误。

2
byte by = 130;
byte的范围为-128 -127,130超出范围,运算会砍掉前面8位,结果变成126
130 转为二进制
00000000 10000010
10000010取补码 11111110 得到-126

3
byte b=1;
b++;
这里会做一个自动转化动作,b=(byte)(b+1) ,不报错

4
赋值运算符 系统会自动转换 ,
byte a=1;
a+=1;

5判断一个值是否为奇数,是返回true,
效率最高:
int i;
return (i&1)==1
return (i>>1<<1!=i)

6 &和&&

int y=1,x=1;
if(1==3 & ++y>0) ;
if(1==3&& ++x>0);
System.out.println("Y:"+y+"...X:"+x);

结果:Y:2…X:1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值