九大基本数据类型及其对象包装类

       我们常说java是面向对象的,java中的一切都是对象。但这其中也有特例,就是我们常说的九大基本类型,为什么说基本类型特殊呢?因为new将对象存储于“堆”中,而非常小又简单的变量,用new是不划算的,于是乎java中不用new来创建变量,而是直接将值存储在“栈”中,使其更加高效。所以说,基本数据类型反而是特殊情况~

       下图就是java的九大基本数据类型:↓

       

         这里我来做两点补充:

         1、boolean的大小没有明确。因为"It depends on Java virtual machine",也就是说,boolean的大小其实是取决于java虚拟机的,有兴趣的同学可以查一下,这里不做具体展开,直接说结论:单个boolean变量在虚拟机中是用int存储的,也就是说占4个字节也就是32bits,而boolean数组在虚拟机中,单个占1字节也就是8bits。

         2、为什么说void也是基本数据类型呢?因为java中有两大类型:基本类型和引用类型。文章第一段也说了,java用new来创建对象后存入“堆”中,这就是引用类型;java不用new的话,就会将变量存入“栈”中,这就是基本类型。于是乎在《java编程思想》和《Think In Java》两本java经典书籍中,都将void归入了基本类型。

 

       下图是除掉void的八大基本类型的默认值:↓

        

         继续补充:

         在java中,变量一定要有值(即初始化)。而变量根据作用域分为两种:全局变量和局部变量。

         全局变量可以不手动初始化,java会赋予默认值(自动初始化)以确保变量被初始化了。

         局部变量不可以不手动初始化,java会返回一个错误告诉你变量没有初始化。

 

 

对象包装类

概念:为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类,主要用基本类型和字符串之间的转换。

       byte--->Byte

       short---> Short

       int--->Integer

       long--->Long

       float--->Float

       double--->Double

       char--->Character

       boolean--->Boolean
        
       void--->Void

 

 

基本类型与字符串之间的转换:

注意:字符串String是一个常用类,并不是基本类型!

基本类型--->字符串

1、基本类型数值+""

System.out.println(123+123);//246
System.out.println(123+""+123);//123123

2、String类中的静态方法valueOf(基本类型数值);

    valueOf(xxx xxx): 返回xxx参数的字符串表示形式。

     例:valueOf(int i): 返回 int 参数的字符串表示形式。

3、Integer的静态方法valueOf(基本类型数值);

 Integer x =Integer.valueOf(9);

 

字符串--->基本类型

1,使用包装类中的静态方法   xxx parseXxx("xxx类型的字符串");

   例: 

int parseInt("intstring");

long parseLong("longstring");

boolean parseBoolean("booleanstring");

    只有Character没有parse方法(它封装的就是一个字符)  

 

如果字符串被Integer进行对象的封装。可使用另一个非静态的方法,intValue():将一个Integer对象转成基本数据类型值。

 

 

整数具备不同的进制体现

 

 十进制-->其他进制

       *    toBinaryString 二进制

       *    toOctalString  八进制

       *    toHexString 十六进制

System.out.println(Integer.toBinaryString(60));//111100
System.out.println(Integer.toOctalString(60));//74
System.out.println(Integer.toHexString(60));//3c

System.out.println(Integer.toString(60,16));//3c

  其他进制-->十进制。

       *    parseInt("string",radix)

System.out.println(Integer.parseInt("111100",2));//60
System.out.println(Integer.parseInt("74",8));//60
System.out.println(Integer.parseInt("3c",16));//60

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值