java面向对象16 包装类的使用

SolidWorks草图绘制实战:如何用图片参考快速搞定智能小车底板设计 本文详细介绍了在SolidWorks中利用图片参考进行草图绘制的实战方法,以智能小车底板设计为例,帮助设计师快速将概念转化为精准三维模型。通过插入、对齐参考图片并高效描图,结合参数化约束与尺寸驱动,大幅提升设计效率和准确性,尤其适合新手入门与老手优化工作流。 阅读详情

/*

  • 包装类(Wrapper Class)
  • 1,针对八种基本数据类型定义相应的引用类型—包装类(封装类),有了类的特点,就可以调用类中的方法,Java才是真正的面向对象
  • byte–Byte,short–Short,int–Integer,long–Long,float–Float,double–Double,这些类的直接父类都是Number。
  • boolean–Boolean,char–Character.
  • 2,基本数据类型,包装类与String类之间的转换

*/

package object_chapter2;

import org.junit.jupiter.api.Test;
import java.util.*;

public class Object_WrapperCLass {

	@Test
	public void wrapperTest() {
		//基本数据类型转换到包装类,使用包装类构造器或自动装箱
		byte by = 1;
		short s = 2;
		char ch = 'b';
		int i = 3;
		long l = 12;
		Integer in = new Integer((int)1.23);//构造器形参可以传入byte,short,char类型数据,会进行自动类型提升。float,double无法直接传入,需要使用强制类型转换
		Integer a = new Integer(10);//使用Integer类的构造器
		Integer a1 = new Integer('A');//char型数据自动转换成对应ASCII码的数值进行赋值
		Integer a2 = new Integer("6");//构造器中使用字符串参数,字符串转换成数值进行赋值
	//  Integer a2 = new Integer("6abcd");	//会报错,String类型参数必须是数字。
		Integer a3 = 33;  //JDK1.5之后的自动装箱方式
		System.out.println(a.toString() + " " + a1.toString() + " " + a2.toString() + " " + a3.toString() );
		Boolean b = new Boolean(true);
		b = new Boolean("TRue");//查看方法源码,规定字符串忽略大小写。
		Boolean b1 = new Boolean("false");
		b1 = new Boolean("true1234");//查看源码,字符串只要不等于true都会返回false
		Boolean b2 = false;
		System.out.println(b.toString() + " " + b1.toString() + " " + b2.toString());
		Character c = new Character('A');
	//	Character c1 = new Character("A");//Character类没有String参数的构造器。
		Character c2 = 'a';
		System.out.println(c.toString() + " " + c2.toString());
		
			
	}
	
	@Test
	public void wrapperTest1() {
		//包装类转换为基本数据类型,使用包装类的xxxValue()方法,或自动拆箱。
		Integer in = new Integer("128");
		int i = in.intValue();
		System.out.println(i);
		int j = in.byteValue();//Integer类的对象可以使用byteValue方法强转到byte型,
		System.out.println(j);		
		int k = in;//自动拆箱
		System.out.println(k);
		
		//自动装箱与拆箱
		System.out.println(in + 2);
		Boolean b = true;//b自动装箱
		System.out.println(!b);//b自动拆箱
		
	}
	@Test
	public void wrapperTest2() {
	//基本数据类型,包装类和String类型之间的转换
		//基本数据类型转换为String
		Integer in = 10;
		int i = in;
		System.out.println(i + "");//使用数值 + ""的方式做自动类型提升
		String s = String.valueOf(i);//使用String类中重载的valueOf()方法
		System.out.println(s);
		s = String.valueOf(true);
		System.out.println(s);
		//包装类转换为String
		String s1 = in.toString();
		System.out.println(s1);//使用包装类对象的toString()方法
		String s2 = Integer.toString(22);
		System.out.println(s2);//使用包装类的toString(形参)方法
		//String转换为包装类
		Boolean b = new Boolean("False");//t通过包装类构造器传入String类型参数转换
		System.out.println(b);
		//String转换为基本数据类型
		float f = new Float("2.34F");//通过相应包装类的构造器转换
		float f2 = Float.parseFloat("3.1415f");//通过相应包装类的静态方法parseFloat();转换
	    System.out.println(f + "  " + f2);
	    boolean b1 = new Boolean("true1");//不规范的true会转换为false,字符串中的true可以忽略大小写
	    boolean b2 = Boolean.parseBoolean("true123");//不规范的true会转换为false,字符串中的true可以忽略大小写
	    System.out.println(b1 + "" + b2);
	}
	
