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

面向对象高级(9)包装

1、八种基本数据类型对应的包装类

Java针对八种基本数据类型定义了相应的引用类型:包装类(封装类)。有了类的特点,就可以调用类中的方法,Java才能被称作真正的面向对象。

byte--->Byte

short--->Short

int--->Integer

float--->Float

double--->Double

long--->Long

char--->Character

boolean--->Boolean

2、包装类与基本数据类型之间的转化

(1)装箱

把基本数据类型转换为包装类对象(目的是使用专门为对象设计的API和特性

基本数值---->包装对象

(2)拆箱

把包装类对象拆为基本数据类型(一般是因为需要运算,Java中的大多数运算符是为基本数据类型设计的)

包装对象---->基本数值

目前的JDK版本已经能实现自动装箱与拆箱,但仍需注意,装箱与拆箱操作对应的数据类型应当匹配,如

@Test
public void test3(){
    String s1 = "123a";
    int i1 = Integer.parseInt(s1);
//编译报错,123a与int类型不匹配。
}

3、基本数据类型,包装类与字符串之间的转换

(1)基本数据类型转换为字符串

使用valueOf方法:

int m = 3;
String m1 = String.valueOf(m);

valueOf方法用于将其他类型的数据转化为对应的字符串。

或采用第二种方法:运用“+”连接符

int m = 3;
String m2 = m+ "";

(2)字符串转为基本数据类型

方式1:除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类

例如:

@Test
public void test2(){
String intnum = "123";
int i = Integer.parseInt(intnum);
    System.out.println(i+10);
}

另外,char类型的转化可参考下列代码:

@Test
public void test4(){
    char c1 = 'A';
    Character C2 = Character.toLowerCase(c1);
    char c3 = C2.charValue();  //类型转化
    System.out.println(c3);
}

方式2:字符串转为包装类,然后可以自动拆箱为基本数据类型

String s = "99";
Integer s1 = Integer.valueOf(s);
int s2=  s1;

注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。

4、包装类的其他API

(1)数据类型的最大最小值

Integer.MAX_VALUE和Integer.MIN_VALUE
    
Long.MAX_VALUE和Long.MIN_VALUE
    
Double.MAX_VALUE和Double.MIN_VALUE

2字符转大小写

Character.toUpperCase('x');

Character.toLowerCase('X');

3整数转进制

Integer.toBinaryString(int i) 
    
Integer.toHexString(int i)
    
Integer.toOctalString(int i)

4比较的方法

Double.compare(double d1, double d2)
    
Integer.compare(int x, int y) 

5、包装类对象的特点

包装类

缓存对象

Byte

-128~127

Short

-128~127

Integer

-128~127

Long

-128~127

Float

没有

Double

没有

Character

0~127

Boolean

true和false

Integer m = 9;
Integer n = 9;
System.out.println(m==n);
//true
int c = 128;
int d = 128;
System.out.println(c==d);

//false,超出-128~127的范围,底层新建对象,地址值不同。


http://www.kler.cn/a/409860.html

相关文章:

  • Scala—Collections集合概述
  • linux系统运维面试题(二)(Linux System Operations Interview Questions II)
  • PGSQL物化视图(Materialized View)
  • AI赋能电商:构建高效、智能化的新零售生态
  • Debian/Ubuntu 、Fedora 、Arch Linux, 在Linux上,对文本文件进行多线程压缩 xz、pxz、zstd、7z、lrzip
  • Centos-stream 9,10 add repo
  • 什么是Portage-学习笔记
  • 学习threejs,使用设置normalMap法向量贴图创建更加细致的凹凸和褶皱
  • Python Selenium介绍(一)
  • 深入解析Java面向对象编程:Object类、泛型、序列化与网络编程
  • 如何通过cPanel创建品牌电子邮件
  • H5流媒体播放器EasyPlayer.js网页直播/点播播放器如果H.265视频在播放器上播放不流畅,可以考虑的解决方案
  • JavaWeb——Ajax、Element、打包部署
  • 鱼眼相机模型-MEI
  • 24/11/25 视觉笔记 深度传感器和手势识别
  • Spring Boot英语知识网站:性能优化
  • 【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入
  • MySQL基础知识大总结
  • Vue2 常见知识点(一)
  • RGB图片 、RGBA、 灰度图、二值图
  • 拳皇98笔记
  • 【人工智能】Python常用库-Pandas常用方法教程
  • Mybatis PLUS查询对List使用OR模糊查询
  • 读《Effective Java》笔记 - 条目7
  • C#基础控制台程序
  • stable Diffusion官方模型下载