java听课笔记.doc_第1页
java听课笔记.doc_第2页
java听课笔记.doc_第3页
java听课笔记.doc_第4页
java听课笔记.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Topic 1 java基础一、Java的优势:(1) 跨平台:一次编译,随处运行,JVM实现跨平台(2) 安全性:C+的基础上,取消了强大但危险的指针及自动内存管理机制,由垃圾回收器回收垃圾(3) 完全面向对象:不考虑兼容其他语言(4) 简单:语法简洁,取消了C+不实用的部分,丰富的类库,提高了程序员的开发效率(5) 健壮的:强制类型机制,异常处理机制,垃圾回收机制。二、JAVA开发工具包:java开发工具,记事本,IDE,反编译工具。开发准备:安装JDK-文本编辑器(记事本或UltraEdit),集成开发工具(Eclipse),java提供了强大的类库,帮助文档javadoc(详细解释了类库中每个类的用法)。三、java程序开发环境的配置:(1)安装配置JDK(java Development Kit)(2)提供了编译,运行java程序所需的各种工具和资源。(3)JDK的获取:Oracle官方网站(http:/www.oracle/com)下载安装JDK:双击安装.exe可执行文件,默认安装路径,安装jre,默认路径直接点击下一步,安装成功后点击完成。Bin中常用的javac.exe和java.exe分别对应java编译器和解释器,jre目录下的lib保存的是java运行时调用的相关类库文件。Path:配置jdk命令文件的位置,作用是用来设置操作系统寻找并执行应用程序的路径。配置操作系统去哪寻找java的编译器和解释器。Classpath:作用是这设置JVM在指定的目录中查找类文件,就是告诉系统去哪查找系统提供的类文件和用户自己生成的类文件。(4)环境变量的配置:1.设置path路径:我的电脑-属性-高级-环境变量-系统变量-path-选择我的电脑进入到2.设置classpath路径:新建-变量名classpath-进入jdk的安装目录,lib子目录,tools.jar和dt.jar,.;编写后的程序保存为.java,在dos环境下javac命令对源程序进行编译,命令的书写要求是:javac+空格+java源程序名称,注意:此处要写完整的名称包括文件名和扩展名。编译后生成字节码文件,java命令:java+空格+class文件名但不能带扩展名.classJava程序开发步骤:(1)源文件:.java (源文件扩展名)(2)编译:javac Test.java javac+空格+java源程序完整名称,包括扩展名(3)编译后:.class(生成文件)(4)运行:java Test (用java命令:java+空格+class文件名但不能带扩展名.class)Eg:public class Test /java程序的主体框架,class是java的关键字代表类,Test类名要与文件名一致 public static void main(String args) /main方法程序的入口,在java程序中,只能够存在一个main方法。 System.out.println(Hello World!); 在控制台输出信息的语句:(1)System.out.print() 输出后不换行(2)System.out.println()输出后换行,同时使用输出语句显示内容的时候,还可以借助t和n来实现输出格式的控制,t输出制表,间隔一个制表位,n输出换行,即输出后换一行。Eclipse,java开发集成开发环境(编辑、编译、解释、运行、调试等)Eclipse开发步骤:首先在eclipse下面创建一个java项目,然后在项目中创建并且编辑java源文件,eclipse会自动编译,最后运行java类。Eclipse快捷方式:(1)输入main,按Alt+?会显示main方法,按回车,自动输入public static void main(String args) (2)输出语句的快捷方式,输入syso,按Alt+?会自动输入System.out.println();Jdk帮助文档的作用反编译常用工具:.class反编译.java.java编译.class(1) jad:命令行操作(2) Front End:图形界面,引擎仍然是jad1、 jad反编译工具的使用:进入到命令行窗口模式,进入到jad安装目录,输入jad+空格+-s+空格+java+文件名.class2、 Front End反编译工具的使用:打开图形化界面操作窗口,选择要反编译的文件,选择打开就出现反编译锅的文件了,选择保存,就成为.java文件了。Java基础小结:Java发展简史Java版本:javaSE、javaEE、javaME分别针对不同的核心技术,java卡、平台关键JVMJava程序开发:开发环境JDK,源文件:.java;字节码文件:.classJava命令:(1)编译:javac 文件名.java (2) 执行:java 文件名Eclipse开发程序:设置好工作空间、创建工程,帮助识别编译错误,提高开发效率。Java反编译工具:.class文件转换回.java,工具:jad和Front End。Topic 2 数据类型与运算符专题内容:(理解)1、标示符、关键字和注释()概念及其作用2、java数据类型及其分类()3、常量和变量()作用及其分类4、基本数据类型的类型转换()自动类型和强制类型转换(运用)使用各种运算符进行运算()Java基本语法知识:1、 标识符:(1)定义:用于区别程序中的常量、变量、方法、类、接口或者包等等,为他们分别命名(2)命名规则:由字母、数字、下划线_或者美元符号¥组成;可由字母、下划线_或者美元符号¥开头,不能以数字开头;不能与关键字、布尔值(true、false)、null同名;区分大小写,没有长度限制,坚持见名知义原则(可读性好)。注意:(1)Java也可用中文开头,但不建议这么做(3) 为什么标识符不能以数字开头呢?原因在于如果一个标识符以数字开头,并且其他字符也都是数字的话,会分不清是变量名还是常量值。以字母开头就不存在这种情况了。3、 关键字:(1)程序中特殊用途的符号,由系统定义,有固定含义,程序员不能将其定义为标识符,否则会出现编译错误。注意:关键字全部是小写的(2)Java中的48个关键字:abstractassertbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforifimplementimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticstrictfpswitchsynchronizedsuperthisthrowthrowstransienttryvoidvolatilewhileTrue、false、null是关键字吗?不是,是系统定义的常量值,也不能用作标识符。Class、String、main是关键字吗?不是,小写的class是关键字,String是字符串的类名,main是程序的入口点。4、注释:也是调试程序是经常使用的一种方法。(1)对代码中类、变量、方法、语句等进行解释说明的文字(2)注释是给程序员看的,不是让计算机执行的,不会被编译(3)注释将提高代码的可读性、提高团队的合作效率、减少人员流动带来的损失(好的注释可提高软件的可读性、减少维护成本)(4)养成编写注释的习惯,边写代码边写注释(5)三种形式的注释:单行注释/ :只能书写一行的注释,用于对代码进行简单简要的说明,比如对变量的注释多行注释/*/ :可以书写人任意多行的注释,用于说明复杂的内容,比如复杂的程序逻辑和算法的实现原理等等。 文档注释 /* */ :java首先推出的注释类型,通过javadoc命令,从文档注释中提取内容,生成程序的API文档,该文档以HTML文件形式出现,与java帮助文档的风格完全一致。 二、数据类型1、基本数据类型:数字(1) 数值型包括整数类型(byte字节整型、short短整型、int基本整型、long长整型)(2) 浮点型(float、double)2、字符型(char):存储单个字符3、布尔型(boolean):用于表示逻辑上的真和假,1字节8位,4、引用数据类型:(1)类(class)(2)接口(interface)(3)数组基本数据类型取值范围:(1) byte占一字节8位,有符号整数,-128127;short 占2字节16位有符号整数,int占4字节32位有符号整数,long占8字节有符号整数。(2) char占2字节16位Unicode字符,065535。(3) float占4字节32位浮点数。(4) double占8字节64位浮点数。注意:(1)Char占2字节,采用Unicode字节编码,被称为统一编码,支持世界上所有语言的字符,所以java支持各种编码。(2)所有数据类型长度固定,不因为软硬件不同而变化。(3)String不是基本数据类型,是引用数据类型,是java提供的一个类。变量和常量:常量:程序运行中,其值不能改变。常量类型:1、 整型常量:整数,采用十进制、八进制、十六进制。对于超过int类型取值范围的大整数,系统不会自动当做long类型来处理,必须在整数的后面增加L或l作为后缀,才能作为你long类型,推荐用L。2、 浮点数常量:float(3.4f)2.4e3表示2.4乘以10的3次方。若希望把java中的一个浮点数当作float类型处理,必须加后缀F或f,java语言浮点型默认为double型的。3、 布尔常量:true表示真,false表示假,不能使用1和0替代,也不能用引号括起来。4、 字符常量:用单引号括起来。三种表示形式:一、普通字符常量,是用单引号括起来。二、转义字符常量eg:n表示换行, t表示按Tab键,b表示按退格键,(反斜杠),(单引号),”(双引号)。在java中表示、”、等已经作为特殊转义字符,包括符等等使用了,必须在增加一个。5、 字符串常量:使用双引号括起来的一串字符,作为特殊情况也可是一个字符或0个字符。6、 Null常量:表示引用变量保存的地址为空,还没有指向任何对象,可以把null常量赋给任意类型的引用变量,以后会经常用到。7、 符号常量:使用final定义符号常量。好处:修改简单方便。变量:程序运行中,其值可以改变的量。各种数据类型和引用数据类型均可以改变语法:修饰符 变量类型 变量名=初始值注意:变量必须先定义后使用,char数据类型可以当做int数据类型使用,但要在char字符类型范围内。各种数据类型都可以定义变量,基本数据类型均可以定义常量,引用数据类型只要String类可以定义常量,null常量可以赋值给所有的引用类型变量。三、类型转换:不同的基本数据类型之间进行运算时需要进行类型转换;除boolean类型之外,所有的基本数据类型进行运算时都要考虑类型转换。转换情景:算术运算时存在多种运算类型,赋值时,赋值符号两边的类型不同时需转换。转换方式:(1)自动类型转换:算术运算时,不同类型的操作数,首先自动转换为表达式中最高级别的数据类型,然后进行运算,结果为最高级别的数据类型。即低级别自动转换为高级别。(2)、强制类型转换:高级别类型复制个低级别类型时进行强制类型转换。可能会导致数据的丢失。转换方式:原类型=运算符(要转换的类型符号)赋值类型转换:低级别赋予高级别时自动转换,高级别赋予低级别时进行强制转换不仅基本数据类型可以进行类型转换,存在继承关系的引用数据类型也可以进行自动和强制类型转换。四、运算符:运算符:告诉程序执行特定的运算操作的符号1、 算术运算符:+、-、*、/、%、(1)、 /除法运算符:如果两个操作数都是整数,结果也是整数,会舍弃小数部分,如果两个操作数中有一个是浮点数,将发生自动类型转换,结果是浮点数,保留小数部分。(2)、%取模运算符,即求余,如果两个操作数都是整数,结果也是整数,如果两个操作数中有一个是浮点数,结果是浮点数,保留小数部分。注意:C语言中规定取模运算符两个操作数只能是整数,不能使浮点数;(3)、自增运算符:i+、+i的相同点在于都相当于i=i+1,不同点是i+先进行表达式运算再加一,而+i是先加一再进行表达式运算。但若i+或+i不是表达式的一部分,而是全部时,两者没有任何区别,只能变量进行自增和自减,常量不行、表达式也不行。(4)、+加法运算符除了可以用作加法符号,也可作为字符串相连的符号。2、 赋值运算符:= 用于给变量指定变量值,复合赋值运算符+=、-=、*=、/=、%=,eg:i=i+j可以替代为i+=j,推荐使用后者,具有更好的性能。3、 关系运算符:也称为比较运算符,用于比较变量或常量的大小,运算结果只能是真或假,即boolean值true或false。共有6种关系运算符:=(判断是否等于)、!=(判断是否不等于)、(大于)、=(大于等于)、(大于)、=(大于等于)、(大于)、=(大于等于)、&、|、&、|(3)&与&的区别:当短路与的左边为false时,右侧的表达式对结果没有影响,即不会计算其右边的表达式,左false则false,而&无论任何情况,两边的表达式均会参与计算。5、 位运算符:按位与&(两个操作数都是1,结果才为1),按位或|(两个操作数一个是1,结果为1),按位异或(两个操作数相同,结果为0,不同为1),按位取反/非(操作数为1,结果为0,操作数为0,结果为1),左移(左边空位补最高即符号位)(所有的二进制位向右移动2位,最低两位溢出丢失,空出的高位一律补充和最高位数相同的数字),无符号右移(左边空位补0).注意:对操作数以二进制为单位进行运算。位运算的操作数是整型数,包括int、short、long、byte、和char。位运算结果也为整型数,包括int、long。如果操作数是char、byte、short,位运算前其值会自动晋升为int,运算结果也为int。所有位运算结果不可能是char、byte、short。一个整数每向左左移(右移)1位即扩大(缩小)2倍,前提是移出位数不包含有效数字。位运算具有更高的速度和效率。6、 条件运算符:?和:组成,连接3个操作数,是java中唯一的三目运算符,条件?表达式1:表达式2执行过程是先对条件进行判断,若结果为真,返回表达式1的值,若结果为假,返回表达式2的值。四、运算符的优先级和结合性优先级别最低的是赋值运算符包括一系列的复合赋值运算符,其次是条件运算符,括号优先级最高。单目运算符包括、+、-优先级别相同,都很高。可以通过()控制表达式的运算顺序。总体而言,算术运算符关系运算符逻辑运算符运算结合顺序大多数是从左向右,从右向左结合的只有赋值运算符、三目运算符和单目运算符。总结:定义标识符时一定要坚持见名知义原则。Topic 3 Switch语句只能处理等值判断,而多分支if语句区间等值判断都适用;是基于一个表达式在多个选项中进行选择,此表达式必须产生一个枚举型或整数的结果.无须添加大括号,遇到break或执行完毕才退出程序.Do-while语句:上机练习:65分钟Ctrl + shift + o 导入资源Topic 4 数组一、 定义:数组是多个相同数据类型的组合,实现对这些数据的统一管理。数组中每个数据称为数组的一个元素。数组对应在内存中一段连续的空间,同时数组元素可以是基本数据类型,也可是引用数据类型,但同一数组必须是同一类数据类型。定义数组:数据类型 数组名;或 数据类型 数组名 ;前一种使用较常见。分配空间:数组名 = new 数据类型数组长度;注:(new关键字是用来实现为数组或对象分配),为数组分配内存空间必须同时指定数组的长度和类型,数组的长度是指分配的连续空间的个数,数组长度一旦定义就不许改变。获取数组的长度:数组名.length,为数组分配空间后,系统将自动为数组分配初始值。注:数组元素的类型是引用数据类型是,数组元素的初始值是null。定义数组和分配空间合二为一:数据类型 数组名 = new 数据类型 数组长度;定义数组是不指定长度,分配空间是指定数组长度,否则会出现编译错误。下标从0开始,可以大大简化代码,提高效率。初始化=定义数组+分配空间+赋值,就是定义数组的时候进行赋值操作,无需指定数组长度,长度由大括号后面的元素个数决定。遍历数组:长度固定,故用for循环遍历;另Arrays类常用方法:语法格式:void fill (array,val);面向对象面向过程:分析出解决问题所需要的步骤,然后按照这些步骤从上到下的顺序实现这些功能。对象就是真实存在,看得见的摸的着的东西。Modifier 访问修饰符,class 定义类的关键字,类名classname,定义类名的规范:有一个单词时单词首字母大写,合成词时,第二个单词首字母也大写创建对象用new关键字,调用对象和方法时用点.成员方法的构成定义成员方法:modifier return Type methodName(parameter list)/method body 方法的重载:方法名相同,参数项可以不同(即与访问修饰符无关,与返回值也无关,参数项不同是指参数的类型或个数不能相同)成员变量的类型:基本数据类型和引用数据类型(成员变量是定义在类中的变量,成员变量在整个类中都有效;定义在方法中的变量称为局部变量,只能在方法中才能使用)当成员变量与局部变量同名时,方法直接使用时使用的是局部变量,当方法想使用成员变量时,在该变量前加上this.变量名进行调用该成员变量。属性的初始化:构造方法保证字段能够被正确的初始化构造方法两大特性:名字与类名相同,且不能指定返回值类型何时使用构造方法:创建对象时通过new+类名()调用构造方法。事实上构造方法是有返回值类型的,它返回创建的新对象的引用,因为构造方法的返回值类型是确定的,为了避免程序员定义构造方法时造成不一致,才不允许在构造方法声明时指定返回值类型的。构造方法的重载:与普通方法的重载相同,都是要求方法名相同,参数项不同。封装封装的一般步骤:修改属性的可见性来限制对属性的访问(一旦类的成员变量被修改为私有的,就只能在类的内部对其进行访问),设置get和set方法,设置属性的存取限制定义包:package 包名定义包的语句必须放在java源程序的第一行。创建多层包:package 包名1.包名2.Java 中的继承:只支持单继承 满足is a 的关系子类继承父类的什么?注意:子类无法继承private修饰的属性和方法,无法继承父类的构造方法方法重写的继承条件下的构造方法的调用: 继承的向上转型是自动进行的,定义父类的对象,单实例化的却是子类, 向上转型是自动进行的,并且父类引用的类型变量,执行的是子类的重写后的方法,而不是父类自己的方法.经过向上转型后,虽然实例化的是子类,但类型是父类类型,只能调用父类具有的方法,不能调用子类中父类不存在的方法.向下转型就是将父类类型转换为子类类型,例如:Dog d = (Dog) pet;声明一个Dog类型的对象d,把pet赋给d,但要加一个(),因为向下转型时是不能自动完成转型的,需要进行强制类型转换.当把父类强制类型转换为子类后就可以访问子类特有的方法了.对象运行时出现两种类型:编译时类型(由声明该变量时使用的类型决定)和运行时类型(由实际赋给该变量的对象决定)多态:Instanceof运算符 在强制转换之前用instanceof运算符检查一下对象的真实类型,然后再进行相应转换,这样就避免异常情况的发生.有效提高代码的健壮性.执行时,判断对象是不是后面的类或子类、实现类的实例,返回值类型为boolean类型,是返回true,否则返回false。抽象类: 抽象类不能被实例化,子类如果不是抽象类,则必须重写抽象类中的全部抽象方法抽象方法没有方法体的面向对象程序设计的步骤:(1)根据需求描述,找出问题中的名词,名词找到后进行词语筛选,剔除无关不重要的词语,抽象出类.并找出该类的属性.(2)找出问题中的动词,确定类的方法.calRent(计算租金)leaseOutFlow()(3)针对系统所需要的类进行优化设计,优化设计分为两部分:设计类、设计方法(4)梳理运行过程,然后根据设计结果编写程序组织结构异常java.util.InputMismatchException 异常名称:输入类型不匹配java.lang.ArithmeticException: / by zero异常名称:算术异常(除数不能为0)java中若出现了异常,异常后的程序不会再执行。异常处理:try catch异常类的继承层次:必须在程序中捕获或处理。程序员可以不处理。RuntimeException代码放在Try块里执行效率会下降,因为你告诉虚拟机try块里的代码可能会发生异常,虚拟机就要消耗一定的资源来监控这段代码的执行,一旦发生了异常,java虚拟机就要捕获它,所以为了程序的运行小,运行效率尽量高一些,try块里应尽量放少

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论