面对对象——基本数据类型包装类
一、包装类
在java中有一个设计的原则“一切皆对象”,java中的基本数据类型就完全不符合这种设想,因为八种基本数据类型并不是引用数据类型,所以Java中为了解决这样的问题,JDK1.5以后引入了八种基本数据类型的包装类。
八种包装类分为两个类型:
Number:Integer,Short,Long,Doouble,Float,Byte都是Number的子类表示是一个数字
Object:Characer、Boolean都是Objectt的直接子类
基本数据类型 | 包装类 |
---|---|
int | Integer |
char | Character |
float | Float |
duoble | Duoble |
boolean | Boolean |
byte | Byte |
short | Short |
longt | Long |
二、装箱及拆箱操作
将一个基本数据类型转换为包装类,那么这样的操作称为装箱操作,将一个包装类转换为一个基本数据类型,是拆箱操作。
/*
* 基本数据类型包装类
*/
public class Package {
public static void main(String[] args) {
//把基本数据类型转换为包装类,称为自动装箱
Integer i1=new Integer(20);
//把包装类转换为基本数据类型,称为自动拆箱
int i2=i1.intValue();
Integer i3=10;//建议方法
Integer i4=new Integer("123");
System.out.println(i2);
System.out.println(i4);
}
}
三、转型操作
在包装类中,可以将一个字符串变为指定的基本数据类型,一般在输入数据时会使用的较多。在Integer类中将String变为int数据,
public staticint parselent(String)
x floatL类中String变为float数据类型,
public static float parsFloat(String s)
//把数值字符串转换为int类型
String num1="12";
int i5=Integer.parseInt(num1);
int i6=Integer.valueOf(num1);
System.out.println(i6);
System.out.println(i5);
四、享元模式
它使用共享对象,用来尽可能减少内存使用量以及分享资讯给尽可能的相似对象,它适合用于大量对象只是重复因而导致无法令人接受的使用大量内存,通常对象中的部分状态是可以分享。常用做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
运用共享技术有效的支持大量细粒度的对象
//面试题
Integer x1=new Integer(10);
Integer x2=new Integer(10);
System.out.println(x1==x2);//false
System.out.println(x1.equals(x2));//true
Integer x3=new Integer(128);
Integer x4=new Integer(128);
System.out.println(x3==x4);//false
System.out.println(x3.equals(x4));//true
Integer x5=10;
Integer x6=10;
System.out.println(x5==x6);//true
System.out.println(x5.equals(x6));//false
Integer x7=128;
Integer x8=128;
System.out.println(x7==x8);//false
System.out.println(x7.equals(x8));//false
五、包是什么?
包用于对多个java源文件的管理,就像我们的文件目录一样,定义一个包。
package com.vince
该语句只能出现在代码中的第一句
访问修饰符