




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java复习要点(2017)第一章:绪论Java发展史Java语言的创始人是James Gosling1995年,Sun公司正式推出Java并获得当年的十大优秀科技产品1999年,Java成为企业级应用开发平台。2009年,Oracle公司正式收购java的原开发商Sun,成为Java的拥有者。Java的7个主要特点:简单性 网络特性 多线程 面向对象 平台无关性 解释性 鲁棒性Java的classpath环境变量设置的方法、设置值和所起的作用设置方法:P3值:jdk安装路径/lib作用:JVM会在这些路径里搜索.class文件,得到要加载的类开发Java程序的三步流程:编辑、编译、运行,各自由什么工具完成。能举例说明编辑:任意文本编辑工具 Eg: notepad编译:javac编译器 Eg: javac foo.java运行:java虚拟机 Eg: java fooJava的工作原理:字节码与虚拟机机制,结合虚拟机的执行机制说明Java的解释性字节码(bytecode):class文件的编码,为平台无关的伪代码指令虚拟机:编译和运行Java程序所需要的各种命令与运行环境总称,由于字节码指令的集合模拟了一台虚拟的计算机,故称为虚拟机执行机制(P22):JVM从.class中加载字节码,进行合法性与安全性检测(数组越界等),然后解释执行代码(指令合法,翻译为机器代码供机器执行),或执行异常处理程序(指令非法)。不断重复直到程序结束。虽然有编译过程,但字节码的解释执行机制决定了Java是一种解释执行的语言。Java程序分为哪几种,分别是什么?两种:Applet 小应用程序 与 Application 应用程序第二章:结构化程序设计Java字符集采用的是Unicode字符集,它的特点是双字节长,可支持多种语言。其头128个符号与ASCII完全一致。判断一个字符是否可以用作Java标志符的首字符的规则 Java标识符必须以Java字母开头。Java字母:英文大小写,下划线,美元符,其他语言字母(例如汉字)程序性判断:Character.isJavaIdentifierStart(char ch)Java的关键字P27java数据类型 p41,J_Swap例程通过使用a=ab b=ab a=ab从左到右三条语句,实现互换P61.8.10 结构化程序设计方法Java结构化程序设计采用三种基本控制结构进行设计:顺序/选择/循环结构思想:自顶向下,通过简单的规则不停分拆到语句层面为止分拆方法:(P57)1)任意程序都可以用一个矩形框来表示,前面和后面加上开始与结束2)流程图中的矩形框可以用任意多个串行的矩形框表示3)矩形框也可以用控制结构流程图来替代:4)不停应用上述2),3),直到程序设计结束第三章:面向对象程序设计类的修饰词可以包括public abstract final strictfp等。各自的含义。无修饰词的含义P88类的定义格式: class 类名 extends 父类implements 接口1,接口2修饰词:权限修饰词:非内部类型只有 public/无,内部类型有public protected private 无 publicprotecteddefault(无)private同类同包子类所有其他类 权限修饰词的限制,即从左边的位置能不能访问到被修饰的东西特殊修饰词:static final abstract strictfpstrictfp:要求所有计算严格遵循IEEE754标准abstract:声明抽象类,禁止new,允许编写抽象方法final:禁止继承static:(仅内部类)静态内部类,断开与外部类具体对象关系无修饰词,即默认访问权限,同包才能访问域的修饰词包含:public protected private static final transient volatile。各自的含义。P88域的定义格式: 类型 名字/初始化变量列表;修饰词:权限修饰词:public protected private 无 ,作用同上其他修饰词:final static transient volatile final:只可在声明/构造函数中初始化一次static:静态变量,所有该类对象共用一个transient:禁止该域被序列化volatile:禁止JVM访问优化,保证多线程同步方法的格式与修饰词的含义。P88方法的定义格式: 返回类型 名字(参数类型 参数名称.) throws 异常声明修饰词:权限修饰词:public protected private 无 ,作用同上其他修饰词:final static abstract strictfp synchronized final:禁止子类覆盖static:静态成员,与对象无关abstract:抽象方法,交由子类实现strictfp:严格遵循IEEE754synchronized:同步方式执行,必须获得对象锁类的构造方法的3个特点。P651.与类名相同2.无返回值类型3.任何一个类都有构造方法父类构造方法与子类构造方法之间的关系。在子类构造过程中,无论是以super(.)的形式在第一行显式调用或JVM强制在子类构造函数第一行进行的隐式调用,父类的构造函数会在子类一切构造行为开始前被调用类的实例对象的生命周期P66JVM提供空间-父类构造-定义初始化语句赋值-构造函数-可用状态-所有引用解除-垃圾-finalize-回收垃圾回收机制的原理与相关方法:System类中的public static void gc(),Object类中的protected void finalize() throw Throwable及其作用。System.gc() 建议JVM进行内存回收,不一定进行finalize() 在对象被回收时可能会被调用(一般GC时会被调用,但虚拟机关闭时不会),sun建议不要依赖这一方法解释P68示例:J_Finalize面向对象的三大特征分别是:P70继承性,多态性,封装性子类构造方法隐含对父类构造方法调用可能产生的语法问题与修改方法。如果父类没有无参构造就会产生问题,显式传参调用即可子类与父类对象进行类型转换的规则(3个)P72子类变量可以隐式转换成父类父类变量,如果指向的是一个子类对象,那么就可以显式转换成子类,如果不是子类对象而试图转换会报运行时错误。没有继承关系而试图转换的,会发生编译错误。instanceof运算符的作用。P73a instanceof B,无论a的类型如何,如果变量a指向的是类B的对象,就返回true,否则返回false注:如果类B继承类A,那么类B的对象也能叫类A的对象,隐式类型转换静态多态性与动态多态性的区别(overload与overwrite)静态多态性:通过不同的参数数量/类型/顺序让同一函数名展现出不同的行为动态多态性:子类通过编写除权限修饰词(等于广于父类版本)不同外其余完全相同的非静态方法,覆盖父类中的对应函数。一个可以在编译时确定,另一个必须在运行时确定。一个不一定和继承体系有关,另一个必须与继承体系有关能举例说明动态多态性的优点与实现方法。(结合要点29)优点:更好的扩展性,更低的耦合,新增数据类型不需要修改既有代码super的三种用法P791)非静态方法中,访问父类型成员域 super.x2)非静态方法中,访问父类型成员方法 super.x()3)构造函数中调用父类构造方法 super(.)包起什么作用,如何定义,如何编译和运行有包的代码(P80)注:编译器会将编译结果放入包名指定的目录路径下,例如指定了包com.foo的文件编译结果会存在com目录里的foo目录里,但不能直接进去执行,还是要在根目录,即-d的位置执行作用:将相关类和接口封装在包里,更好地管理已经开发的代码定义:package 包名,即package com.foo;编译:需指定 -d 参数,即java -d . main.java,另外需要注意被依赖的类必须先编译运行:若欲运行包内类的main函数,需要写全名,即java com.foo.main,否则无额外要求封装性是通过访问控制来实现的。访问控制的四个级别见上面的修饰词内容非内部类的访问控制有两种,类成员的访问控制有四种。接口的定义格式与特点。P94格式: interface 接口名 extends 接口列表可用修饰词:权限修饰词,strictfp,abstract,其中abstract会强制拥有特点:强制性abstract,interface关键字接口中成员域都具有public,static和final属性(P95)接口中成员方法都具有public 和 abstract属性 (P95)接口与抽象类的区别:(P95)1.语义不同,接口不是类,不是一个“东西”2.成员域和方法自动拥有上述修饰词,抽象类不会自动增加3.抽象类可以有可变域,接口不能有4.抽象类可以有具体方法,接口不能有具体方法内部类分为实名内部类与匿名内部类。非静态(static)内部类中含有的静态属性域必须具有final属性。非静态(static)实名内部类中不能含静态方法。(P97)注:找了一下资料,这个的原因和JVM运行机制有关。内部类在一定程度上可以认为是成员。JVM在加载类的时候只会加载与初始化static成员,例如成员域,方法和静态内部类。非静态的东西会被推迟到对象创建时加载和初始化。这样子,非静态内部类的东西只会在创建外部类对象时才会被加载和初始化,而static要求无论有没有对象,都能被访问,使得这个内部类必须要被加载,引起矛盾。内部类在外部类之外的类名字为:在外部类之外建立内部类对象的格式是:(P97)类名字: 外部类名.内部类名创建:(外部类里直接new即可,对在其他类里:)静态版本:new 外.内(); Eg: new OuterClass.InnerClass(); 动态版本: 外.new 内(); Eg: OuterClass.new InnerClass(); 匿名内部类不具有类名,不能具有抽象和静态属性,不能派生子类(P100)格式:new 父类/实现接口名(父类构造函数传参)类体匿名与实名的互相转化(P101-P104)直接提取即可,注意extend和implements的区别this和super对于引用域和方法的作用(P108代码)本地变量可以“覆盖”类成员,子类成员域可以“覆盖”父类成员,被覆盖的域/方法可以用this./super.访问,this是当前对象引用,super是父类对象引用方法调用的参数为简单类型和引用类型的所产生的值传递效果的区别(P109-P113)本质上都是值传递,简单类型变量的值就是它本身,而引用类型变量的值是引用(指针)而已区别:函数内更改简单类型变量的值不会对函数外面有任何影响更改引用类型变量本身的值也不会有影响但对引用类型变量指向的类进行操作不会改变实参变量的值,但会改变其指向的对象P113的实例解释多态性。J_Shape接口定义了面积计算接口,而子类实现这个接口,用访问权限更宽的函数覆盖这一方法。在主函数的调用中,可以看到,虽然输出语句调用的都是从J_Shape类型变量调用这一接口约定的get_Area方法,但其结果是不同的,分别调用了对应子类的覆盖结果,这就是动态多态性。第四章:数组、字符串、向量与哈希表会画数组的存贮单元示意图(P122)会写二维数组的定义、建立、求和的代码二维数组新建:3种方法直接建立: new int22;逐级建立:a = new int2; a0 = new int2; a1 = new int2;初始化语句: a = 1,2,3,4;基本数据类型可通过String类的ValueOf()方法转换得到字符串表达。对于对象则可以调用其继承的基本根类Object中的toString()来完成。(p130-p131)String的实例对象中的字符序列无法修改(P131)P132 String中的format方法的特殊性。使用规则详见课本P132运算符+对操作数之一为字符串时所表达的含义。(P134)注意:必须有一方是字符串,而且计算是从左到右! 1+2+3 != 1 +2+3对字符串,直接将后者追加到前者结尾,形成新字符串,对余下类型,进行valueOf(基本类型)/toString(引用类型)转换成为string后再进行拼接把字符串转换成基本数据类型由包装类Byte Integer Long Double Float等中定义的parse系列方法完成(p138-p139)对于所有基本类型,都有对应的引用类型版本:基本类型引用类型byte BytecharCharactershortShortintIntegerlongLongfloatFloatdoubleDoublebooleanBooleanStringBuffer类提供可修改的字符序列缓冲区存贮和操作(P141)向量的特点:元素个数动态变化,元素必须为对象类型。(P147)向量建立过程与基本操作方法(P148)注意:容量不等于长度!空间扩展策略(当向量容量不够时新空间大小的值):如果容量增量为0:max(当前需要的新长度,当前容量*2)如果不为0:max(当前需要的新长度,当前容量+容量增量)构造:(不存在默认参数值,仅用于记忆)Vector(容量=10,增量=0)增加元素:boolean add(E obj) / void addElement(E obj) 追加到末尾boolean add(int index,E obj) / void insertElementAt(E obj,int index) 插入到位置修改元素:E set(int index,E obj) / void setElementAt(E obj,int index) 覆盖目标位置元素删除元素:void clear() / void removeAllElements()E remove(int index) /void removeElementAt(int index)boolean remove(E obj)/ boolean removeElement(E obj)信息查询:boolean contains(Object elem) 是否包含indexOf(Object elem,int fromIndex=0) 范围查找lastIndexOf(Object elem,int fromIndex=0) 范围查找E elementAt(int index) / E get(int index) 获取元素E firstElement() / E lastElement() 头尾查询int capacity() / int size() / boolean isEmpty() 长度信息setSize(int newSize) / ensureCapacity(int minCpacity) / void trimToSize() 长度控制 会使用Iterator迭代器来实现遍历访问(P149)Iterator iterator() 获得迭代器.next() 下一个元素.hasNext() 判断下一个元素存在Eg:Iterator iter = vector.iterator();while(iter.hasNext()System.out.println(iter.next();第五章:泛型、枚举与for语句的简化写法泛型可以减少数据的类型转换,提高程序的复用性。(P162)泛型定义语法(泛型类) class 类名 extends.implements.其中类型参数:类型变量符类型变量符 extends 父类型 (可为类,可为接口)类型变量符 extends 父类型1&父类型2. (只有一个能为类)定义一个支持任何数值类型的泛型类的语句是(P163),其中,T类型变量是抽象类Number的子类。定义枚举所使用的关键字是enum,成员称为枚举常量(p169).调用枚举类型的values()方法可以获得由所有枚举常量组成的数组。(P170)参考P173-P176.会针对数组和实现了遍历接口的对象改写简化的for循环简化for循环写法要求:数组类型 对象继承Iterable接口写法格式:for(类型 变量名:数组变量/Iterable实现对象变量).第六章:异常处理、递归和单体程序设计方法异常的概念P178。异常可分为受检异常与非受检异常。区别是:Java编译器会强制受检异常被处理(throws或者try-catch-finally),对非受检异常不要求 非受检异常包括运行时异常和错误。所有的异常类都是Throwable的子类。(P179)异常对象由throw语句抛出。异常处理的两种方法:捕获与转移(p181-P186)捕获:try-catch-finally转移:函数签名 throws单体设计模式使用的条件是(P191)会写两种实现方法(p191-P194)要求某一类只能有一个实例对象时示例的单体类为什么不能派生子类.(P194) 因其构造函数为私有,派生类若要存在,必须要能够显式访问构造函数java.lang.Runtime是一个典型的单体类,它提供查询运行环境,例如处理器个数,执行命令,内存查询功能。(P195)P199.8题第七章:文件与数据流抽象类java.io.InputStream与java.io.OutputStream定义了输入流和输出流的基本操作。P201例程。直接修改main()中mb_echo的参数为FileInputStream对象可实现文件流的读取和显示。PrintStream是System.out所属的类,是供字符串输出的字节流。提供了print/ln系列输出方法。(P207)实现了接口InputData的类有DataInputStream RandomAccessFile ObjectInputStream等三个。带缓冲的输入输出流类通过缓冲机制来提高读写效率(p214)带缓冲的读写器(字符流)例程。(P227)从控制台键盘读入数据的代码(P232)对象序列化代码(P237),总结描述实现对象序列化的基本方法(简化)。首先,一个对象必须实现接口Serializable(无需实现任何方法,仅为标记)才能被序列化序列化即为构造一个ObjectOutputStream,并调用其writeObject()进行序列化反序列化即为构造一个ObjectInputStream,并调用其readObject()进行反序列化File类的作用(P241)不涉及具体文件内容,对文件整体进行处理,获得其位置,权限等信息10.4题第八章:Swing图形用户界面程序设计1.顶层容器主要有3种是(P248)JFrame JApplet JDialog2.根据JDialog的构造参数model值的不同可建立模式和无模式两种对话框。这两种对话框的区别是(P253)模式(modal):即不能通过GUI操作父窗口非模式:可以操作父窗口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涂层后处理工安全生产月专项考核试卷及答案
- 风电机组机械装调工会议决议执行考核试卷及答案
- 买姜井协议书
- 纳卡停火协议书
- 防渗墙工岗位标准化技术规程
- 公司验房师应急处置技术规程
- 2025租赁合同简化版范本
- 2026届河北省秦皇岛市抚宁区台营区数学七上期末检测模拟试题含解析
- 2025船舶租赁合同范文
- 2025合同模板股权转让合同(公司扩张使用详细条款)范本
- 2025河南省文化旅游投资集团有限公司权属企业社会招聘52人笔试备考题库及答案解析
- 2025年河北水利发展集团有限公司公开招聘工作人员41名笔试参考题库附带答案详解
- 胰岛素泵护理查房
- 2025年资格考试-WSET二级认证历年参考题库含答案解析(5套典型题)
- 安徽省皖豫名校联盟2024-2025学年高三上学期10月月考历史试题
- (新教材)2025年秋期人教版一年级上册数学全册核心素养教案(教学反思无内容+二次备课版)
- 2024-2025学年浙江省宁波市金兰教育合作组织高一下学期期中联考历史试题(解析版)
- 临汾市尧都区招聘专职社区工作者笔试真题2023
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- 《药物化学》课件-苯二氮䓬类药物
- 城市轨道交通员工职业素养(高职)全套教学课件
评论
0/150
提交评论