	@Test
	public void wrapperTest3() {
		//练习1
		Object o1 = true ? new Integer(1) : new Double(2.0);//输出1.0,因为三元运算符也是运算符,int型与double型数据运算返回double型数据
		System.out.println(o1);
		Object o2;
		if (true)
		o2 = new Integer(1);
		else
		o2 = new Double(2.0);
		System.out.println(o2);//输出1
		//练习2
		Integer i = new Integer(1);
		Integer j = new Integer(1);
		System.out.println(i == j);//false,地址值不同
		Integer m = 1;
		Integer n = 1;
		System.out.println(m == n);//true,
		Integer x = 128;
		Integer y = 128;
		System.out.println(x == y);//false,
		
		/*Integer中内部类规定导致结果不同
		 * -128至127范围内的数值储存在一个Integer类型的数组中,
		 * 如果使用自动装箱的方式,给Integer赋值在范围内可直接使用数组元素
		 * ,不用再创建新的内存结构,调用的时候指向同一地址以提高效率
		 * new方式创建的对象和超出此范围的数值会新建内存结构,地址值不同
	    private static class IntegerCache {
        static final int low = -128;
        static final int high;
        static final Integer cache[];

        static {
            // high value may be configured by property
            int h = 127;
            String integerCacheHighPropValue =
                sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
            if (integerCacheHighPropValue != null) {
                try {
                    int i = parseInt(integerCacheHighPropValue);
                    i = Math.max(i, 127);
                    // Maximum array size is Integer.MAX_VALUE
                    h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
                } catch( NumberFormatException nfe) {
                    // If the property cannot be parsed into an int, ignore it.
                }
            }
            high = h;

            cache = new Integer[(high - low) + 1];
            int j = low;
            for(int k = 0; k < cache.length; k++)
                cache[k] = new Integer(j++);

            // range [-128, 127] must be interned (JLS7 5.1.7)
            assert IntegerCache.high >= 127;
        }
		 */
		
	}
	@Test
	public void VectorTest() {
		Scanner scan = new Scanner(System.in);
		Vector v = new Vector();
		//创建Vector数组
		for (; ; ) {
			System.out.println("请输入学生成绩,输入负数时结束");
//			int i = scan.nextInt();
//			Integer in = new Integer(i);//构造器创建Integer类的对象in
			Integer in = scan.nextInt();//使用自动装箱方式
			if(in < 0) { //运算时自动拆箱
				break;
			}
			if(in > 100) {
				System.out.println("数据非法,请重新输入");
				continue;
			}
			v.addElement(in); //形参为Object类,Integer类为子类,使用多态方式传入参数。			
		}
		//输出成绩列表
		System.out.println("一共输入了" + v.size() + "个成绩");		
		for (int i = 0; i < v.size(); i++) {
			//System.out.print(v.get(i) + " ");//效果相同
			System.out.print(v.elementAt(i) + " ");
		}
		System.out.println();
		//找到最高分
		int maxObj = 0;
		for (int i = 0; i < v.size(); i++) {
			if(maxObj <= (Integer)v.elementAt(i)) {//v.elementAt(i)是Object类,需要向下转型成Integer类后自动拆箱参与运算。
				maxObj = (Integer)v.elementAt(i);
			}
		}
		System.out.println("最高分是" + maxObj);
		//成绩转化为等级
		
		for (int i = 0; i < v.size(); i++) {
			Object obj = v.elementAt(i); //读取Object类对象
			Integer in = (Integer)obj;	//转换到Integer类	
			int j = (int)obj;//自动拆箱
			j = in.intValue();//使用方法转换
			j = in;//自动拆箱
			if(maxObj - (Integer)v.elementAt(i) <= 10) {
				System.out.println("成绩为 " + v.elementAt(i) + " 等级为A");
			}else if(maxObj - (Integer)v.elementAt(i) <= 20) {
				System.out.println("成绩为 " + v.elementAt(i) + " 等级为B");
			}else if(maxObj - (Integer)v.elementAt(i) <= 30) {
				System.out.println("成绩为 " + v.elementAt(i) + " 等级为C");
			}else {
				System.out.println("成绩为 " + v.elementAt(i) + " 等级为D");
			}
		
		}
		
	}
	
}
曙光服务器RAID配置避坑指南:MegaRAID SAS 9361-8i实战(含Foreign状态处理) 本文详细解析了曙光服务器搭配MegaRAID SAS 9361-8i控制器的RAID配置全流程,包括RAID0和RAID5的创建、Foreign状态处理及性能优化策略。特别针对磁盘迁移中的Foreign状态问题,提供了系统化的解决方案和高级恢复技巧,助力企业级IT运维提升存储配置的稳定性和可靠性。 阅读详情

