Java中的数据类型和变量以及运算符

Java中的数据类型

  • 基本数据类型
  • 引用(复合)数据类型

基本数据类型

Java中的基本数据类型有8中,分别代表字符、数字和布尔

数字类型

  • 整数
  • 小数
整数

byte
short
int
long

数据类型占用字节数据长度
byte1-128~127
short2-2^15 ~2^15-1
int4-2^31~ 2^31-1
long8-2^63~ 2^63-1

Java中的1b(字节)= 8 bit(位)
计算机的二进制是由0、1组成的,二进制的最小单位是位,一个字节有8位组成,所以计算机的最大二进制表示为0111 1111,最高位为符号位,0代表正数,1代表负数

小数

float (单精度)
double(双精度)

数字赋值规则:

在整数的赋值运算中,会存在如下情况:
1.如果整数的值在对应的变量类型的取值范围内,则Java会自动将int 转换为byte、short,此时发生了隐式类型转换
2.如果字面量int的值大于byte、short、int的取值范围,此时无法正确完成赋值,有可能会产生损失,所以语法上会出错
3.如果字面量int对应的值要赋值给long、float、double,会自动转换

float赋值
  • 如果是整数,可以直接赋值给float
  • 如果是小数,则必须在后面添加F
char 赋值
  • 在Java中,通过‘char’表示计算机中一个字符,字符必须用单引号引起来
  • char表示一个字符的概念,所以单引号中只能写一个字符
  • char 一个字符占用2个字节,char的二进制最高位不是符号位,最大值1111 1111 1111 11110—>2^16-1 = 65535
char a = ‘中’;
char a = 20013;//2013代表中
char a = ‘\u4E2D’;//使用Unicode编码,标识为\u…,\u后跟十六进制表示法
  • 以上三种方式均是 char 的正确用法
布尔赋值

boolean 类型只有两个值,true(真)和false(假)

boolean a = true;

计算机的进制转换

十进制转二进制方式 :
数字除 2,一直除到 0,将余数倒序排列
十进制转八进制和十六进制和转二进制相同
小数转二进制方式:
小数部分乘 2 , 取整数,小数部分继续成2、直到小数为 0 位置, 将取到的整数正序排列

Java 中的 变量

变量的声明

类型 变量名
变量如果没有赋值,不能被使用
变量的生命周期:从变量的声明开始,到变量的块{…}结束位置完成

变量低————>高
byte --> short --> int -->long -->float --> double

Java中的运算符

Java中的运算符有以下几种类型:

  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 三元运算符
  • 位运算符
  • 位移运算符

1.算术运算符

两个数字做算术运算,满足以下规则:
1、如果包含 double类型,结果一定是double
2、如果包含 float类型,结果一定是float
3、如果包含 long类型,结果一定是long
4、其他数据、结果均为 int

2.赋值运算符

  • +=,-=,*=,/=,%= 不会改变结果的类型
byte a = 3;
a = a + 4;	//报错,a + 4的结果是int类型,a是byte类型,不能高量转成低量
a += 4//正确,+=的运算不会改变数据结果的类型

3.一元运算符(自增、自减)

  • a ++ 先计算表达式的值,表达式的值等于a的值,再对a进行 +1,并赋值给a
  • ++ a 是先对a 进行 +1,并赋值给a,再将a的值赋值给表达式
int a = 10 ;
int b = a ++ - (--a) - (a --) - (--a)
a = ? ,  b = ?	

4.逻辑运算符

&& 与运算

1.一假即假
2.如果第一个表达式为假,则第二个表达式不会被执行
3.&& 会产生断路现象

|| 或运算

1.一真即真
2.如果第一个表达式为真,则第二个表达式不会被执行
3.会产生断路现象

!非运算

  • !(非)的使用:boolean a = !(b>6) 不(小于)等价于>=

三元运算符

语法: exp1 ? exp2 : exp3

exp1 必须是一个 boolean 表达式,返回的必须是true和false
exp1 如果返回 true, 则 表达式的结果 取 exp2的 结果
exp1 如果返回 false, 则表达式的结果 取 exp3 的结果

int a = 10;
int b = a > 5 ? a ++ : ++ a;
System.out.println(b);
System.out.println(a);

位运算符

位运算操作不支持小数
& (位与运算)相同位结果都为1,结果为1,否则为0(一假即假)
| (位或运算)相同为结果只要有1,结果就为1,否则为0(一真即真)
^ (异或shift+6)相同为0,不同为1
~ (漂号)位非运算符 取反(正数结果为相反数-1 负数结果为相反数-1)

注意:单 & 和 | 不会产生断路现象

位移运算符

  • 左移 << 移动x位 a * 2 ^ x 有正负变化,移动32位变回原数
  • 右移 >> 移动x位 a * 2 ^ -x 正数右移补0 负数右移补1,移动32位变回原数
  • 无符号右移 >>> 补0

ASCII编码

常用的ASCll编码

  • 13:回车
  • 27:ESC
  • 48:0
  • 65:A
  • 97:a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值