




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA初级编程,第二章 Java语言基础 陈峥 ,1,本次课程目标,理解标识符,变量和常量 认识Java基本数据类型 学会使用格式化输出 使用Java运算符书写Java表达式 理解程序控制的概念 运用条件语句控制程序的执行 理解并使用关键字break和continue Java中的数组 垃圾回收机制 理解命令行参数的使用 使用新的输入方式,2,本章词汇,变量,在程序运行过程中产生的数据和结果都需要存放在内存中,而变量是Java中存储数据的基本单元 变量在使用前必须声明,语法为: 数据类型 标识符 = 值,标识符 = 值; 标识符也称变量名,一个标识符表示一块用于存储数据的内存空间,数据类型表示该空间能存储的数据格式和大小.在声明变量的时候可以通过逗号隔开声明多个同类型的变量,数据类型,数据类型用来确定要存储在内存单元中的数据的类型; 在Java中,数据类型被区分成两个种类: 原始数据类型 引用数据类型,Java数据类型,基本类型,引用类型,数据类型,boolean,浮点数类型,整数类型,字符类型,数组类型,接口类型,类类型,引用,char,long,int,short,byte,double,float,接口类型,类类型,数组类型,接口类型,类类型,引用,数组类型,接口类型,类类型,引用类型,引用,数组类型,接口类型,类类型,原始数据类型,原始数据类型一共为八种 byte 字节型 char 字符型 boolean 布尔型 short 短整型 int 整型 long 长整型 float 浮点型 double 双精度 每种原始数据类型一次只能存放一个值,是Java中最简单的数据形式,引用数据类型,在Java中,除了上述8种原始数据类型的变量以外,其余的全都属于引用数据类型,其中包括: Array 数组 Class 类 Interface 接口 存储在引用类型变量中的值是该变量表示的值的地址,标识符,变量、方法、数组、对象、类和接口等等都需要命名,这些名称统称为标识符; Java中对于标识符的命名规则作了如下限制: 只能由英文字母、数字、下划线“_”和“$”符号组成; 必须以英文字母、“_”或“$”开头,即不能以数字开头; 除“_”和“$”以外,不能包含其它任何特殊字符; 不能与关键字冲突; 严格区分大小写。 并且变量名命名规范以小写字母开头,从第二个单词开始首字母大写,作用域与生命周期,每个变量都有其作用域,离开这个作用域将无法被直接访问 在Java中变量的作用域以来定义 变量被声明以后便在内存中开辟了一块用于存放变量值的空间,不再使用的变量所表示的空间会被释放,这个过程我们称为变量的生命周期 在Java中变量的生命周期与作用域相同,暨程序执行到某句声明语句时开辟该声明变量所在的空间,当程序执行离开该变量所在的以后,该变量则被释放销毁结束生命周期,类型转换,程序中经常会遇到要将数据类型进行转换的情况(如:在一个表达式中存在不同类型的操作数时) 数据类型转换有两种情况: 自动类型转换 强制类型转换,自动类型转换,自动类型转换也称作隐式类型转换; 将一种类型的变量赋值给另一种类型的变量时,只要满足以下条件,就会发生自动类型转换: 两种类型之间相互兼容; 目标类型大于源类型; 如: char ch = A; int num = ch; float f = num; double d = f; /类型转换自动发生,无需显式说明,强制类型转换,强制类型转换也称作显式类型转换; 如果被转换的值的数据类型大于其目标类型,将会丢失部分信息; 如: int x = 65; char ch = x; 这样的语句将报错,因为char类型小于int类型,编译器无法将其自动转换,只能进行强制转换: int x = 65; char ch = (char)x;,输出语句,如果要将某些信息打印到屏幕上,就必须使用输出语句; 使用System.out.println()实现换行输出效果; 使用System.out.print()实现输出但不换行效果; 以上无论输出什么类型的数据,只需将数据作为参数传递给它们即可,而无需像C语言中那样,使用%s、%d之类的控制字符,但是支持/n,/t等格式符 使用System.out.printf()实现C语言的输出方式,需要转换符支持,连接符,在Java中+号具备两种操作: 当+号两边的操作数皆为数据类型的时候执行加法运算,结果为数据类型 当+号两边任意一边的操作数为字符串的时候执行连接操作,结果为字符串类型,运算符与表达式,运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号; 运算符和操作数的有效组合称为表达式; Java提供了一系列丰富的运算符,包括: 算术运算符 赋值运算符 关系运算符 逻辑运算符 三元运算符,算术运算符,算术运算符主要用于数学计算,一般使用数值作为操作数:,赋值运算符(一),=在程序中是赋值运算符,其作用是获取右边的值,赋给左边 右边可以是任何有结果的表达式,常量或者变量 左边必须是一个已声明的变量 对于基本数据类型赋值很直接,是将实际的值复制一份赋给接收的变量存储,对这个值的任何后续修改都不会影响其他变量 对于引用数据类型的赋值则不同,由于引用数据类型的变量实际保存的是一个指向实际值的地址,所以使用=的结果只是将地址交给接收的变量,让这个变量也引用这个空间,如果这个空间的值被修改,所有引用这块空间的变量都会受影响,赋值运算符(二),在Java中对于一般的运算表达式也提供了一种简写方式,关系运算符,关系运算符可以测试两个操作数之间的关系(但不会改变操作数的值),关系表达式的结果为boolean型true/false:,逻辑运算符,逻辑运算符与boolean型操作数一起使用:,三元运算符,三元运算符又称为条件运算符 一般形式为: 表达式1 ? 表达式2 : 表达式3 根据表达式1的结果来判断执行表达式2还是表达式3,如果表达式1的结果为true,则执行表达式2,否则执行表达式3; 条件运算符在某些情况下能够替代小型的ifelse语句。,运算符的优先级,很多情况下,一个表达式由多个运算符组成,优先级决定运算符的计算顺序:,控制流语句,一般情况下,程序是从上往下依次顺序执行的; 但很多时候,我们需要改变程序执行的流程,这就使用到了控制流语句; 控制流语句包括: 判断语句 循环语句 跳转语句,选择语句,选择语句也称作条件语句或判断语句; 选择语句主要用来控制程序在何种情况下执行某一部分; 选择语句包括: if语句 ifelse语句 ifelse if语句 switchcase语句,循环语句,循环语句可用于重复执行相同的操作; 循环语句包括: while语句 dowhile语句 for语句,跳转语句,跳转语句允许以非线性的方式执行程序,可以将控制权转到程序的其它部分; 跳转语句包括: break语句 continue语句 break可以使用在循环和switch中,continue只能存在循环中 break和continue可以通过标签指定跳转的位置,替代C/C+的goto语句,数组,数组用于将相同类型的数据存储在连续的存储单元中; 可以通过指定数组的名称和长度来声明数组; 一旦声明数组的大小,就不能再修改; 数组元素通过数组名和索引来访问,索引从0开始; 数组可以是一维,也可以是多维。,回顾C语言中的数组,在C语言中,从存储方式上讲,声明数组有两种情况; 在栈内存中分配空间,如: int ary10; /声明有10个整型元素的数组 在堆内存中分配空间,如: int *p = NULL; /声明整型指针 /指针指向堆空间 p = (int*)malloc(10 * sizeof(int); C语言允许数组被开辟在栈或堆中-。,new关键字,在Java中,不允许将数组分配在栈内存中,只能分配在堆内存中; Java中声明数组需要将类型修饰,使用,一个表示一个维数:int ary或int ary; Java中没有类似于malloc、calloc、realloc和free等函数,取而代之的是new关键字; new是Java中内置的操作符; new操作符用来从堆中分配指定类型的内存空间,并返回相应类型的引用,其作用类似于malloc函数。 int ary=new int5;,声明数组示例,public class ArrayDemo public static void main(String args) /声明整型数组的引用,类似于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; /声明数组的同时,根据指定的长度分配内存,但数组中没有值 char chAry = new char10; /声明数组并分配内存,同时将其初始化 int ary1 = new int1, 2, 3, 4, 5; /与前一种方式相同,仅仅只是语法相对简略 int ary2 = 1, 2, 3, 4, 5;,数组之间赋值,int ary1 = 2, 4, 6, 8, 10; int ary2; ary2 = ary1;,数组赋值示例,public class ArrayDemo public static void main(String args) int 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中,程序员可以不再关注数组的长度,数组自带的length属性将负责保管数组的长度; 对于二维数组可以分别使用ary.length和ary0.length获取行和列的长度 C语言不检查数组的边界,数组索引完全由程序员掌握; Java对数组下标越界情况强加约束; 如果试图访问不在有效索引以内的元素,将会引发运行错误。,垃圾回收机制,在C语言中,分配的堆内存在使用完毕以后,必须进行释放,否则将会造成内存泄漏; 同样的,在Java中由new分配的内存也将存在内存泄漏的可能; 但释放内存的任务是由Java虚拟机来完成的,程序员可以不再关心此项工作; 如果某块内存空间没有任何引用指向它,那么虚拟机就将其认定为垃圾; 虚拟机并不是随时随地地立即回收垃圾,而是在系统比较空闲的时候,才会执行回收任务。,命令行参数,在命令行使用java命令执行程序时,可以将一些参数传递给main函数; main函数携带的String(字符串数组)类型的形参args正是为了接收这些来自命令行的参数; 可以从命令行传递任意多个字符串给main函数,其间使用空格隔开,也可以不传递任何参数; 这些传递进来的多个字符串最后以字符串数组的形式,供main函数中加以使用。,输入语句,在JDK5.0以前的版本从键盘接收输入是件比较复杂的IO操作 而现在提供了一种方便简单的输入方式:Scanner,import java.util.Scanner; public class Demo public static void main(String args) Scanner in=new Scanner(System.in); String str=in.next(); int num=in.nextInt(); double d=in.nextDouble(); ,IO的输入方式,传统的Java命令行输入使用IO方式,import java.io.BufferedReader; import java.io.InputStreamReader; public class Demo public static void main(String args)throws Exception BufferedReader br=new BufferedReader(new InputStreamReader(Sys
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融科技产品创新与推广服务协议
- 酒店与健身房合作健身服务协议
- 网络系统安全维护合同
- 电商平台跨境进口业务合同
- 自考行政管理本科自我学习计划试题及答案探讨
- 领导者的决策能力与团队绩效关系试题及答案
- 行政管理心理学解决方案试题及答案
- 2025年自考行政管理案例研究与试题答案
- 行政管理的多层次治理研究试题及答案
- 2025机械设备采购合同模板示例
- 新版UCP600的中英文版下载
- XXXX项目总指挥部组织机构设立及相关职责
- 营销策划 -上汽大众“11.11”众享购车季网络直播会
- 2022《包饺子》说课稿
- 领导干部任前廉政法规知识考试题库及答案
- 【公开课课件】闽教英语四年级下册Unit8 Summer Vacation Part A
- GB/T 12939-2015工业车辆轮辋规格系列
- GB/T 1221-2007耐热钢棒
- 1新疆维吾自治区普通住宅物业管理服务等级标准
- GB 20827-2007职业潜水员体格检查要求
- 设计管理资料课件
评论
0/150
提交评论