相关推荐

计算机组成原理实验:手把手教你用模拟程序实现中断机制(附完整代码)

本文通过一个计算机组成原理模拟实验,手把手教你从零实现一个可工作的中断系统。实验详细演示了如何配置中断控制器、编写主程序与中断服务程序,并观察中断响应、现场保护和恢复的全过程,深入解析了中断原理的核心机制。

470

Java 16中的新功能,你知道了吗?

最新标准Java升级的亮点包括原始类,密封类,记录,矢量API以及ARM64和Alpine Linux上Windows的端口。

weixin_40478901的博客 2562

RM3100应用笔记驱动程序SPI接口

PNI磁传感器套件RM3100磁传感器套件由2个Sen-XY-f(pn13104)地磁传感器,1个Sen-Z-f(pn13101)地磁传感器和MagI2C(pn13156)控制芯片组成,能够实现三维空间的磁场大小测量。

AIoT技术栈的博客 4923

jdk16全面学习说明

jdk16全面学习说明1 代码示例1.1 jdk16下载1.2 intellij学习工程2 学习路线3 总结   开这个系列我也是思考了许久.从2014年3月jdk8出来之后,到现在已经过去了7年,继jdk11这个lts之后,jdk17的lts在今年9月份就要到来.目前广泛使用的jdk8就会逐步进入淘汰的节奏.   在这个节骨眼上,本人还是觉得有必要把jdk16彻底搞明白,作为迎接使用jdk17的前奏,是非常必要的.本人作为一线开发人员,也会从开发的角度全面解析jdk16.   这里全面学习的路线就是严格

qq_33570700的博客 1850

Flink CDC 实战:5分钟搞定PostgreSQL数据实时同步(附避坑指南)

本文详细介绍了如何使用Flink CDC实现PostgreSQL数据的实时同步,包括环境配置、逻辑复制槽创建、Flink环境搭建及实战验证。通过5分钟快速指南,帮助开发者高效搭建实时数据管道,并提供了常见问题排查和生产环境优化建议。

red88的博客 818

Cobalt Strike4.0安装包(内附中文版)

1.什么是 Cobalt Strike Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁 者的后渗透行动。 Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、W...

梦之序章的博客 2万+

java runoob_Java 方法 | 菜鸟教程

Java 方法在前面几个章节中我们经常使用到System.out.println(),那么它是什么呢?println()是一个方法(Method),而System是系统类(Class),out是标准输出对象(Object)。这句话的用法是调用系统类System中的标准输出对象out中的方法println()。那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步...

weixin_36310662的博客 1517

Python爬虫:实时交通流量数据爬取与路况分析

随着城市化进程的不断推进,交通流量的管理与预测已成为智能交通系统的重要研究方向。交通流量数据不仅为城市交通管理提供了科学依据,还为驾驶员提供了实时路况信息,帮助其做出更加合理的出行决策。通过爬虫技术,我们可以实时获取城市的交通流量数据,从而分析路况,优化交通管理。在这篇博客中,我们将介绍如何使用Python编写一个爬虫来爬取实时交通流量数据,分析道路的交通状况。我们将使用最新的技术工具来构建爬虫,包括。

