JAVA教程、第二讲.ppt

上传人:sccc 文档编号:5019968 上传时间:2023-05-29 格式:PPT 页数:41 大小:332.01KB
返回 下载 相关 举报
JAVA教程、第二讲.ppt_第1页
第1页 / 共41页
JAVA教程、第二讲.ppt_第2页
第2页 / 共41页
JAVA教程、第二讲.ppt_第3页
第3页 / 共41页
JAVA教程、第二讲.ppt_第4页
第4页 / 共41页
JAVA教程、第二讲.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《JAVA教程、第二讲.ppt》由会员分享,可在线阅读,更多相关《JAVA教程、第二讲.ppt(41页珍藏版)》请在三一办公上搜索。

1、Java语言基础,Java是面向对象并且可以跨平台的编程语言Java程序是运行在JVM(Java虚拟机)之上的要运行和开发Java程序,必须下载和安装由Sun公司提供的JDK(Java开发工具包)配置环境变量:Path三个常用的JDK工具:javac、java和javadoc,Java中的变量和数据类型Java中变量的作用域规则数据类型转换Java中的输出语句Java中的运算符和表达式程序控制结构Java中的数组new关键字Java中的垃圾回收机制命令行参数,变量,变量是内存中的一块存储区域,是存储数据的基本单元;声明变量的语法:数据类型 标识符=值;如:int num;float money

2、=123.45f;char ch1,ch2=A;,数据类型,数据类型用来确定要存储在内存单元中的数据的类型;在Java中,数据类型被区分成两个种类:原始数据类型引用数据类型,原始数据类型,原始数据类型是最简单的数据形式,与C的基本数据类型很相似:,引用数据类型,在Java中,除了上述8种原始数据类型的变量以外,其余的全都属于引用数据类型,其中包括:数组对象存储在引用类型变量中的值是该变量表示的值的地址;可以借用C语言中指针的概念来理解引用数据类型。,Java中的内存分配,Java中的原始数据类型与C语言中的基本数据类型一样,其变量都是在栈中分配空间;而除了8种原始数据类型以外,其它的任何数据都

3、不可以在栈中分配,只能到堆中开辟空间,而在堆中分配的空间又只能通过指针访问;通过指针访问堆内存的方式,在Java中被称作引用数据类型;可以认为,Java中的引用就类似于C语言中的指针,只是对指针进行了一定程度上的包装,避免了因直接操作指针而造成的数据意外损坏,从而导致程序错误的情况。,标识符命名规则,变量、函数、数组、对象、类和接口等等都需要命名,这些名称统称为标识符;Java中对于标识符的命名规则作了如下限制:只能由英文字母、数字、下划线“_”和“$”符号组成;必须以英文字母、“_”或“$”开头,即不能以数字开头;除“_”和“$”以外,不能包含其它任何特殊字符;不能与关键字冲突;严格区分大小

