期末复习Java语言核心知识_第1页
期末复习Java语言核心知识_第2页
期末复习Java语言核心知识_第3页
期末复习Java语言核心知识_第4页
期末复习Java语言核心知识_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

Java作为面向对象编程的经典语言,其核心知识体系贯穿了从基础语法到高级特性的多层逻辑。期末复习阶段,需以“体系化理解+实战化巩固”为核心,梳理关键模块的知识脉络,攻克易错点与重难点。本文将从基础语法、面向对象特性、核心类库、高级特性四个维度展开,结合复习策略与典型场景,助力高效备考。一、基础语法:筑牢编程逻辑根基基础语法是Java代码的“骨架”,需重点掌握变量、数据类型、运算符、流程控制与数组的核心规则。1.数据类型与变量基本数据类型:`byte`(字节)、`short`(短整型)、`int`(整型)、`long`(长整型)、`float`(单精度浮点)、`double`(双精度浮点)、`char`(字符)、`boolean`(布尔)。需注意类型转换:自动转换(小范围→大范围,如`int→double`)与强制转换(大范围→小范围,需显式强转,可能丢失精度)。引用数据类型:类、接口、数组,存储的是对象的内存地址。`null`表示引用未指向任何对象,需避免空指针异常(`NullPointerException`)。2.运算符与表达式算术运算符:`+`(注意字符串拼接的特殊逻辑,如`"a"+1`结果为`"a1"`)、`-`、`*`、`/`(整数除法取商,如`5/2=2`)、`%`(取余)。逻辑与位运算符:`&&`(短路与,左为`false`则右不执行)、`||`(短路或,左为`true`则右不执行)、`&`(位与,不短路)、`|`(位或,不短路)、`^`(异或)、`~`(取反)。赋值与比较运算符:`=`(赋值)、`==`(基本类型比值,引用类型比地址)、`equals()`(对象内容比较,需重写以实现业务逻辑,如`String`的`equals`)。3.流程控制分支结构:`if-else`(多条件判断)、`switch`(JDK12+支持表达式,case值需为常量,字符串、枚举也可作为case)。循环结构:`for`(普通循环、增强for遍历数组/集合)、`while`(先判断后执行)、`do-while`(先执行后判断,至少执行一次)。需注意循环终止:`break`(跳出当前循环)、`continue`(跳过本次循环)。4.数组初始化:静态初始化(`int[]arr={1,2,3};`)、动态初始化(`int[]arr=newint[5];`)。操作:数组长度为`arr.length`(属性,非方法),遍历需注意索引范围(`0~length-1`),避免数组越界异常(`ArrayIndexOutOfBoundsException`)。二、面向对象:理解Java的设计灵魂面向对象的三大特性(封装、继承、多态)是Java的核心设计思想,需结合代码场景深化理解。1.封装:隐藏细节,暴露接口访问修饰符:`private`(类内可见)、`default`(包内可见)、`protected`(包内+子类可见)、`public`(全局可见)。通过`private`修饰属性,提供`getter/setter`方法封装数据,避免直接操作属性。this关键字:指代当前对象,可用于区分成员变量与局部变量(如`=name;`),也可调用构造器(`this(参数)`,需放在构造器首行)。2.继承:代码复用,扩展功能关键字:`extends`,子类继承父类的非私有属性与方法。Java为单继承(一个类只能继承一个父类),但可通过接口实现“多继承”效果。super关键字:指代父类对象,用于调用父类的构造器(`super(参数)`,首行)、属性(``)、方法(`super.method()`)。方法重写(Override):子类重写父类的方法,需满足“两同两小一大”:方法名、参数列表相同;返回值类型子类≤父类(JDK5+支持协变返回);抛出异常子类≤父类;访问权限子类≥父类。3.多态:动态绑定,灵活扩展实现条件:继承/实现、方法重写、父类引用指向子类对象(如`Animala=newCat();`)。编译时与运行时:编译时调用父类方法,运行时动态绑定子类重写的方法(如`a.eat()`实际执行`Cat`的`eat`方法)。重载(Overload):同一类中,方法名相同、参数列表不同(参数类型、个数、顺序),与返回值、访问权限无关。4.抽象类与接口抽象类:用`abstract`修饰,包含抽象方法(无方法体)与普通方法,不能实例化,需子类继承并实现抽象方法(除非子类也是抽象类)。接口:用`interface`修饰(JDK8+支持默认方法`default`、静态方法`static`),仅含抽象方法(JDK7-)或可包含默认/静态方法(JDK8+),类可实现多个接口(`implements`)。区别:抽象类是“is-a”关系,接口是“has-a”或“can-do”关系;抽象类有构造器,接口无;抽象类单继承,接口多实现。三、核心类库:高效利用Java工具集Java提供了丰富的类库,需重点掌握集合、异常、IO、多线程等核心模块。1.集合框架(java.util)集合用于存储对象,分为单列集合(Collection)与双列集合(Map)。List:有序、可重复,常用实现类:`ArrayList`:基于数组,查询快、增删慢,线程不安全。`LinkedList`:基于双向链表,增删快、查询慢,可作为栈、队列使用。Set:无序、不可重复,常用实现类:`HashSet`:基于哈希表,无序,依赖`hashCode()`与`equals()`去重。`TreeSet`:基于红黑树,有序(自然排序或比较器排序)。Map:键值对,键唯一,常用实现类:`HashMap`:基于哈希表,无序,JDK8+为数组+链表+红黑树,线程不安全。`TreeMap`:基于红黑树,键有序。遍历与操作:List可用`for`、增强`for`、迭代器(`Iterator`);Map可用`entrySet()`(效率高)或`keySet()`遍历。2.异常处理(java.lang.Exception)分类:编译时异常(受检异常):如`IOException`,必须处理(try-catch或throws)。运行时异常(非受检异常):如`NullPointerException`、`ArithmeticException`,可处理也可忽略。处理流程:`try`(监控代码)→`catch`(捕获异常,可多个,需从小到大排列)→`finally`(无论是否异常,都会执行,常用于释放资源)。关键字:`throw`(抛出异常对象,如`thrownewRuntimeException("错误")`)、`throws`(方法声明抛出异常,如`publicvoidtest()throwsIOException`)。3.IO与NIO(java.io/java.nio)传统IO:字节流:`InputStream`/`OutputStream`(抽象类),子类如`FileInputStream`/`FileOutputStream`(操作二进制文件)。字符流:`Reader`/`Writer`(抽象类),子类如`FileReader`/`FileWriter`(操作文本文件)。缓冲流:`BufferedInputStream`/`BufferedReader`,提高读写效率。NIO(非阻塞IO):通道(`Channel`):双向,如`FileChannel`、`SocketChannel`。缓冲区(`Buffer`):如`ByteBuffer`、`CharBuffer`,数据读写的容器。选择器(`Selector`):单线程管理多个通道,实现非阻塞IO。对比:IO是流模型(单向),NIO是缓冲区模型(双向);IO阻塞,NIO可非阻塞。4.多线程(java.lang.Thread/java.util.concurrent)线程创建:继承`Thread`类:重写`run()`方法,调用`start()`启动。实现`Runnable`接口:实现`run()`,通过`newThread(runnable).start()`启动。实现`Callable`接口:通过`FutureTask`包装,可获取返回值(`Vcall()`)。线程状态:新建(`NEW`)、就绪(`RUNNABLE`)、运行(`RUNNING`)、阻塞(`BLOCKED`)、等待(`WAITING`)、超时等待(`TIMED_WAITING`)、终止(`TERMINATED`)。同步机制:`synchronized`:同步方法(锁对象为`this`或`Class`)、同步代码块(指定锁对象)。`Lock`接口:如`ReentrantLock`,需手动加锁(`lock()`)与解锁(`unlock()`),支持公平锁、条件变量。线程池:`ExecutorService`,通过`Executors`创建(如`newFixedThreadPool`、`newCachedThreadPool`),或手动配置`ThreadPoolExecutor`,避免线程频繁创建销毁。四、JVM基础:理解Java的“幕后管家”JVM是Java跨平台的核心,期末需掌握类加载、内存模型与垃圾回收的核心概念。1.类加载机制类加载过程:加载(读取字节码到内存)→连接(验证、准备、解析)→初始化(执行静态代码块、静态变量赋值)。类加载器:引导类加载器(加载JDK核心类)、扩展类加载器(加载`lib/ext`)、应用类加载器(加载应用类),支持双亲委派模型(子类加载器先委托父类加载,避免类重复加载)。2.内存模型JVM内存分为堆(存储对象、数组,垃圾回收的主要区域)、栈(存储方法栈帧,包含局部变量、操作数栈等)、方法区(存储类信息、常量、静态变量,JDK8+为元空间,使用本地内存)、程序计数器(线程私有,记录下一条指令地址)。3.垃圾回收(GC)回收对象:无引用指向的对象(通过可达性分析,根节点如栈帧变量、静态变量等)。回收算法:标记-清除:标记垃圾→清除,产生内存碎片。复制:将存活对象复制到新区域,无碎片,空间利用率低(如新生代的Eden→Survivor)。标记-整理:标记垃圾→移动存活对象→清除,无碎片,效率低(如老年代)。GC收集器:Serial(串行)、Parallel(并行)、CMS(并发标记清除)、G1(区域化分代,面向服务端)。五、复习策略:从“知识记忆”到“能力输出”期末复习需结合分层突破+实战验证,避免死记硬背。1.分阶段复习基础巩固期(1-2天):梳理语法规则、面向对象特性,通过“代码填空”“语法辨析”类题目强化记忆(如区分`==`与`equals`、重写与重载)。模块突破期(3-4天):针对集合、多线程、IO等模块,绘制“知识脑图”(如集合的实现类对比、线程状态流转图),结合源码分析核心类(如`ArrayList`的扩容机制)。模拟实战期(2-3天):完成往年真题、模拟题,重点关注“综合应用题”(如设计多线程同步案例、集合操作优化),分析错题的“知识盲区”(如异常处理的执行顺序、JVM内存泄漏场景)。2.实战技巧代码驱动记忆:将知识点转化为“最小可运行代码”(如写一个`HashMap`遍历的示例、自定义异常的抛出与捕获),通过调试理解执行流程。对比归纳法:整理易混淆点(如`ArrayList`与`LinkedList`、`synchronized`与`Lock`、IO与NIO),用表格或思维导图呈现差异。错题本+场景还原:记录错题时,不仅写答案,还要分析“错误原因”(如对多态的运行时绑定理解错误),并还原“代码场景”(如父类引用调用子类方法的实际执行逻辑)。3.资源推荐教材:《Java核心技术(卷I)》(基础语法、面向对象)、《EffectiveJava》(进阶实践,时间充裕可精读)。在线工具:LeetCode(Java专项题库,练手算法与集合操作)、JavaVisualVM(可视化分析JVM内存与线程)。文档:Oracle官方文档(权威语法参

温馨提示

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

评论

0/150

提交评论