java基本数据类型和引用数据类型

上传人:san****019 文档编号:69664086 上传时间:2019-01-14 格式:PPT 页数:26 大小:334.31KB
返回 下载 相关 举报
java基本数据类型和引用数据类型_第1页
第1页 / 共26页
java基本数据类型和引用数据类型_第2页
第2页 / 共26页
java基本数据类型和引用数据类型_第3页
第3页 / 共26页
java基本数据类型和引用数据类型_第4页
第4页 / 共26页
java基本数据类型和引用数据类型_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《java基本数据类型和引用数据类型》由会员分享,可在线阅读,更多相关《java基本数据类型和引用数据类型(26页珍藏版)》请在金锄头文库上搜索。

1、Lesson4,主讲人:孙鑫,http:/www.sunxin.org,主要内容,Java的常用包 “=”和“equals”的用法 基本数据类型与引用类型 String和StringBuffer 对象的克隆(clone) 数组的相关操作 封装类 Runtime类与Process类 Class类 设计模式,http:/www.sunxin.org,Java的常用包,java.applet:包含一些用于创建Java小应用程序的类。 java.awt:包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。 java.io:包含一些用作输入输出(I/O)处理的类。 java.lang:包含一些J

2、ava语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。 :包含用于建立网络连接的类,与java.io同时使用完成与网络有关的读写。 java.util:包含一些实用工具类和数据结构类。,http:/www.sunxin.org,“=”和“equals”的用法,在Java中,boolean、byte、short、int、long、char、float、double这八种是基本数据类型,其余的都是引用类型。 “=”是比较两个变量的值是否相等,“equals”是比较两个对象变量所代表的对象的内容是否相等。,

3、http:/www.sunxin.org,对象的内存分配图,栈内存,堆内存,str1,str2,a,b,c,a,b,c,0088:4400,0088:4400,0088:4660,0088:4660,str1标识的对象,str2标识的对象,当我们声明一个引用类型变量时,系统只为该变量分配了引用空间,并未创建 一个具体的对象;当用new为对象分配空间后,将对象的引用赋值给引用变量。,http:/www.sunxin.org,String str=“abc”; int i=3; float f=4.5f; char ch=a; boolean b=true; System.out.println(

4、str + i + f + ch + b); 针对String的“+”和“+=”,是Java中唯一被重载的操作符;在Java中,不允许程序员重载操作符。,String和StringBuffer,http:/www.sunxin.org,String和StringBuffer,String类对象一个常量对象。 String str=“abc”; str=“def”; 在处理大量字符串的程序中,我们通常用StringBuffer来替代String。,http:/www.sunxin.org,数组的内存分配图,基本数据类型一维数组内存分配,栈内存,堆内存,num,c,0,0,0,0088:4400,

5、0088:4400,new int3产生的对象,http:/www.sunxin.org,数组的内存分配图,基本数据类型一维数组内存分配,栈内存,堆内存,num,c,0,0,0,null,0088:4400,new int3产生的对象,num=null;,http:/www.sunxin.org,对象数组的内存分配,栈内存,堆内存,students,null,Student students;,对象数组的内存分配,堆内存,students,c,0088:4400,0088:4400,new students3产生的对象,null,null,Student students; students=

6、new Student3;,null,栈内存,对象数组的内存分配,堆内存,students,c,0088:4400,0088:4400,new students3产生的对象,null,null,Student students; students=new Student3; students0=new Student(“lisi”,18);,student0 标识的 Student对象,lisi,18,0088:4660,0088:4660,栈内存,函数的调用,在Java中,传参时,都是以传值的方式进行。 对于基本数据类型,传递的是数据的拷贝;对于引用类型,传递的引用的拷贝。,http:/ww

7、w.sunxin.org,函数的调用,x,main,change,栈内存,y,4(3),3(4),4,3,class StringTest public static void change(int x,int y) x=x+y; y=x-y; x=x-y; public static void main(String args) int x=3; int y=4; change(x,y); System.out.println(“x=“+x); System.out.println(“y=“+y); ,x,y,http:/www.sunxin.org,函数的调用,pt,main,change

8、,栈内存,堆内存,Point类的对象,pt,0088:4660,0088:4660,0088:4660,class StringTest public static void change(Point pt) pt.x=pt.x+pt.y; pt.y=pt.x-pt.y; pt.x=pt.x-pt.y; public static void main(String args) Point pt=new Point(); pt.x=3; pt.y=4; change(pt); System.out.println(“x=“+pt.x); System.out.println(“y=“+pt.y)

9、; class Pointint x, y;,http:/www.sunxin.org,对象的克隆(clone),为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。 在派生类中覆盖基类的clone()方法,并声明为public。 在派生类的clone()方法中,调用super.clone()。 在派生类中实现Cloneable接口。,http:/www.sunxin.org,对象的克隆(clone),为什么我们在派生类中覆盖Object的clone()方法时,一定要调用super.clone()呢?在运行时刻,Object中的clone()识别出你要复制的是哪一个对象,然

10、后为此对象分配空间,并进行对象的复制,将原始对象的内容一一复制到新对象的存储空间中。,http:/www.sunxin.org,数组的相关操作,在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。 数组的复制:System.arraycopy()。 数组的排序:Arrays.sort()。 在已排序的数组中查找某个元素:Arrays.binarySearch()。,http:/www.sunxin.org,封装类,针对八种基本数据类型定义的相应的引用类型封装类。,http:/www.sunxin.org,Class类,在Java中,每个class都有一个相应的Cl

11、ass对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。 获取Class实例的三种方式: (1)利用对象调用getClass()方法获取该对象的Class实例; (2)使用Class类的静态方法forName(),用类的名字获取一个Class实例; (3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例。,http:/www.sunxin.org,Class类,在运行期间,如果我们要产生某个类的对象,Java虚拟机(JVM)会检查该类

12、型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象。 newInstance() 调用类中缺省的构造方法。,http:/www.sunxin.org,Runtime类和Process类,每一个Java程序都有一个Runtime类的单一实例。 通过Runtime.getRuntime()获取Runtime类的实例。 Runtime类是使用单例模式的一个例子。,http:/www.sunxin.org,设计模式,在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方案,这

13、就是软件模式。 每一个模式描述了一个在我们程序设计中经常发生的问题,以及该问题的解决方案。 当我们碰到模式所描述的问题,就可以直接用相应的解决方法去解决这个问题,这就是设计模式。,http:/www.sunxin.org,设计模式,单例(Singleton)模式 (1)一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。 (2)单例类的一个最重要的特点是类的构造方法是私有的,从而避免了外部利用构造方法直接创建多个实例。,http:/www.sunxin.org,单例类的实现,class Singleton private static final Singleton st=new Singleton(); private Singleton() public static Singleton getInstance() return st; ,http:/www.sunxin.org,设计模式参考书籍, Java与模式 作者:阎宏 电子工业出版社出版,http:/www.sunxin.org,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号