1、Java 讲稿约法三章:第一个月所有人不要带教材,空手来;第一个月不得使用工具,只能用记事本(txt )编写程序;第一排座位空着,所有人手机放在第一排。1:邂逅 java1.1Ock:在 1991 年的时候,sun 公司(斯坦福大学校园网(Stanford University Network)的首字母缩写)参与竞标一个 green 的项目。这个项目类似于今天的嵌入式开发,只是最早打算采用 c+来进行开发。 C+的开发比较复杂,所以 sun 公司的工程师在 c+的基础上开发了一个新的平台,这个平台就称之为 ock。Ock 这个词原意指的是橡树。一般程序员在编写程序的时候,会间歇性的犯傻,思考的
2、时候目光呆滞的望到窗外。所以程序员在给这个开发平台命名的时候,窗外的一棵橡树映入眼帘,并成功的影响了某个屌丝的思维,既然没有一个令人满意的名称,那就叫橡树吧ock。1.2Java:在后来的竞标中,那帮屌丝没有成功,当一个项目没有竞标成功的时候,基本就悲催了,一般的下场是无家可归,要么殉葬,要么改嫁。这帮屌丝选择另寻出路,由于当时浏览器技术非常流行,所以他们基于 ock 又开发了一套浏览器hotjava。当然,现在 hotjava已经淹没在历史的长河中了,只有些许无聊的人还记得她年轻时的容颜,譬如我们。产生的这个新语言(即我们要邂逅的 java)突然发现不能被注册,以为已经被注册过了,所以需要马
3、上给他起个新名字。屌丝看到身边的咖啡,是产自爪哇的咖啡,就命名为 java。1.3 Java 的三个分支:java se;java ee;java me。Java SE 是 Java 平台标准版的简称(Java Platform, Standard Edition) (also known as Java 2 Platform) ,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的 Java 应用程序。Java EE(Java Platform,Enterprise Edition)是 sun 公司推出的企业级应用程序版本。这个版本以前称为 J2EE。能够为我们帮助开发和部署可移植、健壮、可
4、伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务 体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。Java ME(Java Platform,Micro Edition)是一种高度优化的 Java 运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。JAVA ME技术在 1999 年的 JavaOne Developer Conference 大会上正式推出,它将 Jav
5、a 语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。1.4 java 的特点:1、简洁有效,java 相对于其他语言来说是十分简单的。2、可移植性,java 程序可以移植到其他平台运行。3、面向对象,java 就是围绕着对象来编写程序的。4、解释型,5、适合分布式计算,6、健壮性,7、多线程处理能力,8、动态语言,9、安全性,中间生产字节码文件。 。 。1.5 java 应用程序运行机制:计算机高级编程语言:编译型、解释型。Hello.java编译hello.class解释helloJava 在这个过程中执行两种语言:javac.exe(编译语言) java.ex
6、e(解释语言)java 程序的组成:java 源文件、字节码文件、机器码指令。1.6 java 虚拟机(java virtual machine)在一台计算机上由软件或硬件模拟的计算机,其作用是读取并处理经编译过的与平台无关的字节码文件(class) 。Java 编译器针对虚拟机产生字节码文件(class ) ,这个文件与承载的平台没有关系,搁在哪都能用,只要有虚拟机的支持,这就是 java 独立于平台的原因。Java 解释器负责将 java 虚拟机的代码在特定的平台上运行。| jvm for windows(windows 平台)Hello.java编译hello.class| jvm fo
7、r dos(dos 平台)| jvm for unix(unix 平台)| (其他平台)Java 程序中最大的看点就是她的可移植性,一个程序,可以同时在多个平台上执行,而不用改变程序本身,因为执行的 class 只编译一次就够了,在哪运行就看 jvm 在哪个平台上就行了。当然了,要改变 class 文件还得需要改变 java 文件并重新编译一次。2 java 运行环境的搭建安装 jdk配置 java 开发环境掌握 path 和 classpath 的作用了解 java 编程经常使用的工具运行一个简单的程序2.1 jdkJDK 是整个 Java 的核心,包括了 Java 运行环境、Java 工具
8、和 Java 基础类库。JDK 包含的基本组件包括:javac 编译器,将源 程序转成字节码jar 打包工具,将相关的类文件打包成一个文件javadoc 文档生成器,从源码注释中提取文档jdb debugger,查错工具java 运行编译后的 java 程序(.class 后缀的)appletviewer:小程序浏览器,一种执行 HTML 文件上的 Java 小程序的 Java 浏览器。Javah:产生可以调用 Java 过程的 C 过程,或建立能被 Java 程序调用的 C 过程的头文件。Javap: Java 反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。Jconso
9、le: Java 进行系统调试和监控的工具常用的包:java.lang: 这个是系统的基础类,比如 String 等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包java.io:这里面是所有输入输出有关的类,比如文件操作等java.nio:为了完善 io 包中的功能,提高 io 包中性能而写的一个新包 ,例如 NIO 非堵塞应用:这里面是与网络有关的类,比如 URL,URLConnection 等。java.util:这个是系统辅助类,特别是集合类 Collection,List,Map 等。java.sql:这个是数据库操作的类,Connection, Statem
10、ent,ResultSet 等javax.servlet:这个是 JSP,Servlet 等使用到的类jdk 的下载可以从 上去下载 jdk 的最新版本。如:jre-6u24-windows-i586安装这个文件,在过程中若修改安装路径时,注意 jre 的路径也改成相同的路径,保证 jdk与 jre 在同一父目录下。例如:D:Javajdk1.6.0_21;D:Javajre6在 D:Javajdk1.6.0_21bin 目录下即可找到 javac.exe(编译语言)java.exe(解释语言)JRE(Java Runtime Environment,Java 运行环境) ,运行 JAVA
11、程序所必须的环境的集合,包含 JVM 标准实现及 Java 核心类库。2.2 设置环境变量目前 javac.exe(编译语言)java.exe(解释语言)还不能直接运行,这是因为现在并未指定 path 路径,计算机并不知道这两个语言在哪里。如何告诉计算机要执行的命令存放的位置,更改环境变量来实现。运行 cmd,输入 javac 测试一下。Path:设置 java 运行的命令路径Classpath:设置字节码文件存放路径设置步骤:右键我的电脑属性高级 环境变量。查看是否有 path 和 classpath 两个环境变量,修改的方法是将 bin 路径放在 path 中,与前面原有路径用英文引号;隔
12、开。例如:D:Javajdk1.6.0_21binClasspath 放置的是生产的字节码文件,即 class 文件,值为.; D:Java。其中.表示当前路径,后面设置的路径表示 class 文件存放的路径,可自行设定。这次重新运行 cmd,输入javac 命令,是不是可以正确执行了。2.3 第一个 java 程序一般我们学习一个程序,第一个遇到的例子,肯定就是 helloworld。这次我们也是输出一个字符串,内容为“hello world!” 。为了便于大家预习或复习,所有的实例我会采用以下的方式书写,希望同学们都能动手做一遍。实例 1:helloworld.java目标:实现后台打印输
13、出字符串“hello world!”文件名:helloworld.java文件路径:E:java1学习内容:类代码内容:public class Hellopublic static void main(String args)System.out.println(“Hello World!“);代码分析:这是第一次写 java 代码,所以罗嗦一点,把代码中每个要点都说明一下。Hello:这是此实例的类名称。类是定义的新的数据类型,是多个对象所共有的属性和方法的集合。类的书写规范就是:访问符修饰符 class属性方法Public:访问符,说明此类是公共类访问权限。权限共有 4 种,其他三个为:
14、protected(受保护的) ;private (私有的) ;缺省(就是什么也不写) 。Static:修饰符,说明此类的特性为静态类。修饰符有三个,其他为:abstract(抽象类) ;final(最终类) 。Class:这是定义类的关键字。Void:表示无返回值类型。System.out.print():是输出的方法。加上 ln 是换行输出,括号内为输出的内容,字符串需要加上双引号。尝试运行一下,看看是否成功?结果是提示一个错误:Hello 类没有定义。这是刚刚接触 java 常犯的第一个错误,文件名与主类名不一致。注意一下 Java 是对大小写敏感的,我们应该把文件名改成HelloWor
15、ld.java,并且在程序中将类名一致起来改成 HelloWorld.java。改过来之后再试一次,是不是还是失败,在输出语句的后面,是一个中文输入的“;” ,这是常犯的第二个错误,中英文混淆。把它改成英文的“;” ,然后再试一次,怎么样,恭喜你成功输出字符串了。多说两句,java 的命名有一些约定俗成的潜规则,例如,类的命名首字母大写,多个字母组成的,每个首字母都大写;常量的命名为大写字母,单词组成的每个字母都大写;变量的命名为小写字母,单词组成的每个字母都小写;方法的命名为首字母小写,多个单词组成的,首字母小写后面每个单词首字母大写;包的命名为公司或单位域名的倒写。课堂练习:随机一人,自行
16、编写以上代码,输出内容为自己姓名。一次不成功者,男生五个俯卧撑,女生五次抱头下蹲,换一人改错,一次不成功者类推。3 简单 java 程序掌握 public class 与 class 声明的区别掌握 java 中注释的使用方法掌握 java 中标示符的命名规则了解 java 中的关键字掌握变量与常量的声明3.1 从一个简单的 java 程序说起实例 2:Square.java目标:实现一个数字的平方并后台打印输出结果文件名:Square.java 文件路径:E:java2学习内容:类的声明,注释的用法代码内容:public class Squarepublic static void main
17、(String args)int num = 100 ; / 定义一个整型变量/ num = 200 ; / 修改变量的内容System.out.println(“num 的内容是:“ + num ) ;System.out.println(“num * num = “ + num * num ) ;System.out.println(1) ;System.out.println(1.1) ;/*这是多行注释方法,中间内容不会被执行你看可以编写多行没错,确实可以编写多行*/;class A /创建一个类 A;class B /创建一个类 B;代码中首先定义主类,类名切记与文件名一致。再确定主
18、方法,静态,无返回值类型。方法体中先定义一个整型变量 num,初值赋值为 100,再使用输出方法打印输出 num*num的值。输出方法内原样输出的用双引号括起来。若是输出的值类型为整型、长整型、单双精度型数据,不用再加双引号。比如输出 1 或者 1.1 试一试。思考一下,程序中输出改成 System.out.println(“1”) ; System.out.println(“1.1”) ;行不行,是怎么个情况?除了定义的主类外,可以添加自定义的类,使用 class 关键字来修饰。例如添加一个 A 类,一个 B 类。Public class 定义的类必须与文件名一致,文件中只允许有一个;cla
19、ss 定义的类可以与文件名不一致,文件中可以有多个。思考一下,主类 Square 在编译后会生成一个 Square.class 文件,那么自定义的 A 和 B 会不会生成字节码文件呢。试一试。我们了解了 java 的平台无关性,class 生成的类,是否可以直接拿来用,不牵扯文件主类呢?再试一试。一个正儿八经的程序员,会为代码加注大量的注释,一般一段代码其中有三分之二是注释,加注的方法分单行和多行两种方式,单行为双斜线“/” ,多行为“/*/” 。在项目中还有文档注释的方式,格式为“/*.*/ ”。所以注释的方式共计为三种,单行、多行、文档。注释的作用不仅仅是解释代码的含义,还可以在编辑的过程
20、中帮助我们调整检测代码,试一下把 num 的值改成 200,运行一次,再注释掉,然后再运行一次。3.2 java 中标示符的命名规则Java 中书写包、类、方法、参数、变量的名字,要符合 java 的标示符命名规则。规则是任意顺序的大小写字母、数字、下划线和$来组成。要求是开头不能为数字,也不能为 java保留字。其实,老实巴交的用英文单词来命名,不会拼的话就用拼音,又好记又不会出错。例如:Myname;my_name;myname1 ;my$name;这些就是错误的:class;123myname;my name;Java 保留字又称为关键字,不需要刻意去记住他们,在编辑软件中会自动用蓝色标
21、记出来的,用的多了,自然就记住了。需要注意的是有两个关键字并没有启用,一个是 goto,一个是 const,他们没有任何意义。有三个单词有特殊意义,也不要使用,分别是true、false、null 。3.3 变量和常量变量:内存中保留下来的一块区域以供程序使用,存储的内容是可变的。常量:使用 final 关键字来定义常量,常量被设定之后,不允许修改。Java 中的变量必须先声明再使用。声明变量时必须使用显式声明的方式。声明时可以使用“=”对变量进行初始化。可以同时声明多个同一数据类型的变量,中间使用“, ”隔开。4 Java 的数据类型掌握 java 数据类型的划分掌握 8 种基本数据类型掌握
22、数据类型的转换4.2 Java 的数据类型前面实例 2 中已经用到了一个类型整型(int) 。java 中还有很多其他的数据类型,如下表所示:整数类型(byte;short ;int;long)数值型浮点类型(float;double)字符型(char)基本数据类型布尔型(boolean)类(class )接口(interface)数据类型引用数据类型数组数据类型分成两大类基本数据类型和引用数据类型。基本数据类型就是具体的值;引用数据类型传递的事内存的地址,类似 c 中的指针;基本数据类型既然是具体的值,自然就有一个取值范围的问题,通过下面这个表来了解。No 类型 位 范围1 Byte 8 -
23、1281272 Short 16 -32768327673 Int 32 -214748364821474836474 Long 64 -922337203685477580892233720368547758075 Char 8 02556 Float 32 -3.4E383.4E387 Double 64 -1.7E3081.7E3088 Boolean 1 Truefalse设置数据的时候,注意要设在允许的范围之中。如果设置的数值超过了范围就会出现数值不正确的情况。实例 3:Psychopath.java目标:实现一个变态长度数字的输出结果并观察错误。文件名:Psychopath.jav
24、a 文件路径:E:java2学习内容:数据的取值范围代码内容:public class Psychopathpublic static void main(String args)int num = 11111111111111111111111111111111111111111111 ;上面这个 num 的值明显超过了 int 的取值范围,当一个数值已经在最大值或最小值时,再进行增加或减少的操作,就会出现数据溢出现象。通过下面一个小例子来观察数据溢出的现象。实例 4:Overflow.java目标:实现一个长度溢出数字的输出结果并观察错误。文件名:Overflow.java 文件路径:E:
25、java2学习内容:数据的取值范围代码内容:public class Overflowpublic static void main(String args)int max = Integer.MAX_VALUE ; / 求出整型的最大值System.out.println(“整型的最大值:“ + max) ;System.out.println(“整型的最大值 + 1:“ + (max + 1) ;System.out.println(“整型的最大值 + 2:“ + (max + 2) ;观察输出的结果:E:java2java Overflow整型的最大值:2147483647整型的最大值
26、+ 1:-2147483648整型的最大值 + 2:-2147483647最大值正常输出,加上 1 以后却变成了最小值,这是闹哪样?(此处随机抽人解答)最大值加上 2,输出是最小值再加 1,通过观察结果,熟悉取值的范围。课堂练习:随机一人,自行编写最小值减 1 的代码。一次不成功者,男生五个俯卧撑,女生五次抱头下蹲,换一人改错,一次不成功者类推。在程序编写过程中,如果出现需要扩大数值范围的情况,可以采用改变数据类型的方式来解决;将 Overflow.java 中 max 更改为(long)max,再观察输出结果,还会有溢出现象吗?字符数据类型:用来保存数字、字母、符合等数据,计算机在处理字符型
27、数据时,是把它当成不同的整数来看待的,可以说字符型是特殊的整型数据。通过下面的小例子来观察一下:实例 5:Chardemo.java目标:实现通过整型数字定义字符的输出结果。文件名:Chardemo.java 文件路径:E:java2学习内容:字符型数据代码内容:public class Chardemopublic static void main(String args)char ch1 = a ; / 字符是使用” “括起来的数据char ch2 = 97 ; / 通过数字定义字符变量System.out.println(“ch1 = “ + ch1) ;System.out.print
28、ln(“ch2 = “ + ch2) ;观察输出的结果:E:java2java Chardemoch1 = ach2 = a既然如此,那我们就来试试用数字来输出字符,如果能成功,那恭喜你可以做谍报人员了。课堂练习:随机一人,自行编写将数字(73、32、108、111、118、101、32、121、111、117、32、97、108、108、33)转成字符输出的代码。一次不成功者,男生五个俯卧撑,女生五次抱头下蹲,换一人改错,一次不成功者类推。有些转义字符需要了解:转义字符 描述 转义字符 描述f 换页 b 倒退一格r 归位 t Tab 反斜线 单引号” 双引号 n 换行课后练习:将表内转义字符
29、输出。单精度、双精度型数据:在用到小数时,需要使用单精度型数据或双精度型数据。通过下面的小例子来学习一下:实例 6:Floatdemo.java目标:实现两个单精度型数字相乘的输出结果。文件名:Floatdemo.java 文件路径:E:java2学习内容:单精度型数据代码内容:public class Floatdemopublic static void main(String args)float num = 3.0; / 定义一个单精度型变量System.out.println(“两个小数相乘:“ + num * num) ;观察结果,错误提示为:E:java2javac Floatd
30、emo.javaFloatdemo.java:3: 可能损失精度找到: double需要: floatfloat num = 3.0; / 定义一个单精度型变量1 错误问题出在数值都是有默认值的,像 123 这些整数默认为 int 型,而 1.1 这些小数默认为double 型的。所以要将代码修改一下,明确小数定义的类型。float num = 3.0; / 定义一个单精度型变量修改为float num = 3.0f; / 定义一个单精度型变量就没有问题了。开发中用个 float 基本就够了,一般用不着 double 那么大的数字。布尔型数据:只有两个值,true 和 false。对,你没有看
31、错,只有两个值。不像别的语言,比如 c,可以用 0 和 1 来表示真假,java 只能用 true 和 false。定义一个值为布尔型时,可以用下面的代码来实现。boolean flag=true;Java 的数值类型是强性的,使用时就定义好了,不能想咋样就咋样,不过 java 还是网开一面,允许我们进行有限的类型转换处理。方式有自动类型转换和强制类型转换两种。自动类型转换:符合以下两个条件,则进行自动类型转换转换前的数据类型与转换后的类型兼容;转换后的数据类型表示范围比转换前的大;例如:int x = 10 ; / 定义整型变量 float y = 22.22f ; / 定义浮点型变量Sys
32、tem.out.println(“x / y = “ + (x / y) ; /自动转换成浮点型,因为浮点型比整型范围大。System.out.println(“10 / 22.22 = “ + (10 / 22.22) ; /自动转换成 double,默认类型分别是 int 和 double。System.out.println(“10 /3 = “ + (10 /3) ; /默认类型都是 int,输出也是 int数值和字符串在一起,会自动改变为字符串,例如:String str = “java“ ; / 定义字符串变量int x = 100 ;str = str + x ; / 修改 st
33、r 的内容并将内容重新赋给 str 变量System.out.println(“str = “ + str) ;字符串类型是所有数据类型最终的归宿,思考一下,这个代码输出是什么?int i = 1 ; / 定义整型变量int j = 1 ; / 定义整型变量System.out.println(“1 + 1 = “ + 1 + 1) ;System.out.println(“1 + 1 = “ + (1 + 1)上面的实例中 10/3 的输出是 3,小数部分被忽略掉了,要是输出出来怎么整?这就需要强制类型转换。强制类型转换:(要转换成的数值类型)变量名称那上面的代码改成:System.out.
34、println(“10 /3 = “ + ((float)10 /3) ; /默认类型都是 int,输出强制转换成float5 Java 中的运算符掌握赋值运算符的使用掌握算术运算符的使用掌握条件运算符的使用掌握逻辑运算符的使用掌握位运算符的使用掌握递增、递减运算符的使用掌握括号运算符的使用掌握各个运算符的优先级Java 语句中表现形式有很多种,表达式是重要的组成部分。表达式是有操作数和运算符组成,操作数可以是常量、变量或者是方法;运算符就是各种运算的符合,如+、- 、* 、/ 、% 等等,例如下面的表达式,i 和 1 就是操作数,+=就是操作符。I+=1;Java 运算符根据操作数分为一元、
35、二元、三元运算符。5.1 赋值运算符运算符 数学含义 示例= 赋值 i=j+= 相加赋值 i+=j-= 相减赋值 i-=j/= 相除赋值 i/=j% 取模赋值 i%=j赋值运算符为一个“=” ,表示将一个值赋给变量。5.2 算术运算符运算符 数学含义 示例+ 加 i+j- 减/ 负号 i-j;-i* 乘 i*j/ 除 i/j% 取模 i%j+ 自增 i+- 自减 i-算术运算符的使用与数学运算一样,通过下面的小例子来熟悉一下。实例 7:Arithmetic.java目标:实现两个变量算术运算的输出结果。文件名:Arithmetic.java 文件路径:E:java3学习内容:算术运算符代码内容
36、:public class Arithmeticpublic static void main(String args)int i = 10 ;int j = 3;System.out.println(i + “ + “ + j + “ = “ + (i+j) ; / 加法操作System.out.println(i + “ - “ + j + “ = “ + (i-j) ; / 减法操作System.out.println(i + “ * “ + j + “ = “ + (i*j) ; / 乘法操作System.out.println(i + “ / “ + j + “ = “ + (i/j
37、) ; / 加法操作System.out.println(i + “ % “ + j + “ = “ + (i%j) ; / 取模操作System.out.println(“ i+ = “ + (i+) ; / 自增操作System.out.println(“ i- = “ + (i-) ; / 自减操作;运行结果为:E:java3java Arithmetic10 + 3 = 1310 - 3 = 710 * 3 = 3010 / 3 = 310 % 3 = 1i+ = 10i- = 115.3 比较运算符:运算符 数学含义 示例 大于 ij= 大于等于 i=j1 = “ + (3 1) ;
38、 / 使用大于号System.out.println(“3 = 1 = “ + (3 = 1) ; / 使用大于等于号System.out.println(“3 java Compare3 1 = true3 = 1 = true3 java Logici | j = truei | j = truei int flag=0;if(score0)flag=1;else if(score=20ijava Breakdemoi = 0i = 1i = 2i = 3i = 4Continue 语句,用来执行中断一次当前的循环语句,回到当前循环语句的开始继续执行。实例 15:Continuedemo.
39、java目标:实现 for 结构循环使用 continue 语句中断。文件名:Continuedemo.java 文件路径:E:java4学习内容:continue 中断代码内容:public class Continuedemopublic static void main(String args)for(int i=0;ijava Continuedemoi = 0i = 1i = 2i = 3i = 4i = 6i = 7i = 8i = 97 数组掌握数组的作用掌握数组的声明及内存分配掌握数组的操作了解多维数组的定义及操作7.1 数组是什么数组是一组相关变量的集合。一连串相同类型的变量
40、集合为一个整体,就是一个数组。数组安装使用方式不同可以分为一维数组、二维数组、多维数组。7.2 使用数组的优势如果我们定义一百个整型变量,需要写成 int i1;int i2; int i3int i100;使用数组的话,写一个就行了,int i100;7.3 一维数组一维数组里面可以存放不限数量的变量,这些变量必须类型严格一致。一维数组的定义是先声明数组,然后分配堆内存给该数组。声明的方式有两种:声明方式一:数组类型 数组名 =null;数组名=new 数据类型 长度;声明方式二:数组类型 数组名=null;声明的数据类型是数组内数据的类型,如整型,浮点型,字符型。数组名为这一组相同数据类型
41、的数据集合名称。数组的声明是在栈内存中保存数组的名称,要使用该数组必须在堆内存中开辟一块空间并分配给数组。开辟空间的关键字为 new。开始的时候我们说过,java 数据类型分两类,基本数据类型和引用数据类型(数组、类、接口) 。引用传递的是内存的使用权。int array =null; null栈内存Arrayarray=new int10; 堆内存0 (array0)0 (array1)0 (array2)0 (array3)0 (array9)实例 16:Arraydemo.java目标:定义一个数组,并输出数组内容。文件名:Arraydemo.java 文件路径:E:java5学习内容:
42、数组的定义代码内容:public class Arraydemopublic static void main(String args)int array = null ; / 声明数组array = new int10 ; / 为数组开辟空间,大小为 10System.out.println(“array0 = “ + array0) ; / 依次输出数组内容System.out.println(“array1 = “ + array1) ;System.out.println(“array2 = “ + array2) ;System.out.println(“array3 = “ + a
43、rray3) ;System.out.println(“array4 = “ + array4) ;System.out.println(“array5 = “ + array5) ;System.out.println(“array6 = “ + array6) ;System.out.println(“array7 = “ + array7) ;System.out.println(“array8 = “ + array8) ;System.out.println(“array9 = “ + array9) ;for(int i=0;ijava Arraydemoarray0 = 0arr
44、ay1 = 0array2 = 0array3 = 0array4 = 0array5 = 0array6 = 0array7 = 0array8 = 0array9 = 07.4 栈内存与堆内存的理解:栈内存张三小张小三胖三。 。 。堆内存在栈内存中,保存的是数组的名称,只有一个名称的数组是无法使用的,比如我们知道一个人叫张三,但是不知道这个人是谁,无法落实一个实体。堆内存中开辟一块空间保存一个人,这个人由数组名称指定,比如叫张三。可以由多个数组名指定一个实体,这个叫张三的人,也可以叫小张,小三,胖三等等。在声明数组的同时也可以接着分配空间:int array = new int10 ;这句
45、话的含义就是声明一个数组,数组名为 array,数组类型为 int,数组大小为 10.Int 型的数据大小为 32 位,也就是 4b,这样在堆内存中同时开辟了 4b*10=40b 的大小保存这个名为 array 的数组:Array 4b 4b 4b 4b 4b 4b 4b 4b 4b 4b在数组输出的时候,如果下标超出了数组的范围,则会提示出错,错误类型为数组越界异常。获取数组的长度时,可以取其长度属性来获取。数组名.length。7.5 数组的赋值对数组进行赋值有两种方式,静态赋值和动态赋值。静态赋值是在声明的时候直接写出数组的值:Int array =1,2,3,4,5,6,7,8,9,1
46、0;动态赋值是利用循环为每一个元素赋值。赋值之后,就可以进行一些操作,比如比较大小,排序等等比较大小:int max = 0 ; / 定义一个整型变量 max 保存数组中的最大值int min = 0 ; / 定义一个整型变量 min 保存数组中的最小值max = min = array0 ; / 把第一个元素的内容赋值给 max 和 minfor(int i=0;imax) / 依次判断后续元素是否比 max 大max = arrayi ; / 如果大,则修改 max 的内容if(arrayijava Methoddemo再不疯狂,我们就老了再不疯狂,我们就老了再不疯狂,我们就老了再不疯狂,
47、我们就老了再不疯狂,我们就老了在这个实例中,printinfo()方法只写了一次,在主方法中调用了 5 次,只要你愿意,调用 n 次也无妨,修改的时候只需要把 printinfo()修改一下即可,真是方便。程序中调用方法的时候,执行该方法,待该方法执行完毕后,返回调用处继续执行。如果调用的方法有返回值,则使用 return 关键字来返回。实例 18:Methoddemo2.java目标:定义一个方法,并使用 return 返回值。文件名:Methoddemo2.java 文件路径:E:java6学习内容:return 的使用代码内容:public class Methoddemo2public
48、 static void main(String args)int one = addOne(10,20) ; / 调用整型的加法操作float two = addTwo(10.3f,20.3f) ; / 调用浮点数的加法操作System.out.println(“调用 addOne 方法的计算结果: “ + one) ;System.out.println(“调用 addTwo 方法的计算结果:“ + two) ;/ 定义 addOne 方法,完成两个数字的相加操作,方法返回一个 int 型数据public static int addOne(int i,int j)int temp = 0 ; / 方法中临时使用的参数,是局部变量temp = i + j ; / 执行加法计算return temp ; / 返回计算结果/ 定义 addTwo 方法,完成两个数字的相加操作,方法的返回值是一个 float 型数据public static float addTwo(float i,float j)float temp = 0 ; / 方法中临时使用的参数,是局部变量temp