4、写。,变量的作用域和生命周期,变量 的作用域指变量起作用的范围,说明变量在什么部分可以被访问;变量的生命周期是指变量在内存中存在的周期,即什么时候分配空间,什么时候销毁;,作用域示例,/*有1,2,3,4四个数字,能组成多少个不相同且无重复的三位数?*/public class ScopeVariable public static void main(String args)int count=0;for(int i=1;i=4;i+)/在需要使用变量时声明 for(int j=1;j=4;j+)for(int k=1;k=4;k+)if(i!=j,数据类型转换,程序中经常会遇到要将数据类型

5、进行转换的情况(如:在一个表达式中存在不同类型的操作数时),Java的数据类型转换比C控制得更为严格;数据类型转换有两种情况:自动类型转换强制类型转换,自动类型转换,自动类型转换也称作隐式类型转换;将一种类型的变量赋值给另一种类型的变量时,只要满足以下条件,就会发生自动类型转换:两种类型之间相互兼容;目标类型大于源类型(即类型提升);如:char ch=A;int num=ch;float f=num;double d=f;/类型转换自动发生,无需显式说明,强制类型转换,强制类型转换也称作显式类型转换;如果被转换的值的数据类型大于其目标类型,将会丢失部分信息;如:int x=65;char c

6、h=x;这样的语句将报错,因为char类型小于int类型,编译器无法将其自动转换,只能进行强制转换:int x=65;char ch=(char)x;,类型提升规则,不难看出,在有类型提升的情况下,编译器将自动进行类型转换,否则就要进行强制类型转换;类型提升应遵循如下规则:两种类型必须兼容,且目标类型大于源类型,例如:byte、char和short类型都可以提升为int型。对于表达式而言,其最终结果将会与表达式中最高的数据类型相同。,输出语句,如果要将某些信息打印到屏幕上,就必须使用输出语句;使用System.out.println()实现换行输出效果;使用System.out.print()

7、实现输出但不换行效果;无论输出什么类型的数据,只需将数据作为参数传递给它们即可,而无需像C语言中那样,使用控制字符,如:int a=10;float f=3.14f;System.out.println(a);System.out.print(f);System.out.println(X);,使用转义字符控制输出格式,有些时候,我们可能会需要对输出格式进行控制,这就使用到了转义字符;以下是一些常用的转义字符:,运算符和表达式,运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号;运算符和操作数的有效组合称为表达式;Java提供了一系列丰富的运算符,包括:算术运算符关系运算符逻

8、辑运算符条件运算符赋值运算符,算术运算符,算术运算符主要用于数学计算,一般使用数值作为操作数:,关系运算符,关系运算符可以测试两个操作数之间的关系(但不会改变操作数的值),关系表达式的结果为boolean型true/false:,逻辑运算符,逻辑运算符与boolean型操作数一起使用:,短路与和短路或,Java提供了两个在其它计算机语言中没有的逻辑运算符,这就是逻辑与和逻辑或的短路版本;对于短路与(&),如果其左侧为false,则不再计算其右侧,整个表达式的结果为false,只有左侧为true时才计算右侧;对于短路或(|),如果其左侧为true,则不再计算其右侧,整个表达式的结果为true,只

9、有左侧为false时,才计算右侧。,短路与示例,int a=10;int b=20;if(+a=12/*这里使用的是逻辑与,试分析最后的输出结果*/,int a=10;int b=20;if(+a=12/*这里使用的是短路与,试分析最后的输出结果*/,11,21,11,20,赋值运算符,赋值运算符的运算顺序是从右至左的:,条件运算符?:,条件运算符是三元运算符;它的一般形式是:表达式1?表达式2:表达式3根据表达式1的结果来判断执行表达式2还是表达式3,如果表达式1的结果为true,则执行表达式2,否则执行表达式3;条件运算符在某些情况下能够替代小型的ifelse语句。,运算符的优先级,很多情

10、况下,一个表达式由多个运算符组成,优先级决定运算符的计算顺序:,控制流语句,一般情况下,程序是从上往下依次顺序执行的;但很多时候,我们需要改变程序执行的流程,这就使用到了控制流语句;控制流语句包括:判断语句循环语句跳转语句,判断语句,判断语句也称作条件语句或分支语句;判断语句主要用来控制程序在何种情况下执行某一部分;判断语句包括:if语句ifelse语句ifelse if语句switchcase语句,循环语句,循环语句也称作迭代语句;循环语句可用于重复执行相同的操作;循环语句包括:while语句dowhile语句for语句,跳转语句,跳转语句允许以非线性的方式执行程序,可以将控制权转到程序的其

11、它部分;跳转语句包括:break语句continue语句,数组,数组用于将相同类型的数据存储在连续的存储单元中;可以通过指定数组的名称和长度来声明数组;一旦声明数组的大小,就不能再修改;数组元素通过数组名和索引来访问,索引从0开始;数组可以是一维,也可以是多维。,new关键字,在Java中,不允许将数组分配在栈内存中,只能分配在堆内存中;new关键字;new是Java中内置的操作符;new操作符用来从堆中分配指定类型的内存空间,并返回相应类型的引用,声明数组示例,public class ArrayDemo public static void main(String args)/声明整型数组

12、的引用,类似于C中的 int*p;int ary;/为数组引用在堆内存中分配实际的内存空间/类似于C中的 p=(int*)malloc(10*sizeof(int);ary=new int10;/使用循环为数组元素赋值 for(int i=0;i ary.length;i+)aryi=i;/使用循环将数组元素逐个输出到控制台 for(int i=0;i ary.length;i+)System.out.println(aryi);,Java中声明数组的几种方式,在Java中声明数组有如下方式:,/仅声明数组的引用,但没有分配内存空间float fAry;/声明数组的同时,根据指定的长度分配内存

13、,但数组中没有值char chAry=new char10;/声明数组并分配内存,同时将其初始化int ary1=new int1,2,3,4,5;/与前一种方式相同,仅仅只是语法相对简略int ary2=1,2,3,4,5;,数组之间赋值,在C语言中,不可以将数组直接赋值给另一个数组;在Java中,语法上允许这样做,但实际得到的效果是两个数组引用指向同一块内存。int ary1=2,4,6,8,10;int ary2;ary2=ary1;/允许这样赋值,数组赋值示例,public class ArrayDemo public static void main(String args)int

14、ary1=2,4,6,8,10;/声明并初始化数组1 int ary2;/声明数组2 ary2=ary1;/将数组1赋值给数组2 ary23=1024;/通过数组2修改其中一个元素的值/打印出数组1中的元素 System.out.println(数组1中的元素:);for(int i=0;i ary1.length;i+)System.out.println(ary1i);/打印出数组2中的元素 System.out.println(数组2中的元素:);for(int i=0;i ary2.length;i+)System.out.println(ary2i);,关于数组长度,在Java中,程

15、序员可以不再关注数组的长度,数组自带的length属性将负责保管数组的长度;C语言不检查数组的边界,数组索引完全由程序员掌握;Java对数组下标越界情况强加约束;如果试图访问不在有效索引以内的元素,将会引发运行错误。,Java中的垃圾回收机制,释放内存的任务是由Java虚拟机来完成的,程序员可以不再关心此项工作;如果某块内存空间没有任何引用指向它,那么虚拟机就将其认定为垃圾;虚拟机并不是随时随地地立即回收垃圾,而是在系统比较空闲的时候,才会执行回收任务。,命令行参数,在命令行使用java命令执行程序时,可以将一些参数传递给main函数;main函数携带的String(字符串数组)类型的形参ar

16、gs正是为了接收这些来自命令行的参数;可以从命令行传递任意多个字符串给main函数,其间使用空格隔开,也可以不传递任何参数;这些传递进来的多个字符串最后以字符串数组的形式,供main函数中加以使用。,命令行参数示例,public class ArgumentDemo public static void main(String args)int len=args.length;/获得命令行参数的个数 if(len 0)/判断是否有命令行参数/如果有,将其逐一打印到控制台 System.out.println(len+个命令行参数,具体如下:);for(int i=0;i args.length;i+)System.out.println(argsi);else/否则给出提示信息 System.out.println(您没有传递任何命令行参数。);,总结,Java中的数据类型大体上分为两种:原始数据类型和引用数据类型;变量是存储数据的基本单位;运算符和流程控制基本上与C相似;Java中数组是引用数据类型,只能存放在堆内存中;数组必须由new关键字为其分配内存;释放内存的工作由Java虚拟机的垃圾回收机制来完成;可以利用命令行参数接收来自用户的输入。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号