当前位置: 首页 > news >正文

Java程序设计入门教程--原始类与包装类

包装类

       Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便。

       为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为封装类或数据类型类。

       包装类均位于java.lang包。


包装类和基本数据类型的对应关系如表所示

基本数据类型

包装类

构造方法

boolean

Boolean

Booleanboolean b)或Boolean(String s)

byte

Byte

Byte(byte b) Byte(String s)

char

Character

Character(char c)

short

Short

Short(short s ) Short(String s)

int

Integer

Integer(int i) 或者Integer(String s)

long

Long

Long(long l)或者Long(String s)

float

Float

Float(double d)或者Float(float f)或者Float(String s)

double

Double

Double(double d)或者Double(String s)

        另外还有两个包装类BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数, BigDecimal支持任意精度带小数点的运算。


包装类的功能

        包装类属于引用数据类型,具有属性和方法,使用这些方法可以实现很多基本数据类型没有的功能,包装类主要提高以下功能:(1)将基本数据类型包装后,可以当做对象使用;(2)为基本数据类型提供各种转换功能,如将数值转换为字符串,将字符串转换为数值。

        有些数据结构如ArrayList,HashMap等不能存放原值类型,这时只能使用其包装类。

基本数据类型和其包装类间的转换(以Integer类为例)

(1)基本类型转换为包装类型: Integer I=new Integer(primitive value);

(2)包装类型转换为基本类型: int a=I.intValue()

基本类型与包装类型主要异同:
1. Java中,一切皆对象,但八大基本类型却不是对象。

2. 声明方式的不同,基本类型无需通过new关键字来创建,而封装类型需new关键字。

3. 存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。

4. 初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0boolean类型为false

5. 使用方式的不同,比如与集合类合作使用时只能使用包装类型。

 

http://www.lryc.cn/news/90653.html

相关文章:

  • pip安装python库速度慢、失败及超时报错解决办法
  • 向量数据库
  • leetcode 11.盛最多水的容器
  • 都说00后已经躺平了,但是有一说一,该卷的还是卷啊。
  • 牛客网刷题学习SQL(二)
  • 深蓝学院 C++笔记 先导篇章 - 绪论
  • R7-19 天梯赛团队总分
  • 使用 Kotlin 的 Opt-in (选择加入)功能注解API提示当前非稳定API
  • webpack配置排除打包
  • HNU-操作系统OS-ucoreLab系列-感悟
  • MySQL运维篇(三)
  • Lecture 2 Text Preprocessing
  • web练习第二周
  • LC-1439. 有序矩阵中的第 k 个最小数组和(二分答案、多路归并)
  • 一文1000字从0到1实现Jenkins+Allure+Pytest的持续集成
  • 给一个有序数组生成平衡搜索二叉树(java)
  • 【JavaSE】Java基础语法(二十二):包装类
  • javascript基础十八:说说你对JavaScript中事件循环的理解​
  • 详解js中的浅拷贝与深拷贝
  • Day9 敏捷测试——敏捷开发的特征、什么是敏捷测试?、极限编程、极限测试
  • k8s 维护node与驱逐pod
  • SouapUI接口测试之创建性能测试
  • springboot整合kafka入门
  • Rust 笔记:Rust 语言中的字符串
  • 华为OD机试真题 Java 实现【将真分数分解为埃及分数】【牛客练习题】
  • Zemax Lumerical | 二维光栅出瞳扩展系统优化
  • Linux-0.11 文件系统read_write.c详解
  • 什么是用户态和内核态?用户态切换内核态会有什么影响?
  • 探索iOS之CoreImage框架
  • qml 使用Shape 画图形