包装类

一.包装类:
1. 包装类(Wrapper Class):

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。基本类型的数据不具备"对象"的特性(没有成员变量和成员方法可以调用),因此,java为每种数据类型分别设计了对应的类,即包装类。

基本数据类型对应的包装类
byteByte
shortShort
intInteger
longLong
charCharacter
floarFloat
doubleDouble
booleanBoolean

2.包装类的特点:

在这里插入图片描述

(1)所有包装类都是final类型,因此不能创建他们的子类。
(2)包装类是不可变类,一个包装类的对象自创建后,他所包含的基本类型数据就不能被改变。

二.Integer类

1.装箱和拆箱

装箱:将基本数据类型变为包装类对象。
拆箱:将包装类中包装的基本数据类型取出。

int到IntegerInteger到int
使用Integer类的构造方法调用Integer类的intValue()方法
使用Integer类内部的valueOf( )方法自动拆箱
自动装箱

2.int到nteger类:

三种方法:
(1)使用Integer类的构造方法
(2)使用Integer类内部的valueOf( )方法
(3)自动装箱

(1)方法1:使用Integer类的构造方法

  • public Integer(int value):将int类型转换为Integer类。
  • public Integer(String s):将String类型转换为Integer类。
    注意:使用此构造方法时,字符串内的字符必须由数字组成,不可以是字母或者其他形式,否则抛出NumberFormatException。
