Java的8种包装类:Wrapper Class
Java有8种基本数据类型,为什么又要出现对应的8种包装类:
1、Java的8种基本数据类型不支持面向对象编程机制
2、8种基本数据类型不具备“对象”的特性:没有成员变量、方法可供调用
3、例如:某个方法需要Object类型的参数,但实际需要的却是2、3这种值,只靠基本的数据类型无法转换成Object参数传递过去
4、为解决8种基本数据类型不能当成Object类型使用的问题,Java提供了包装类的概念:
8种基本数据类型与对应的包装类:
byte ------------------------> Byte
short -------------------------> Short
int -------------------------> Integer
long -------------------------> Long
char -------------------------> Character
float -------------------------> Float
double -------------------------> Double
boolean -------------------------> Boolean
5、基本类型与包装类之间的转换(JDK1.5之前):
5.1、通过包装类对应的构造器实现
5.2、通过传入一些字符串参数,来构建包装类对象,如:
Integer a = new Integer("5.5");
5.3、如果想获得包装类对象中包装的基本类型变量,可以用包装类提供的.xxxValue()方法
代码示例:
public class WrapperClass{
	public static void main(String[] args){
		//-构造器方法定义Integer包装类a,并赋值
		Integer a=new Integer("5");
		System.out.println(a);
		//-构造器方法定义Double包装类b,并赋值
		Double b=new Double("5.5");
		System.out.println(b);
		//-通过包装类.xxxValue()方法,从包装类对象中获取基本类变量
		int c=a.intValue();
		System.out.println(c);
		double d=b.doubleValue();
		System.out.println(d);
	}
}
运行结果:

6、基本类型与包装类之间的转换(JDK1.5之后):
6.1、自动装箱(Autoboxing):把一个基本类型的变量,直接赋值给对应的包装类变量,或者赋值给Object变量(Object是所有类的父类,子类对象可以直接赋给父类变量----Java的向上自动转型特性)如:
Integer i=3;或Object j=4;
6.2、自动拆箱(AutoUnboxing):把一个包装类变量,直接赋值给一个基本类型的变量,如:
int a=i;
注意:int b=j;编译会报错,原因是:Java有向上自动转型特性,但不能自动向下转型,想要转要加强制转换,如:
int b = (Integer)j;
代码示例:
public class AutoBoxingUnboxing{
	public static void main(String[] args){
		//-自动装箱
		Integer a=3;
		//-自动拆箱
		int b=a;
		//-直接赋值给Object类型的变量,利用了Java的向上自动转型特性
		Object o=true;
		if(o instanceof Boolean){
			//-Object类型不能直接赋值给Boolean类型,Java不能自动向下转型,如下代码会报错
			//Boolean d=o;
			//-想向下转型可以用强制转换方法,如下代码
			Boolean c=(Boolean)o;
			System.out.println(c);
		}
	}
}
Java的8种包装类:Wrapper Class的更多相关文章
- Java的八种基本数据类型及其包装类
		Java有八种基本数据类型,所谓基本类型就是说存储时仅存在栈中,那么与之相对就是引用类型,引用类型既存在栈里又存在堆里,栈内存放堆内地址. 八种基本类型分别为byte short int long f ... 
- Java基础——基本类型和包装类、基本类型和字符串之间的转换
		基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ... 
- java的五种数据类型解析
		不知道大家对java的简单数据类型是否了解,下面针对Java的五种类型简单数据类型表示数字和字符,进行详细的讲解和分析. 一.简单数据类型初始化 在Java语言中,简单数据类型作为类的成员变量声明时自 ... 
- java 8增强的包装类
		---恢复内容开始--- 1java为8个类型提供了对应的包装类.因为这8个类型并不是类或者对象,他们原本是不应该存在在java里的(这里说的只是原本),这里要强调的是,java允许把基本类型的值直接 ... 
- JAVA:23种设计模式详解(转)2
		我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中对象的适配器模式是各种模式的起源,我 ... 
- java中两种类型变量
		Java中有两种类型的变量,一种是对象类型,另一种是基础类型(primitive type). 对象类型普遍采用引用的方式,比如 List a = new ArrayList(); List b = ... 
- Java实现23种设计模式
		一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接 ... 
- Java中几种常用数据类型之间转换的方法
		Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ... 
- java 中几种常用数据结构
		Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.几个常用类的区别 1.A ... 
随机推荐
- virtualenv之python虚拟环境
			virtualEnv可以方便的解决不同项目中,对类库的依赖问题.首先将常用的类库安装在系统环境中,然后为每个项目安装独立的类库环境.这样子可以保证每个项目都运行在独立的类库环境中. virtualen ... 
- C++官方文档-常量成员函数
			#include <iostream> using namespace std; class MyClass { public: int x; static int n; const in ... 
- WindowBrush
			m_Element.Fill = SystemColors.WindowBrush; BorderBrush="{x:Static SystemColors.WindowBrush}&quo ... 
- openlayers3教材详解及demo(完整)
			openlayers3教材详解及demo(完整) OpenLayers 3对OpenLayers网络地图库进行了根本的重新设计.版本2虽然被广泛使用,但从JavaScri ... 
- java 调用apache.commons.codec的包简单实现MD5加密
			转自:https://blog.csdn.net/mmd1234520/article/details/70210002/ import java.security.MessageDigest; im ... 
- Eclipse安装STS(Spring Tool Suite (STS) for Eclipse)插件
			转自:https://blog.csdn.net/zhen_6137/article/details/79383941 
- Linux tomcat启动慢, Creation of SecureRandom instance for session ID generation using [SHA1PRNG]took [xx] mil
			启动慢的解决链接: http://blog.csdn.net/u011627980/article/details/54024974 
- as3 判断移动方向
			var oldX:Number; stage.addEventListener(MouseEvent.MOUSE_DOWN,downF); stage.addEventListener(MouseEv ... 
- UI5-文档-4.5-Controllers
			在这个步骤中,我们将文本替换为一个按钮,并在按钮被按下时显示“Hello World”消息.按钮的按下事件的处理是在视图的控制器中实现的. Preview A Say Hello button is ... 
- tensorflow Process finished with exit code 137 (interrupted by signal 9: SIGKILL) 错误
			Process finished with exit code 137 (interrupted by signal 9: SIGKILL) 在使用tensorflow自带的数据集做手写数字识别的时候 ... 
