《java的基本概念.ppt》由会员分享,可在线阅读,更多相关《java的基本概念.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 预备知识 第第1章章 预备知识预备知识 1.1 为什么要使用为什么要使用Java?1.2 Java的开发环境及其设置的开发环境及其设置1.3 Java语言的数据类型语言的数据类型1.4 Java程序中的标识符、关键字和分隔符程序中的标识符、关键字和分隔符1.5 Java中变量的作用范围中变量的作用范围1.6 小结小结第1章 预备知识 1.1 为什么要使用为什么要使用Java 简单的简单的Java语言的简单性主要体现在三个方面:语言的简单性主要体现在三个方面:1.Java的风格类似于的风格类似于C+,从从某种意义上讲,是某种意义上讲,是C与与C+的一个变种,因此,的一个变种,因此,C+程
2、序员可以很快掌握程序员可以很快掌握Java。2.Java摒弃了摒弃了C+中容易引发程序错误的特征,如:中容易引发程序错误的特征,如:指针、结构以及内存管理等。指针、结构以及内存管理等。3.Java中提供了丰富的类库,可以帮助我们很方便中提供了丰富的类库,可以帮助我们很方便的开发的开发Java程序。程序。第1章 预备知识 面向对象的面向对象的 面向对象可以说是面向对象可以说是Java最重要的特征,所以它最重要的特征,所以它支持支持封装、继承、多态封装、继承、多态等面向对象的特征。等面向对象的特征。Java语言的设计是完全面向对象的,它不支持语言的设计是完全面向对象的,它不支持类似类似C语言那样的
3、面向过程的程序设计技术。语言那样的面向过程的程序设计技术。第1章 预备知识 健壮的健壮的 Java也是一种强类型的语言,其类型检查比也是一种强类型的语言,其类型检查比C+还要严格,可以帮助我们检查出许多开发还要严格,可以帮助我们检查出许多开发早期出现的错误。早期出现的错误。Java自己负责内存管理,提自己负责内存管理,提供了供了垃圾内存回收垃圾内存回收机制,有效的避免了机制,有效的避免了C+中中最头疼的内存泄露问题。最头疼的内存泄露问题。第1章 预备知识 安全的安全的 一方面,在一方面,在Java语言里,删除了指针和释放内语言里,删除了指针和释放内存等存等C+功能,避免了非法内存操作。另一方功
4、能,避免了非法内存操作。另一方面,通过面,通过Java的安全体系架构来确保的安全体系架构来确保Java代码代码的安全性。当我们能从网上下载的安全性。当我们能从网上下载Java代码在本代码在本地执行时,地执行时,Java的安全架构能确保恶意的代码的安全架构能确保恶意的代码不能随意访问我们本地计算机资源。例如,删不能随意访问我们本地计算机资源。例如,删除文件,访问本地网络资源等操作都是被禁止除文件,访问本地网络资源等操作都是被禁止的。的。第1章 预备知识 解释的解释的 Java代码是解释执行的,我们使用代码是解释执行的,我们使用Java编译器将编译器将Java代码编译成代码编译成字节码字节码,这是
5、一种中间代码,然,这是一种中间代码,然后由后由Java解释器解释执行。解释器解释执行。Java源程序源程序(*.java文件文件)Java编译器编译器字节码字节码(*.class文件文件)Java解释器解释器二进制二进制例:一个例:一个java源文件,文件名为源文件,文件名为Mytest.java编译程序:编译程序:javac Mytest.java运行程序:运行程序:java Mytest第1章 预备知识 与与平台无关的平台无关的 Java作为一种网络语言,其源代码被编译成一作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。只要有种结构中立的中间文件格式。只要有Java运行运行的
6、系统都能执行这种中间代码(的系统都能执行这种中间代码(字节码字节码)。)。Java源程序被编译成一种与机器无关的字节码源程序被编译成一种与机器无关的字节码格式,在格式,在Java虚拟机(虚拟机(JVM)上运行。)上运行。第1章 预备知识 多线程的多线程的 Java语言的一个重要特性就是支持多线程的程语言的一个重要特性就是支持多线程的程序设计。多线程就好像我们做一张桌子,如果序设计。多线程就好像我们做一张桌子,如果你一个人完成这张桌子你一个人完成这张桌子-就好像单线程,那么就好像单线程,那么你需要先做桌面,做完桌面后,再做你需要先做桌面,做完桌面后,再做4个桌子个桌子腿,如果现在有腿,如果现在有
7、5个人来做桌子个人来做桌子-在程序中开辟在程序中开辟5个线程,其中个线程,其中1个人做桌面,另外个人做桌面,另外4个人做桌个人做桌子腿,效率将大大提高。子腿,效率将大大提高。第1章 预备知识 1.2 Java的开发环境及其设置的开发环境及其设置一一.开发环境开发环境JDK 1996年,年,sun公司的公司的Java 1.0版本正式推出。版本正式推出。Java的早的早期版本成为期版本成为JDK(Java Development Kit),如),如JDK 1.0,JDK 1.02,JDK 1.1.5等。等。1999年升级为年升级为1.2版,版,并改称为并改称为JAVA 2。2000年年9月升级为月
8、升级为1.3版,版,2001年年7月月推出了推出了1.4版。版。本书所讲的程序可在该环境下编译和运行,所使用的具本书所讲的程序可在该环境下编译和运行,所使用的具体版本是。若没有改变安装路径,则安装在体版本是。若没有改变安装路径,则安装在c:j2sdk1.4.2目录下,该目录下有个子目录目录下,该目录下有个子目录bin,编译和运行编译和运行Java程序程序的命令都在该目录下。的命令都在该目录下。第1章 预备知识 例:编译并运行以下程序例:编译并运行以下程序public class Mytestpublic static void main(String args)System.out.print
9、ln(Welcome to Beijing!);第1章 预备知识 文件的编辑:文件的编辑:记事本记事本ultraedit第1章 预备知识 二、环境变量的设置二、环境变量的设置 在编译和运行在编译和运行java源程序的时候,需用到源程序的时候,需用到java.exe和和javac.exe命令,它们默认在命令,它们默认在c:j2sdk1.4.2bin目录目录下。下。途径途径1:在命令行键入:在命令行键入 set path=c:j2sdk1.4.2bin缺点:设置只在当前缺点:设置只在当前dos窗口有效。窗口有效。途径途径2:设置系统环境变量:设置系统环境变量“我的电脑我的电脑”-“属性属性”-“高
10、级高级”-“环境变量环境变量”-“系统变量系统变量”第1章 预备知识 1.3 Java语言的数据类型整数类型整数类型 byte、short、int、long数据类型数据类型简单数据类型简单数据类型复合数据类型复合数据类型数值类型数值类型字符型字符型 char布尔类型布尔类型 boolean浮点类型浮点类型 float、double类类 class接口类型接口类型 interface数组类型数组类型第1章 预备知识 类型名称关键字占用位数取值范围字节型byte1字节(8位)-128127短整型short2字节(16位)-3276832767整型int4字节(32位)-231231-1长整型lon
11、g8字节(64位)-263263-1单精度浮点型float4字节(32位)1.4e-45f1.4e+38f双精度浮点型double8字节(64位)4.9e-3241.797e+38char2字节(16位)065535或0000uFFFFboolean1字节(8位)ture和false整数小数 字符型 布尔型 表表1 Java语言的基本数据类型语言的基本数据类型第1章 预备知识 1整型整型 Java语言的整型数据与语言的整型数据与C/C+相似,按照相似,按照存储位的不同,分为存储位的不同,分为byte、short、int、long四种,四种,分别表示从分别表示从8位到位到64位的整数。位的整数。
12、其中,其中,int和和long类型类型是最常用的类型,而是最常用的类型,而byte类类型经常用在字节码数据中,比如网络传输数据或进型经常用在字节码数据中,比如网络传输数据或进行二进制数据的输入行二进制数据的输入/输出时。由于输出时。由于short类型在使类型在使用时要求数据的存储须先高字节后低字节,在某些用时要求数据的存储须先高字节后低字节,在某些机器中可能会出错,故使用较少。机器中可能会出错,故使用较少。第1章 预备知识 数据类型数据类型 占用字节占用字节 取值范围取值范围 byte 1 -2727-1 short 2 -215215-1 int 4 -231231-1 long 8 -26
13、3263-1表表1-2 整型数属性表整型数属性表 第1章 预备知识 Java的整数可以用十进制、八进制和十六进制的整数可以用十进制、八进制和十六进制来表示:来表示:八进制数以八进制数以0打头打头:数字字符为数字字符为07;十六进制数用十六进制数用0 x(0X)打头打头:数字字符为数字字符为09、af或或AF。例如:例如:78.69L、011、0 x1234等都表示一个等都表示一个整型常量。整型常量。一个整型数隐含为一个整型数隐含为int型,如果需要型,如果需要long类型类型的数,必须在该数后加上字母的数,必须在该数后加上字母l(L)。第1章 预备知识 2浮点型浮点型 Java的浮点类型分为两
14、种:单精度浮点数和双的浮点类型分为两种:单精度浮点数和双精度浮点数,分别用关键字精度浮点数,分别用关键字float和和double来表示。来表示。数据类型数据类型 占用字节占用字节 取值范围取值范围 float 4 1.4e-0453.4e+038 double 8 4.9e-3241.8e+308表表1-3 实型数属性表实型数属性表 第1章 预备知识 浮浮点点数数的的隐隐含含类类型型为为double型型,当当我我们们要要定定义义一一个个float型型的的数数时时,必必须须在在该该数数后后加加字字母母f,告告诉编译器该数为诉编译器该数为float类型。类型。判断下列语句是否正确:判断下列语句是
15、否正确:float a1=1.2f;float a2=3.5;double a3=4.6d;double a4=2.0;注意:不管是注意:不管是double型还是型还是float型,当对实数使型,当对实数使用比较运算符用比较运算符“=”时,由于精度的取值问题,时,由于精度的取值问题,必须小心使用。必须小心使用。第1章 预备知识 3字符型字符型 占两个字节内存。占两个字节内存。下面用关键字下面用关键字char定义一个字符变量:定义一个字符变量:char a1=b;char a2=98;(不提倡不提倡)同同C/C+相同,相同,Java字符集中一些不能显字符集中一些不能显示的控制字符可以用转义序列来
16、表示,如表示的控制字符可以用转义序列来表示,如表2.3所示。所示。第1章 预备知识 转义字符转义字符 功能描述功能描述 ddd13位八进制所表示的字符位八进制所表示的字符 uxxxx14位十六进制表示的字符位十六进制表示的字符 单引号单引号 双引号双引号 反斜杠反斜杠 r 回车回车 n 换行换行 f 换页换页 t 水平制表水平制表 b 退格退格表表1-4 转义字符表转义字符表 第1章 预备知识 4布尔型布尔型 Java中中布布尔尔型型变变量量只只有有两两个个值值:真真(true)或或假假(false)。例例2.While(ture/false)例例1.boolean sign=true;与与C
17、/C+不同,布尔型数据是独立的数据类型,不同,布尔型数据是独立的数据类型,所以既不能将整数值赋给布尔变量,也不能将布所以既不能将整数值赋给布尔变量,也不能将布尔类型的数转换成整型或其他类型。尔类型的数转换成整型或其他类型。第1章 预备知识 类型转换类型转换规则:规则:表示数的范围小的数据类型可以自动向表示表示数的范围小的数据类型可以自动向表示数的范围大的类型转换,反之则必须强制转换数的范围大的类型转换,反之则必须强制转换。数据类型数据类型 能自动转换为数据类型能自动转换为数据类型byte,short intbyte,short,int longbyte,short,int,long float
18、byte,short,int,long,floatdoublecharint表表1-5 数据类型自动转换的规则数据类型自动转换的规则第1章 预备知识 例如:例如:long longVar=12345;/int类型数据自动转换为类型数据自动转换为long型并赋值型并赋值double doubleVar=1.2ffloat c=9.83244665757Lint intVar=(int)3.45f;float floatVar=(float)1.2;第1章 预备知识 Java中的复合数据类型:中的复合数据类型:包括类(包括类(class)、数组和接口()、数组和接口(interface)。)。字符
19、串(字符串(String)不是简单的数据类型,是复合)不是简单的数据类型,是复合数据类型(数据类型(“类类”类型),但在类型),但在Java语言中可以语言中可以像像使用简单类型一样来使用它。使用简单类型一样来使用它。这里重点讲字符串类型。这里重点讲字符串类型。第1章 预备知识 一个字符串常量是用双引号括起来的一个字符串常量是用双引号括起来的0个或多个字个或多个字符组成的序列。符组成的序列。例如:例如:“”-表示一个空字符串。表示一个空字符串。“Hello Worldn”-表示字符串表示字符串Hello World,n是是回车换行符。回车换行符。字符串的连接:字符串的连接:字符串可以通过连接符字
20、符串可以通过连接符“+”进行连接。进行连接。例如:例如:“Wecome to”+”Beijing”等价于等价于“Wecome to Beijing”第1章 预备知识 例:执行下列程序,输出结果为多少?例:执行下列程序,输出结果为多少?()public class A public static void main(String args)String str=“456”;int a=7,b=8;System.out.println(“str=”+str+a+b);A.str=45615 B.str=45678 C.str=456+7+8 D.编译错误编译错误B第1章 预备知识 1.4 Java
21、程序中的标识符、关键字和分隔符程序中的标识符、关键字和分隔符1.4.1 标识符标识符 Java语言的标识符必须由数字、字母、下划线或美元语言的标识符必须由数字、字母、下划线或美元符号符号($)组成,其中组成,其中首字符不能是数字首字符不能是数字。标识符长度不。标识符长度不限。限。标识符标识符区分大小写区分大小写,不能以数字开头,不能插入空格等,不能以数字开头,不能插入空格等,也不能以关键字命名。在程序中标识符用来给类、接口、也不能以关键字命名。在程序中标识符用来给类、接口、方法、变量或类对象命名。为提高程序的可读性,用标识方法、变量或类对象命名。为提高程序的可读性,用标识符命名最好符命名最好见
22、名知意。见名知意。为使非英语国家的程序员方便地用自己的母语定义标为使非英语国家的程序员方便地用自己的母语定义标识符,识符,Java标识符采用标识符采用Unicode字符集字符集,可为任意长度。,可为任意长度。第1章 预备知识 下面是合法的标识符:下面是合法的标识符:intVariable、doubleVariable、var2、_var3、double1、booleanture、浮点数、浮点数2下面的标识符不合法:下面的标识符不合法:var 1(不能有空格不能有空格)、1 var(不能以数字开头)、(不能以数字开头)、var%(含有非法字符(含有非法字符%)、)、do(关键字)(关键字)第1章
23、 预备知识 Java语言关于标识符命名的一些约定语言关于标识符命名的一些约定:1.类名和接口名的第一个字母大写,如类名和接口名的第一个字母大写,如String、System等。等。2.方法名的第一个字母小写,如方法名的第一个字母小写,如main(),print(),println()。3.为使程序可读性强,做到见名知意,通常类名和方法名为使程序可读性强,做到见名知意,通常类名和方法名比较长,由名词、动词或它们的组合来命名。比较长,由名词、动词或它们的组合来命名。类名首字类名首字母大写,后面各单词首字母大写。方法名的首字母小写,母大写,后面各单词首字母大写。方法名的首字母小写,后面各单词首字母大
24、写后面各单词首字母大写。如,输入流类。如,输入流类InputStream、数、数据输出流类据输出流类DataOutputStream,方法,方法setColor()、actionPerformed()等。等。4.常量(用关键字常量(用关键字final修饰的变量)全部用大写修饰的变量)全部用大写,单词间,单词间用下划线隔开。如用下划线隔开。如TEXT_PROPERTY。5.变量名或一个类的对象名首字母小写变量名或一个类的对象名首字母小写。6.Java的关键字都小写。的关键字都小写。第1章 预备知识 类 型缺省值缺省值 byte(byte)0 short(short)0 int0 long0L f
25、loat0.0f double0.0d charn0000 booleanfalse Objectnull表表1-6 变量的缺省初始值变量的缺省初始值 第1章 预备知识 1.4.2 关键字关键字Java中的关键字有中的关键字有50个,按用途可分为如下几组:个,按用途可分为如下几组:用于数据类型:用于数据类型:byte,short,int,long,float,double,char,boolean,false,true,new,null,void,instanceof。用于语句:用于语句:break,case,catch,continue,defaule,do,else,finally,for
26、,if,return,super,switch,this,throw,try,while.用于修饰:用于修饰:abstract,final,native,private,protected,public,static,synchronized,transient,volatile。用于方法、类、接口、包:用于方法、类、接口、包:class,extends,implements,interface,package,import,throws。保留字:保留字:const,goto第1章 预备知识 1.4.3 分隔符分隔符1.java语言的注释语言的注释块注释:多行注释块注释:多行注释 /*注释部分
27、注释部分*/*文档注释部分文档注释部分*/行注释:仅用于单行注释行注释:仅用于单行注释 /注释部分注释部分2.空白符空白符空格、回车、换行、制表符(空格、回车、换行、制表符(Tab键)等键)等第1章 预备知识 3.其它分隔符其它分隔符大括号大括号-用来定义类体、方法体、复合语句和用来定义类体、方法体、复合语句和数组初始化、一对大括号括起来的代码段都是一数组初始化、一对大括号括起来的代码段都是一个语句块。个语句块。分号(;)分号(;)-语句结束标志语句结束标志逗号(,)逗号(,)-区分各个变量,区分方法的参数区分各个变量,区分方法的参数冒号(:)冒号(:)-用于语句标号中用于语句标号中第1章 预
28、备知识 1.5 Java中变量的作用范围中变量的作用范围首先看首先看Java中变量的声明:中变量的声明:在使用任何变量之前必须先定义。在使用任何变量之前必须先定义。如果是基本数据类型,在声明变量类型的同时,如果是基本数据类型,在声明变量类型的同时,可以为它赋初值。可以为它赋初值。例:例:int a=1,b=2;如果是复合数据类型,声明完数据类型后,如果是复合数据类型,声明完数据类型后,还要用关键字还要用关键字new为其分配内存单元,否则为其分配内存单元,否则取值为取值为null,即不指向任何内存空间。,即不指向任何内存空间。例:例:int array1=new int5;for(i=0,i5,
29、i+)arrayi=i+1;第1章 预备知识 在类体中定义的类成员变量,在该类的各个成员在类体中定义的类成员变量,在该类的各个成员方法中均可以使用。方法中均可以使用。在某个方法中定义的变量,仅能在该方法中使用。在某个方法中定义的变量,仅能在该方法中使用。在在if语句、语句、while语句、语句、for语句等复合语句中定义语句等复合语句中定义的变量,仅在它所在的块中有效。的变量,仅在它所在的块中有效。需要说明的是:需要说明的是:方法体中的变量必须初始化(赋值)后才能使用,方法体中的变量必须初始化(赋值)后才能使用,而类中的变量可自动初始化,后面详述。而类中的变量可自动初始化,后面详述。第1章 预
30、备知识 例:下面程序演示了常量的定义、变量的定义和其作例:下面程序演示了常量的定义、变量的定义和其作用范围。用范围。class MyTest1 static char charVar=t;/定义字符型变量定义字符型变量charVar static final float floatVar=3.14159f;/定义浮点型常量定义浮点型常量floatVar public static void main(String args)String stringVar=“java”;/变量变量stringVar在该语句块中在该语句块中 有效有效 第1章 预备知识 System.out.print(类中定义
31、:类中定义:floatVar=+floatVar+charVar+stringVar=+stringVar);System.out.println();show();/调用类中的自定义方法调用类中的自定义方法 static void show()String stringVar=北京北京;/变量变量stringVar在该语句块中在该语句块中有效有效 System.out.println(类中定义:类中定义:floatVar=+floatVar+方法中定义方法中定义:stringVar=+stringVar);第1章 预备知识 运行结果如下:运行结果如下:第1章 预备知识 1.6 小结小结Java的开发环境及其设置的开发环境及其设置Java语言的数据类型语言的数据类型Java程序中的标识符、关键字和分隔符程序中的标识符、关键字和分隔符Java中变量的作用范围中变量的作用范围使用使用Java的原因的原因