Java基础:常量分类、8种基本数据类型及使用方法、数据类型的转换

常量的6个类别(与下文变量相区分,为不变的量):

  1. 字符串常量,“Hello”、“abc”、“123”
  2. 整数常量,“100”、“-250”、“0”
  3. 浮点数常量,“-3.14”、“0.0”、“2.5”
  4. 字符常量,‘A’、‘9’、‘中’(单引号中必须有且只有一个字符)
  5. 布尔常量,true、false
  6. 空常量,null(即没有任何数据,不能直接打印输出)

基本数据类型

基本数据类型包括(8种int 、double 分别是整数类型和浮点类型中的默认数据类型):

数据类型(内存占用 / 字节)取值范围
字节型 byte(1)-128 到 127
短整型 short(2)-32768 到 32767
整型 int(4)-231 到 231-1
长整型 long(8)-263 到 263-1
单精度浮点数 float(4)1.4013E-45 到 3.4028E+38
双精度浮点数 double(8)49E-324 到 1.7911E+308
字符型 char(2)0 到 65535
布尔类型 boolean(1)true、false

前四种统称为为整数类型,float和double统称浮点数类型。

数据类型还有一类叫:引用数据类型。在之后学,包括字符串、数组、类、接口、Lambda…

注意事项:

  • 浮点型可能只是个近似值,非精确值
  • 取值范围与内存不一定相关,float(4字节)取值范围比long(8字节)更广泛
  • 只写100是int,100L是long,只写3.14是double,3.14F是float。(大小写皆可,推荐大)
  • 字符串是引用类型,不是基本类型,字符串的加法“+”表示连接操作

例1:
str1=java;
System.out.println(str1+20+30);
结果为java2030,因为先执行了第一个“+”号
System.out.println(str1+(20+30));
结果为java50,改变了优先级,小括号是个神奇的东西。

使用方法

数据类型 变量名=数据值;(当然也可以先创建再赋值)
int num1=6;
float num2=3.14F;(非默认类型赋值带上后缀,如L、F)
char num3=‘中’;
boolean var=true;

注意事项:

  • 变量赋值后赋值才可打印输出
  • 在作用域内使用变量(从该变量定义直到所属大括号之间)
  • 多个变量赋值可写为:int a=10,b=20,c=30;

类型转换

  1. 自动类型转换(隐式)要求:数值范围从小到大,例如以下操作会发生自动转换:
    long num1=100; (从int变为long)
    double num2=2.5F;(从float变成double)
    float num3=30L;(从long变成float,结果为30.0)

  2. 强制类型转换(显式,不推荐,方法是直接在右侧数值前加(),里面填要转的类型,如下面例子中的int):
    int num4=(int)100L;(没有问题)
    int num5=(int)6000000000L;(结果为1705032704,数据溢出)
    int num6=(int)3.5;(结果为3,小数直接舍弃,精度损失)

注意事项:

1.byte/short/char可数学运算,首先都会被转成int类型,再计算:

例1:
char num3=‘A’;System.out.println(num3)的结果为A
char num3=‘A’;System.out.println(num3+1)的结果为66

例2:
byte num4=40;
byte num5=50;
byte result=num4+num5;
会发生精度损失,因为num4+num5是都被转为int后再计算的,应用int类型接收结果result


2.byte/short/char变量赋值时,如果右侧要赋的数值没有超过byte/short/char的范围,javac编译器会自动地、隐式地为代码补上(byte)/(short)/(char):

例1:
char num1=65;
System.out.println(num1);
结果为A,相当于65前有个隐形的(char),从int隐式地变为了char


3.编译器带有常量优化功能,如代码中有short result=1+2,则编译器直接把3赋给result,而不是在之后执行过程中耗费相应的计算资源

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值