2201_76125261的博客 1267

JDK16安装教程,尝鲜开始咯

JDK16 安装教程一、下载安装包二、安装程序三、配置环境变量四、测试程序 一、下载安装包 JDK16 安装包链接:Java SE Development Kit 16 如果嫌弃网络太慢,可以关注微信公众号 [ GoTobe ] ,回复 JDK16 ,即可获得百度网盘下载链接。 二、安装程序 安装包下载完成后,点击选择【以管理员身份运行】 点击【下一步】 自定义安装路径:点击【更改】,选择安装路径,再点击【下一步】或者 默认安装路径:点击【下一步】 等待安装,然后点击关闭 三、配置环境变量

爱追剧晓三鲜的博客 2万+

C# 与 PaddleOCR:一行代码实现高效图片文字识别的实战指南

本文介绍了如何使用 PaddleOCRSharp 进行图像文字识别,涵盖了从环境准备到高级功能的完整流程。首先,通过 NuGet 安装 PaddleOCRSharp 并下载预训练模型。接着,展示了单张图片识别的最小化示例和详细实现,包括模型配置、图片预处理和结果输出。进阶功能部分介绍了多语言和竖排文本识别的实现方法。此外,文章还提供了 WinForms 图形界面开发的完整示例,展示了如何通过界面加载图片、执行识别并展示结果。最后,探讨了批量处理优化策略,如并行处理多张图片以提高性能。通过这些步骤,开发者可以

墨夶的博客 1004

《唤醒你的AI同事:WorkBuddy从零上手》000:介绍及目录

《唤醒你的AI同事:WorkBuddy从零上手》全书导览与总目录:000–043 共 44 篇,覆盖从环境搭建、对话基础到资料库、行业助手与多模态生成的入门实战。含完整篇目速查与编号直达,建议关注收藏。

LuckyHanMo的博客 584

java java面向对象-引出基本类型包装类

20180321  java java面向对象-引出基本类型包装类引出基本类型包装类:思考以下两个问题:1)在面向对象中,我们所理解是事物都可以看成是对象(即 “一切皆对象”的思想),而在语句    int age = 17;在该语句中,没有体现出对象(没有引用类型,即没有体现对象思想)。所以基本数据类型不是对象,这与“一切皆对象”的思想矛盾。2)现在给你一个复杂的10进制数据,需要快速的转成2进...

weixin_39089680的博客 153

华为OD机试真题 新系统2026-04-01 Python&JS 实现【空间占用计算】

员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。

MISAYAONE的博客 1298

Java包装类介绍及使用场景详解

本文详细阐述了Java包装类介绍及使用场景,并给出了一些示例代码

驴大毛的博客 1006

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JAVA包装类

用于表示整数数值,不包含小数部分。byte用于表示带小数的数值,分为单精度和双精度。float用于表示单个 Unicode 字符,占 16 位。char。

m0_61261153的博客 1117

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java八种包装类、常量池

Java八种基本数据类型及对应包装类、常量池;Integer i1=new Integer(5) 与 Integer i2=5 的区别;Integer.valueOf(int i)方法

qq_44700578的博客 1971

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

包装类到底是干什么的

在java中有八种基本数据类型对应每种基本类型又有八种包装类型: 基本类型:boolean, char, int, byte,short,long, float,double 包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double JAVA是一个面向对象的语言,而基本的数据类型是值类型,在很多情况下是没法直接用值类型的。比如集合里面的类型是Object不能接受值类型。在这种情况下,我们处理基本类型需要将其作为对象来进行处理,这种时候需要将其转

m0_50210478的博客 1469

Java 16 包装类、集合

基本数据类型对应的引用数据类型1.各个类型对应的包装类2.获取Integer对象的方式 (其他类似)a.用构造方法获取Integer的对象 JDK5以前b.用静态方法获取Integer的对象3.自动装箱和自动拆箱 JDK5 以后自动装箱:把基本数据类型自动的变成对应的包装类自动拆箱:把包装类自动的变成其对象的基本数据类型故获取包装类的对象 不需要new 不需要调用方法 直接赋值即可4.Integer成员方法静态且返回类型是String。

