,旺旺只为方便这么叫)。 系统类就是 SUN 定义好完成
特定的功能,我们可以直接拿来使用的类。 SUN 还把它们按照功能的不同放在不同的包里,如: ? java.lang: java 的核心类库,包含了运行 java 程序必不可少的系统类,如基本数据
类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包 ? ? ? java.lang.reflect:提供用于反射对象的工具 java.io: java 语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出等 java.util:常用的工具类,如集合框架类,日期处理类等。
页面 5 / 18 WWW.EASYITEDU.COM 旺旺老师,版权所有
主题:旺旺老师软件工程师实训教程--JAVASE
第六章:包与 JAVA 常用类
? ? ?
java.sql: JDBC 相关类。 java.net:JAVA 网络包,其中包含能够使程序通过网络进行通信的 java.awt;javax.swing:使用 java 开发 C/S 结构应用程序使用的类。 上面的包在本教程中我们要学习其中的大部分。本章主要学习 lang 包,因为 lang 包中
类使用的比较频繁,这样每次导入就显得很繁琐,所以 SUN 规定:lang 包中的类可以不用 导入而直接使用。相反,如果您以后在项目代码中看到那个类没有导入而没报编译错误,那 它要么与当前类在一个包里,要么一定在 lang 包中。
6.2 包 装 类 6.2.1 什 么 是 包 装 类
前面讲解 java 的数据类型分为两种:值类型和引用类型(参见《第四章,类与对象相 关知识》)。其中值类型只有 8 个,那与此 8 个值类型对应的有 8 个类,我们把它们称为包 装类。如下图所表示:
基本数据类型 byte boolean short char int long float double
包装类 Byte Boolean Short Character Integer Long Float Double
大家看到,值类型首字母小写,除去 char 与 int 对应的不同,其他包装类都是首字母大写。 注意:char 对应的是 Character, 而不是 String 这个好多初学的同学容易疏忽。 包装类全部声明在 java.lang 包中,上面说过, lang 包中的类不需要导入而直接使用。
页面 6 / 18
WWW.EASYITEDU.COM
旺旺老师,版权所有
主题:旺旺老师软件工程师实训教程--JAVASE
第六章:包与 JAVA 常用类
假如有两变量: int a = 10; Integer b = new Integer(10);他们的内存表示如下图 所示:
大家看到,基本数据类型变量只在栈中分配一块内存,而包装类在栈和堆中各占一块。
JAVA 语言是面向对象的语言,但它不是所有的设计思想都符合面向对象的,这里大家 要知道 java 不符合面向对象的两个地方:一个是 JAVA 保留了 8 个基本数据类型,他们不是 对象,更没有属性和方法;另一个就是 JAVA 中存在着 main 方法。 包装类可以完成基本数据类型所有的功能,如数数据存储,并且他们是类,拥有属性和 方法,也就是有自己的新功能,那有些
同学就会想,既然有更强大的包装类,SUN 为什么还 要保留那八个不是对象的基本数据类型呢?这设计到效率与需求的问题。 上课经常给学生讲这个例子,比如你家有爷爷奶奶父母你五口人,现在需要每人配备一 部手机。市面上的手机有两种:便宜的只能通话的手机,昂贵的功能齐全的智能手机。一般 的话我们会根据需求来购买,爷爷奶奶没什么要求买个普通的就行,您要上网要拍照要视频 要显摆那就买个智能手机吧;其实如果您家太有钱的话给每人一部智能手机也没问题。 JAVA 中也是一样,上面我们知道,包装类分配两块内存空间,存放具体数值的数据在 堆中,而堆内存的分配比较占用系统资源,而且使用完毕后需要垃圾回收车回收,而我们平 时在程序中要大量使用如数字这些变量,他们只做简单的存储,完全没必要使用包装类,那 这样不如保留基本数据类型,它在完成功能的同时又不会占用过多的资源, SUN 也是基于 这样的考虑保留了 JAVA 中的基本数据类型。
6.2.2 自 动 拆 箱 与 装 箱
我们把数据由基本数据类型转换为对应包装类叫做装箱,把数据由包装类转化为基本数 据类型叫拆箱。在 JDK1.5 前在 java 中实现装箱与拆箱的代码如下:
页面 7 / 18
WWW.EASYITEDU.COM
旺旺老师,版权所有
主题:旺旺老师软件工程师实训教程--JAVASE
第六章:包与 JAVA 常用类
package com.wangwang; public class Test { public static void main(String[] args) { int a = 10; Integer b; int c; //装箱,基本数据类型-->包装类 b = Integer.valueOf(a); //拆箱,包装类-->基本数据类型 c = b.intValue(); } }
上面的代码比较繁琐,在 JDK1.5 中提出的一个新功能就是自动装箱和拆箱,代码如下 所示:
package com.wangwang; public class Test { public static void main(String[] args) { int a = 10; //自动装箱,基本数据类型-->包装类 Integer b = a;
上一篇:
01_Java基础_java代码
下一篇:
浮生若萍