public static void main(String[] args){//方式1:public Integer(int value)int i= 100;//将int类型的i转换为Integer类型的iiInteger ii = new Integer(i);System.out.println("ii:"+ii);//方式2:public Integer(String s)String s = "100";//String s = "abc";出错,因为这个字符串必须由数字字符组成。	Integer iii = new Integer(s);System.out.println("iii:"+iii);//100	}

(2)方法2:使用Integer类内部的valueOf方法

  • public static Integer valueOf(int i):将int类型转换为Integer类。
Integer i3 = Integer.valueOf(30);

(3)方法3:自动装箱的方法:
事实上,编译器自动执行了valueOf方法。

 Integer ii = 100;//编译器自动执行了Integer ii = Integer.valueOf(100)	
包装类装箱拆箱
BytevalueOf()byteValue()
ShortvalueOf()shortValue()
IntegervalueOf()intValue()
LongvalueOf()longValue()
FloatvalueOf()floatValue()
DoublevalueOf()doubleValue()
CharactervalueOf()charValue()
BooleanvalueOf()booleanValue()

valueOf源码分析:

public static Integer valueOf(int i) {assert IntegerCache.high>= 127;if (i >= IntegerCache.low&& i <= IntegerCache.high)return IntegerCache.cache[i+ (-IntegerCache.low)];return new Integer(i); 
}

通过查看原码可知,java针对-128-127之间的数据做了一个数据缓冲池。
如果数据是该范围内的,每次并不创建新的空间。
如果数据是该范围内的,就new一个空间

相关面试题:

public static void main(String[] args){Integer i1 = new Integer(127);Integer i2 = new Integer(127);System.out.println(i1 == i2);//falseSystem.out.println(i1.equals(i2));//true重写了equals方法,比较的内容Integer i3 = new Integer(128);Integer i4 = new Integer(128);System.out.println(i3 == i4);//falseSystem.out.println(i3.equals(i4));//trueInteger i5 = 128;Integer i6 = 128;System.out.println(i5 == i6);//falseSystem.out.println(i5.equals(i6));//trueInteger i7 = 127;Integer i8 = 127;System.out.println(i7 == i8);//trueSystem.out.println(i7.equals(i8));//true

3.Integer类到 int:

(1)调用包装类的intValue()方法
(2)通过自动拆箱:

  • 方法1:调用包装类的intValue()方法
    public int intValue():以 int 类型返回该 Integer 的值。
public void test2() {Integer i1 = new Integer(14);Float f1 = new Float(12.3F);//1.调用包装类的XxxValue()方法int i2 = i1.intValue();//i2 = 14float f2 = f1.floatValue();//f2 = 12.3}
  • 方法2:通过自动拆箱:
    编译器自动执行了valueOf方法
        //5是基本数据类型,通过自动装箱变成对象类型。//编译器执行了Integer iii = Integer.valueOf(5)Integer iii=5;//自动拆箱,实际上执行了 int iii2 = iii.intValue()int iii2=iii;System.out.println(iii2);

4.int类型数据和String形式之间的相互转换:

intl到StringString到int
字符串的拼接String–>Integer–>int
String类的valueOf()方法int parseInt(String s)
int --> Integer -->String (所用方法:valueOf()+toString())
toString(int i)
public static void main(String[] args){//int--String把int类型的数据转化为字符串的形式int number = 100;//方式1:字符串的拼接String s1 = "" + number;System.out.println("s1:"+s1);//方式2:String类的valueOf可以把任意类型的数据转换成String类型String s2 = String.valueOf(number);System.out.println("s2:"+s2);//方式3//int -- Integer -- StringInteger i = new Integer(number);String s3 = i.toString();System.out.println("s3:"+s3);//方式4//public static String toString(int i)返回一个表示该 Integer 值的 String 对象。String s4 = Integer.toString(number);System.out.println("s4:"+s4);//String--intString s ="100";//方式1//String--Integer--int//String--IntegerInteger ii = new Integer(s);//Integer--int//public int intValue()以 int类型返回该 Integer的值int x = ii.intValue();System.out.println("x:"+x);//方式2//public static int parseInt(String s)int y = ii.parseInt(s);System.out.println("y:"+y);}

5.进制的转换:

进制间转换方法说明
十进制到二进制toBinaryString(int i)将一个十进制整数转换成字符串形式的二进制数
十进制到八进制toOctalString(int i)将一个十进制整数转换成字符串形式的八进制数
十进制到十六进制toHexString(int i)将一个十进制整数转换成字符串形式的十六进制数
十进制到其他进制toString(int i,int radix)将一个十进制数转换字符串形式的radix进制数,radix为进制值
其他进制到十进制int parseInt(String s, int radix)将一个radix进制的数转换为十进制
public static void main(String[] args){//十进制到二进制,八进制,十六进制System.out.println(Integer.toBinaryString(100));System.out.println(Integer.toOctalString(100));System.out.println(Integer.toHexString(100));System.out.println("--------");//十进制到其他进制System.out.println(Integer.toString(100,10));System.out.println(Integer.toString(100,2));System.out.println(Integer.toString(100,8));System.out.println(Integer.toString(100,15));System.out.println(Integer.toString(100,5));System.out.println(Integer.toString(100,7));System.out.println(Integer.toString(100,-7));System.out.println(Integer.toString(100,70));System.out.println(Integer.toString(100,34));System.out.println(Integer.toString(100,37));System.out.println(Integer.toString(100,36));//其他进制转换为十进制System.out.println(Integer.parseInt("100",10));System.out.println(Integer.parseInt("100",2));System.out.println(Integer.parseInt("100",4));System.out.println(Integer.parseInt("100",16));System.out.println(Integer.parseInt("100",23));//System.out.println(Integer.parseInt("123",2));出错,因为2进制没有3}

三.Character类
1.Character类概述:

Character类在对象中包装了一个char的值,用于对单个字符进行操作。
该类提供了几种方法来操纵字符,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写等。

2.Character类的构造方法:

  • public Character(char value):将char类型转换为Character类。
Character ch1 = new Character('a');
System.out.println("ch1:"+ch1);  //ch1:97

注意:char和Character类之间的转换方法与int和Integer类之间的转换方法相同,不再赘述。
3.Character类的方法:

序号方法说明
1isDigit()是否是一个数字字符
2isWhiteSpace()是否是一个空格
3isUpperCase()是否是大写字母
4isLowerCase()是否是小写字母
5toUpperCase()指定字母的大写形式
6toLowerCase()指定字母的小写形式
7toString()返回字符的字符串形式
public static void main(String[] args){//public static boolean isUpperCase(int codePoint)判断给定的字符是否为大写字符System.out.println(Character.isUpperCase('A'));System.out.println(Character.isUpperCase('a'));System.out.println(Character.isUpperCase('0'));//public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符System.out.println(Character.isUpperCase('A'));System.out.println(Character.isUpperCase('a'));System.out.println(Character.isUpperCase('0'));// public static boolean isDigit(int codePoint):判断给定的字符是否是数字System.out.println(Character.isUpperCase('A'));System.out.println(Character.isUpperCase('a'));System.out.println(Character.isUpperCase('0'));//public static char toUpperCase(char ch):把给定的字符转换为大写字符System.out.println(Character.toUpperCase('a'));//public static char toLowerCase(char ch):把给定的字符转换为小写字符System.out.println(Character.toLowerCase('A'));}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39312.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

包装类概述

Java中有8中基本数据类型&#xff0c;分别是&#xff1a; 包装类就是这8种数据类型所对应的引用数据类型&#xff0c;分别是&#xff1a; - 可能有同学会问&#xff1a;Java为什么要给基本数据类型提供对应的引用数据呢? - 第一&#xff0c;Java是面向对象的语言&#xff0c…

uni-app使用小图标的方式

1.首先我们需要去这里 随便点入一个进入第二步骤 2.把你需要的小图标加入到购物车 3.点击购物车把小图标【添加至项目】 4.最后下载到本地【解压放到项目中去】 5.如下&#xff1a; 6.在main.js里面引入 import ./style/iconfont.css 7.最后就是在页面中直接通过样式类名使…

教你如何用PS制作iOS端APP应用图标AppIcon.appiconset

开发iOS端APP要准备18个不同尺寸的logo&#xff0c;虽然现在有网站提供在线生成APP应用图标&#xff0c;但是这样可能存在泄露高清logo甚至被抢占的风险&#xff0c;下面我将教大家如何用Photoshop制作iOS端AppIcon.appiconset。 其实很简单&#xff0c;我们只要按照Xcode提示做…

【新拟态】左上角标签样式、ICON图标样式、模仿AppStore的应用图标

效果如图↑ <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0"…

老胡的周刊(第088期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 nginx-ui[2] Nginx 后台管理 UI&#xff1a;…

【总结】1739- 使用 Pake 一键将网页打包成桌面 App

通常&#xff0c;我们说的软件指的是一个可以独立运行的程序&#xff0c;那么我们前端工程师开发的网页也属于软件吗&#xff1f;从计算机的角度来说&#xff0c;网页也是一个软件&#xff0c;但它很少让人归为软件一类。作为一个前端 web 开发者&#xff0c;我一直被桌面 App …

资讯周报@2 (2023-03-19)

title: 资讯周报-2 date: 2023-03-19 author: “KazooTTT” tags: 周报资料收集chatgpt设计figmavercel 时间范围&#xff1a;2023-03-12-2023-03-19 来源&#xff1a;github、twitter、微博、b站 一、浏览器插件&油猴脚本 沉浸式双语网页翻译扩展 #翻译 #浏览器插件 …

chatgpt赋能python:利用Python抢鞋的技巧与方法

利用Python抢鞋的技巧与方法 随着互联网的迅速发展&#xff0c;近年来&#xff0c;越来越多的人选择网上购物&#xff0c;其中包括了运动鞋的选购。而在运动鞋市场上&#xff0c;限量版鞋款成为了热门&#xff0c;但是由于数量有限&#xff0c;往往在发售后的几秒钟就被抢购一…

【OpenAI】利用 OpenAI 的 ChatGPT 和 GPT-4 训练与Ogimi 创始人谈冥想

OpenAI在12月1日发布的NLP&#xff08;自然语言识别&#xff09;新模型ChatGPT&#xff0c;刚刚与广大网友度过了一个愉快而又有意义的周末。 该模型是OpenAI在2020年推出的NLP预训练模型——GPT-3的衍生产品。在此之前&#xff0c;一直有预测OpenAI将在今年底或明年初推出GPT-…

AI_News周刊:第五期

2023.03.06-2023.03.11 News 1.OpenAI 发布了ChatGPT 和 Whisper API OpenAI 以比预期低得多的价格发布了 ChatGPT 和 Whisper API&#xff0c;部分原因是为了响应开源 LLM 和竞争对手模型的进步。ChatGPT 可通过 GPT-Turbo 以每 1k 代币 0.002 美元的价格获得&#xff0c;比…

ChatGLM-6B论文代码笔记

ChatGLM-6B 文章目录 ChatGLM-6B前言一、原理1.1 优势1.2 实验1.3 特点&#xff1a;1.4 相关知识点 二、实验2.1 环境基础2.2 构建环境2.3 安装依赖2.4 运行2.5 数据2.6 构建前端页面 3 总结 前言 Github&#xff1a;https://github.com/THUDM/ChatGLM-6B 参考链接&#xff1a…

迷人的人工智能:为什么它是程序员的第四大“浪漫”?

人工智能是指让计算机具有类似人类的智能和思维的技术&#xff0c;它是当今科技领域最前沿和最具潜力的研究方向之一。 马斯克是一位著名的企业家&#xff0c;他对人工智能也非常感兴趣&#xff0c;并投资了多个与之相关的公司&#xff08;最著名的当属时下最火热的ChatGPT背后…

浅析人工智能,大数据

人工智能发展到了什么阶段? 人工智能的发展从开始到现在,经历了三个阶段,第一个阶段我们叫做计算智能,这个阶段要解决的事情,叫做能存会算。第二个阶段是感知智能,这个阶段是能听会说,能看会认。第三个阶段往下发展应该叫认知智能,要达到什么样的程度呢?要能够理解、会…

CTP 7*24小时期货自动交易程序

如何配置程序&#xff1a; 策略如何行&#xff1a; 运行程序&#xff1a; 更详细的说明&#xff1a; 常见问题及说明&#xff1a; 配置程序后无法登陆&#xff1f; 昨天程序还可以正常登陆&#xff0c;今天怎么不行了&#xff1f; 怎样及时发现交易过程中出现问题&am…

如何在智能合约中调用另一个合约的函数

智能合约是在区块链中被执行的一段程序&#xff0c;因为它们在区块链上执行&#xff0c;所以不依赖于任何的中心化服务器。目前最主流的智能合约编程语言是 Solidity。 在以太坊区块链中&#xff0c;智能合约可以和其他已经部署的智能合约进行交互。除了以太坊&#xff0c;其他…

chatgpt是否会代替程序员

ChatGPT能否取代程序员&#xff1f; ChatGPT是一种非常普遍的人工智能&#xff08;AI&#xff09;系统&#xff0c;被广泛应用于自然语言处理领域。但是&#xff0c;这个问题是一个非常复杂的问题&#xff0c;需要经过认真的思考和辩论。ChatGPT能否取代程序员&#xff1f;这个…

GPT1、GPT2、GPT3、InstructGPT

GPT全称是 Generative Pre-Trained Transformer。顾名思义&#xff0c;GPT的目的就是通过Transformer为基础模型&#xff0c;使用预训练技术得到的通用的文本模型。目前已经公布论文的有文本预训练GPT-1、GPT-2、GPT-3&#xff0c;以及InstructGPT。ChatGPT和InstructGPT在模型…

python编程游戏代码tkinter,python编程游戏代码大全

python有趣的编程代码 class Point: row0 col0 def __init__(self, row, col): row col def copy(self): return Point(, )#初始框架import pygameimport random#初始化()W800H600ROW30COL40size(W,H)windowpygame.display.set_mode(size)pygame.display.set_cap…

python小游戏——推箱子代码开源

♥️作者&#xff1a;小刘在这里 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;愿所有的美好&#…