数据类型及其转换、常量、变量与运算符 Java第二天

数据类型

  作用:可以约束用户定义所变量占用的内存空间大小和内存空间中所能存储的数据类型。转载请标明出处

  字节型是最小的整数类型。
  字节:一小组相邻的二进制数码,通常以8位作为一个字节。例:01111111(第一位是符号位)。
  float变量在存储float型数据时保留8位有效数字,其取值是从第一个非0开始,向后取8位;doublet变量在存储double型数据时保留16位有效数字,其取值是从第一个非0开始,向后取16位。
  如果我们定义了byte类型的变量,约束了类型为整数,其整数的范围是-128~127。

类型位数占用存储空间(内存中)表数范围
byte8位1字节-128~127(-2^7~2^7)
short16位2字节-2^15~2^15-1
int32位4字节-2^31~2^31-1
long64位8字节-2^63~2^63-1
float32位4字节-3.403E38~3.403E38
double64位8字节-1.798E308~1.798E308
字符类型(char)16位2字节-
布尔类型(boolean)-2字节-

  注意:浮点(小数)类型的数据存储方式与数值(整数)型不一样,所以浮点类型表示的数据范围要比数值类型的最大表数范围大(float的表数范围>long的表数范围)。

变量、常量(被数据的量包含)

常量

  定义:在程序的运行期数据不发生变化的量。例:整数的常量(整型、小数型)、字符、布尔数值、空常量(null)。

变量

  定义:在程序运行的过程中存储可以变化的数据的量(使用内存空间存储)。
  使用范围:只能在当前的大括号和当前大括号的自括号内使用(方法中或语句块中)。
  定义位置:定义在方法或语句块中。
  定义语法:

//数据类型 变量名 = 初始值;
int i = 0;
double d = 0.0;
float f = 1.0f; 

  注意:①在定义任何的变量时必须要赋予初始值;变量名不可重复!
     ②在定义float类型的变量时一定要在初始值后加f;在定义double类型的变量时初始值后可加可不加d(同long的l);在定义char类型的变量时初始值一定要写在单引号''中,且只能存放一个字符。
     ③类的属性定义方式与变量相似,但不需要赋予初始值;变量定义在类中时作为类的属性使用,可不需要赋予初始值(有默认的初始值)。
     ④类属性的初始值

类型初始值
byte/short/int/long0
float/double0.0
char'\u0000'(u0000可翻译为一个空格),也可写为' '
booleanfalse

数据类型的转换

注意:除boolean类型以外都可转换;同类型变量在计算时不会有类型提升;

自动转换

整数类型:

  ①变量在做运算时会有溢出的情况,JAVA语言会进行自动转换处理。
  ②小空间的数据类型向大空间的数据类型转换。例:byte、short、char会转换(提升)为int。
  ③int数值溢出时也会溢出,但不会自动转换,而是直接损失精度。
  ④char在做运算时,若为字符时则会以ASCⅡ码的数值进行计算。
  ⑤任何整数类型和long类型做运算都会自动转换成long类型。
  ⑥常量在运算时,只要不超出java定义数据类型的最大表数范围就不会报错和自动提升。

例:

long num = 2200000000;//所赋的值超出了int类型的最大表数范围,后必须加L或小写l
long num = 198;//所赋的值未超出int类型的最大表数范围,可省略L或l

浮点类型(小数类型)

  ①float类型和常量计算不会有类型提升;float类型与所有整数类型计算时都会自动转换为float。
  ②double类型和常量计算时不会有类型提升;double类型与float类型计算时会自动提升为double类型;double类型与所有整数类型计算时都会自动转换为double。

强制转换

  语法:

//目标类型 变量名 = (目标类型)值/变量名;
//定义一个double类型的变量d
double d = 10.3;
//将double类型的10.0强制转换成int类型的10,并赋值给i
int i = (int)d;
//此时i的值为10

//将强制转换变量d后的数值赋值给b
int b = 20;
b = (int)d;
//此时b的值为10

//将20.0强制转换为20
int c = (int)20.5;
//此时c的值为20

  注意:①强制转换可能会损失精度,被转换的数值不可超过目标数据类型的最大表数范围。
     ②浮点类型转换为整数类型时会舍弃小数位。
     ③浮点类型之间可任意转换;字符类型可转换为任一数据类型(除布尔类型)。
     ④整数类型可转换成相对应数值的字符类型。

运算符

1.算术运算符

  四则运算符:+、-、*、/(取整)、%(取余)、++(自增)、--(自减)
    自增:将变量或数值的值加一
     ①后自增:先使用当前值,后自增
     ②前自增:先自增,后使用自增后的值
    自减:将变量或数值的值减一
     ①后自减:先使用当前值,后自减
     ②前自减:先自减,后使用自减后的值

int a = 10;
int b = 0;
b = a++;
//此时的b的值为10
int a = 10;
int b = 0;
b = ++a;
//此时的b的值为11

2.赋值运算符

赋值:=、+=、-=、*=、/=、%=(例:a+=5相当于a=a+5,其他同理 )

3.比较运算符

等于:== 不等于:!= 大于:> 大于等于:>= 小于:< 小于等于:<=

4.逻辑运算符

名称符号判断逻辑执行条件
与、并且&一假为假,全真为真表达式全部执行
|一真为真,全假为假表达式全部执行
(智能)短路与、并且&&一假为假,全真为真只执行到为假的表达式,不再向下执行
(智能)短路或||一真为真,全假为假只执行到为假的表达式,不再向下执行
异或^相同为假,不同为真表达式全部执行
取反!取相反结果-

5.位运算符

反码:原码符号位不变,余下取反
补码:反码的最后侧加一
计算机中的所有二进制计算都使用补码
3的原码=反码=补码

3原码反码补码
正数30000 00110000 00110000 0011
负数31000 00111111 11001111 1101

  左移(移动一位相当于乘2):将参与运算的值的二进制数据向左移动,低位产生的空位用0补齐。
语法:变量名/数值 << 位移数 例:a << 2;
例:2的二进制  0000 0010
  2左移两位后 0000 1000 此二进制对应的值为8

  右移(移动一位相当于除2):将参与运算的值的二进制数据向右移动,当高位产生空位时,若高位是0则使用0来补齐,若高位为1则使用1来补齐(右移是带着符号位移动)。

  无符号右移:将参与运算的值的二进制数据向右移动,当高位产生空位时用0补齐。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值