Java课程学习第二课:数据类型


一、Java包含哪些数据类型?请举例说明

Java的数据类型包括:基本数据类型与引用数据类型,

基本数据类型:
  1. 整形:
    byte short int long
  2. 浮点型
    float double
  3. 字符型
    char
  4. 布尔型
    boolean
基本类型 位数 字节 默认值
int 32 4 0
short 16 2 0
long 64 8 0L
byte 8 1 0
char 16 2 ‘u0000’
float 32 4 0f
double 64 8 0d
boolean 1 false

对于 boolean ,官方文档并未明确定义,它依赖于 JVM 厂商的具体实现,逻辑上是理解占用 1 位,但是实际中会考虑计算机高校存储因素。

基本数据类型对应的包装类型
  • int - Integer
  • short - Short
  • long - Long
  • float - Float
  • double - Double
  • boolean - Boolean
  • char - Character
  • byte - Byte
    助记:
    基本数据类型对应的包装类型首字符大写,除过int 和 char
    int -----> Integer
    char ----> Character
    包装类类型不赋值为 NULL , 而基本类型有默认值且不是 NULL

注意:

  1. Java 里使用 long 类型的数据一定要在数值后面上加 L,否则将作为整形解析。
  2. char a = 'h' char : 单引号,String a= "hello" String :双引号
引用类型包括:

类(class) 接口(interface)和数组。

二、Java基本数据类型转换包含哪两类?请举例说明?

Java基本数据类型转换包含:强制转换和自动转换。

基本数据类型有整形,数值型,浮点类型,这些数据在计算机中的字节数不同(具体见下图),所以计算机在对这些不同类型的数据进行运算操作时,就会发生类型转换。
在这里插入图片描述

自动类型转换

自动类型转换(隐式类型转换),由系统自动完成的类型转换。从存储范围小的类型到存储范围大的类型。
示例如下:

public class javaDemo{
   
    public static void main(String args[]){
   
        byte x = 20;
        double y = 0.5;
        System.out.println(x*y);
    }
}

此程序的运行结果:10.0 ;可以看出在运算时,低等级的byte类型自动被转换成了高级的double类型。

强制类型转换。

强制类型转换(显式类型转换),从存储范围大的类型到存储范围小的类型。该类类型转换很可能存在精度的损失。
示例代码如下:

public class javaDemo{
   
    public static void main(String args[]){
   
       long num = 2147483649L;
       int temp = (int)num;
       System.out.println(temp);//这段程序的运行结果是-2147483647;
    }
}

本程序定义了一个超过 int 范围的 long 变量 ,所以在进行强制数据类型转换时就出现了数据溢出问题。

关于隐式类型转换
float与 double

字面量1.1是属于double类型的,不能直接将1.1赋值给float变量,因为这个是向下转型。 java不能隐式执行向下转型,因为这样会降低精度。
若是赋值为float类型,可以有:

float f=1.1f;
float  f= (float) 1.1;
short

short类型比int类型精度要低,所以不能隐式的将int类型向下转型为short类型。但是使用++,+=运算符时,会执行隐式类型转换。

  short s5=1;
  s5+=1;
  s5++;
  //相当于将s5+1的结果进行了向下转型
  s5=(short)s5+1;

三、为什么需要包装类?

引入包装类的目的如下:

(1) 基本数据类型并不是对象,在一些场合不能直接使用,需要转化为对应的包装类对象才能继续使用。
(2)包装类的一些静态方法可以实现不同数据类型的转化。
示例代码如下:

public class JavaDemo{
   
    public  static void main(String args[]){
   
        in
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值