zoukankan      html  css  js  c++  java
  • java --------- 包装类

    Java是面向对象的,但是java 中的基本类型不是,为每个基本类型设置了对应的包装类。

    位于java.lang 包中,char与int 对应的包装类比较特殊,其他的均是首字母大写

    八大基本数据类型:byte、 boolean  、short 、    char 、        int 、     long 、 float、 double

    对应    的   包装类:Byte 、Boolean、Short 、CharacterInteger 、Long、Float、 Double

    包装类的主要用途:
    1、包装类作为和基本类型对应的类存在,方便对象的操作

    2、包装类包含每种基本数据类型的相关属性,如最大最小方法等,以及相关操作方法

    基本类型和包装类的相互转换

    1、装箱:基本类型转换为包装类 

    2、拆箱:包装类转换为基本类型

     java 1.5 之后可以自动装箱和拆箱。

    对应类型的手动装箱拆箱

            //手动装箱拆箱
            //手动装箱主要就是 向对应包装类的 构造方法中传值
            Integer integer = new Integer(ji);
            // 手动拆箱  通过 intValue 方法
            int jibeni = integer.intValue();

    装箱

     拆箱

    说到这是不是想到了,好多转换的问题,字符串转换为数字,数字转换为字符串之类的。

    本质就是借助的包装类中写好的方法,我们进行合理的地调用

    如: 将字符串转换为数字类型,

    将数字转换为字符串类型

    package com.obge.test1;
    public class BaoZhuangStu {
        public static void main(String[] args) {
            //字符串转换为 int 类型
            String sInt = "121";
            // 借助 int类型对应的包装类 Integer 中的 int parse(String s);   方法
            int jibeni =  Integer.parseInt(sInt);
    
            //int 类型转换为 字符串
            int jbi = 232;
            //借助 Integer 类中一个静态的 toString() 方法,可以将整数转换为字符串
            String sjbi = Integer.toString(jbi);
    
            System.out.println(jibeni);
            System.out.println(sjbi.getClass());
        }

    Integer 类:

    构造方法
    Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。
    Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

     常用方法

    byteValue() 以 byte 类型返回该 Integer 的值
    shortValue()    以 short 类型返回该 Integer 的值
    intValue()    以 int 类型返回该 Integer 的值
    toString() 返回一个表示该 Integer 值的 String 对象
    equals(Object obj)    比较此对象与指定对象是否相等
    compareTo(Integer anotherlnteger)    在数字上比较两个 Integer 对象,如相等,则返回 0,如调用对象的数值小于 anotherlnteger 的数值,则返回负值,如调用对象的数值大于 anotherlnteger 的数值,则返回正值
    valueOf(String s)    返回保存指定的 String 值的 Integer 对象
    parseInt(String s)    将数字字符串转换为 int 数值

    Integer 类的常量
    MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值。
    MIN_VALUE:值为 -231 的常量,它表示 int 类型能够表示的最小值。
    SIZE:用来以二进制补码形式表示 int 值的比特位数。
    TYPE:表示基本类型 int 的 Class 实例。

    其他的类似,可以查看API学习

    注意:

    jvm内存:

    主要分为三大块:堆内存、方法区、和栈。

    堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配;

    方法区存储类信息、常量、静态变量等数据,是线程共享的区域,为与Java堆区分,方法区还有一个别名Non-Heap(非堆);栈又分为java虚拟机栈和本地方法栈主要用于方法的执行

      老年代空间大小=堆空间大小-年轻代大空间大小

    Stack栈内存主要用于存储基本数据类型以及对象的Heap地址。
    Heap堆内存存储对象。

    基本数据类型和引用数据类型的区别主要在存储方式上:

    基本类型的数据:  声明变量时同时分配了空间

      在创建的时候直接在栈上分一块内存,将数值直接存储在栈上,

    引用类型数据:      只分配了引用空间没有分配数值空间

           引用类型要自己开辟数值空间,就是通过实例化操作,在堆中开辟一个数值空间,并为其中的属性设置初始值,然后根据定义进行赋值操作,调用构造方法赋值,最后将对象在堆内存中的地址赋值给栈中的变量名。

  • 相关阅读:
    EOJ二月月赛补题
    cf401d
    cf628d
    cf55d
    HDU 6148 Valley Number
    洛谷 P3413 SAC#1
    洛谷 P4127[AHOI2009]同类分布
    洛谷 P2602 [ZJOI2010]数字计数
    bzoj 3679
    函数和循环闭包的理解
  • 原文地址:https://www.cnblogs.com/obge/p/12556175.html
Copyright © 2011-2022 走看看