2301_79982602的博客 978

JAVA八大基本类型的包装类

Java有八大基本类型及包装类,分别是: byte 包装类是 Byte short包装类是 Short int 包装类是 Integer long 包装类是 Long float 包装类是 Float double 包装类是 Double char 包装类是 Character boolean包装类是 Boolean 然而这几种包装类都是...

weixin_44574132的博客 4597

包装类[java]

包装类概述、常用方法、自动装箱和自动拆箱

m0_58450531的博客 683

Java—包装类

包装的意思相信很多人都知道,即把东西打捆成包或装入箱等容器的动作或过程。而在Java中则有一个词叫包装类,包装类:把基本类型封装成对应的类这个过程就是包装,而这个类就叫做包装类。本文仅仅介绍了包装类的使用,特别指出有两个包装类的特殊性,在使用的时候需要注意与其他包装类的差别。

Jun_ID的博客 951

Java包装类

Java包装类 Java语言是一个面向对象的语言,但Java中的基本数据类型却是不面向对象的. 这在实际使用时存在很多的不便. 为了解决这个不足(例如:集合类中只能存放对象, 不能存放基本类型数据), 在设计类时为每个基本数据类型设计了一个对应的类进行代表, 这样八个和基本数据类型对应的类统称为包装类(Wrapper Class), 也翻译为外覆类或数据类型类. 包装类对应表 基本数据类型...

weixin_45956742的博客 205

Java包装类终极指南:从基础到高级应用

Java包装类(Wrapper Class)是将基本数据类型封装成对象的类。Java为每个基本数据类型都提供了一个对应的包装类,使得基本数据类型具备对象的特性。通俗理解:就像把简单的东西装进精美的包装盒里,包装类就是把基本数据类型"包装"成对象,让它们能像对象一样被使用。// 定义一个整数缓存类,用于缓存一定范围内的整数对象// 缓存范围的下限,即最小缓存的整数为 -128// 缓存范围的上限,即最大缓存的整数为 127// 用于存储缓存整数对象的数组,数组大小根据缓存范围计算得出。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1233

Java入门:18.包装类,BigInteger , BigDecimal

java是一种面向对象的编程语言对象都是由类产生的。8种基本类型对java面向对象的特性有所破坏jdk就提供了8种基本类型所对应的类的表示,称为:包装类理论上来讲:类属性使用包装类定义,方法中的局部变量使用基本类型定义包装类的内部最终依然是由对应的基本类型来存储数据,无非为其提供了一些方法,使得我们对应基本类型数据的操作变得更加容易了,比如:关于基本类型为null的处理有些容器(自己封装,jdk提供的集合)只支持存储引用类型更方便的实现类型转化你。

a2018204587的博客 1167

深入浅出Java包装类

1.包装类 1.1 基本数据类型对应的包装类都有哪些 基本数据类型 包装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 1.2自动装箱 AutoBoxing,自动拆箱 AutoUnboxing 1.2.1 什么是装箱、拆箱 ​ 我们以 Integer 为例。 ​ 首先,什么是装箱、拆箱。又何来自动一说?让

qq_44707077的博客 986

Java学习里程-----Java基础_16包装类

一、什么叫包装类 包装类,顾名思义,就是给类包装了一层东西生成的新的类。那么它是包装了什么类呢? 我们之前有说过,数据类型,Java中有默认的八大数据类型,这些数据类型呢无法作为对象来操作,而我们学习的是面向对象编程,没有对象我们怎么来操作这些数据呢,这时候,包装类出现了。 二、有那些包装类 可以说啊,每一种基本数据类型都有相对应的一个包装类,下面我们给出来: 三、包装类和基本数据类...

胖子胖子大胖子的博客 1238
上一篇: java面向对象15 Object类 和 JUnit单元测试
下一篇: java面向对象17static关键字与单例模式
wisdomcodeinside
博客等级 码龄7年 29粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值