Java复习笔记(Wust)
程序员文章站
2022-06-23 11:21:34
第一章.Java概述JDK工具箱与JVMjavac:用于将java源文件编译为字节码保存在.class文件中java:用于运行.class字节码文件或jar文件java通过JVM技术实现平台无关Java类库java.io凡是需要完成与操作系统有关的较底层的输入/输出操作的java程序,都需要引入java.iojava.lang包含基本数据类型,数学方法,String,Thread(线程),Expection(异常处理类)等。java,util工具包,包含...
第一章.Java概述
JDK工具箱与JVM
- javac:用于将java源文件编译为字节码保存在.class文件中
- java:用于运行.class字节码文件或jar文件
- java通过JVM技术实现平台无关
Java类库
库名 | 作用 |
---|---|
java.io | 凡是需要完成与操作系统有关的较底层的输入/输出操作的java程序,都需要引入java.io |
java.lang | 包含基本数据类型,数学方法,String,Thread(线程),Expection(异常处理类)等。 |
java,util | 工具包,包含了一些实用工具,如处理时间的Date类,处理变长数组的Vector类,实现集合Collection接口及其子接口和子类等 |
java.awt | java的GUI库,包含图形界面组件,低级绘图操作,布局管理和事件处理模型 |
java.swing | GUI库 |
java.sql | 实现JDBC的类库,利用这个包可以使java程序具有访问不同数据库的功能 |
java.net | 实现网络功能的类库 |
- 程序运行时,系统会自动引入java.lang包
- 在同一个包中的类可以相互访问,访问其他包中的类则需要import引入
其他
- main方法是程序运行的入口,可接受命令行参数
- 每个类编译完成后,会生成各自的字节码文件
- 同一个java源文件中,最多包含一个用public修饰的类
- public修饰的类必须与源文件名同名(大小写敏感)
- Java标准版主要用于桌面级的应用和数据库的开发
第二章.Java语言基础
标识符定义
- 标识符开头必须是①下划线_ ②字母 ③美元符$ 后面接这三种类型或数字
- 关键字和保留字都是小写,且无sizeof运算符
数据类型
1.基本数据类型
8种基本数据类型:
byte,short,int,long(整型)
float,double,(浮点型)
char,boolean。
- float类型后面必须加f,否则表示double类型。
- 对于基本数据类型的变量,内存空间中存放的是它的值。
- 数字值不能自动转换为布尔值。
2.引用数据类型
- String类型
- StringBuffer类型
- StringTokenizer类型
- String类型创建后不能再做修改,StringBuffer类型可扩充,可修改,是可变长的字符串。
4.数组
声明方法:int [] arr =new int[5], length属性表示数组长度。
3.与日期、时间、数学相关的类
- Date类,默认为时间戳。
- 格式化类:DateFomat(抽象类),SimpleDateFormat(前者的子类)
- Math类,提供了一些数学操作。
Java内置异常
- 异常处理就是异常发生后,应用程序能够转移到一个安全状态,使得系统能够恢复控制权或降级运行或正常结束程序运行
- 所有异常皆继承自Throwable类,若提问直接继承,则是Exception类
第三章.Java面向对象的程序设计
包与类
- 一个源文件中最多只能由一条package语句
- 如果源文件中包含了多个类或者接口的定义,则会编译成多个类或接口对应的.class文件,它们都位于相同的包
类的构造方法
- 构造方法:1.与类同名 2.不能声明返回类型 3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承,所以用final和abstract修饰没有意义
- 在匿名类或内部类中使用this,指的是匿名类或内部类本身,要想调用外部类,则必须使用 外部类.this 这种方法
访问权限控制
控制符 | 修饰的元素 | 可访问范围 |
---|---|---|
public | 类,变量和方法 | 所有类 |
default | 类,变量和方法 | 同一个包中的类 |
protected | 变量和方法 | 同一个包中类,所有子类 |
private | 变量和方法 | 仅本类 |
继承
- Java不支持多继承。
- 子类将继承父类非私有的属性和方法(考试按这个来)。
- 覆盖:父类与子类之间,重载:同一个类中。
- 覆盖和重载都要求必须同名,final修饰的方法,重载√ 覆盖×。
- 子类方法覆盖时改变不了方法的访问权限。
- super可以引用子类的直接父类,通常用来引用父类的成员变量或方法(前提是成员是public类型)
接口与抽象类
- 抽象类可以有构造方法,但构造方法不可被声明为抽象方法。
- 抽象类不可被实例化,即不能new,但可声明对象。
- 抽象类可以有实例变量和具体方法。
- 抽象类不能用final修饰。
- 抽象类的子类必须覆盖父类的所有抽象方法才能变成非抽象类。
- abstract不能与private,static,final并列修饰同一个方法,因为不能被继承或者覆盖
- 接口是一种特殊的抽象类,当抽象类所有方法都是抽象时即可将class变为interface,接口中所有方法都默认为public abstract类型。
- 一个类可以实现多个接口。
- 实现接口必须给出接口中所有方法的方法体。
- 接口中不能定义静态方法,但能定义常量值,常量值默认使用public abstract final修饰的。
类的高级特征
- static静态代码块只会初始化一次,就是类被装载时。
- static方法仅能调用其他静态方法或静态变量,因为调用其他非静态方法需要实例对象,因此需要构造函数,可是static初始化时构造函数还未初始化,因此static方法中不能用this或者super。
- final修饰的类不可被继承,修饰的方法不可被覆盖,修饰的变量初始化后不允许再改变。好处:把方法锁定,防止任何继承类修改它的意义和实现。
第四章.Java进程与多线程
线程创建与启动
- 进程中可有多个线程,每一个线程可以看成由代码、一个虚拟CPU以及数据三部分组成。
- 创建线程的方法有两种:①继承Thread并覆盖run()方法 ②实现Runnable接口创建并重写run()方法。
- 启动线程:先实例化一个有run方法的类,然后new 一个thread对象,用该类去实例化此thread对象,然后此thread对象调用start()方法。
线程操作与协作
- 线程休眠:run方法中调用Thread.sleep(毫秒数)
- 线程协作:synchronized可占有某个对象obj,此对象可以应用wait阻塞线程,obj.wait()。应用notify方法唤醒wait队列中的第一个线程,obj.notify()。应用notifyAll方法唤醒队列中所有线程。
第五章.Java集合框架和泛型
- Map接口是间接继承自Iterable。
- Map有几个重要方法,①ketSet():返回key的集合 ②put():存放键值对 ③get():获取键对应的值 ④size():统计元素个数
第六章.JavaUI设计及图形功能
布局管理器及常用布局
- BorderLayout(默认布局):东南西北中位置布局。
- FlowLayout:从左往右排列。
- GridLayout
- 空布局
容器
- Frame,Applet,Dialog都是顶层容器,不需要其它组件的支撑。
- 其它都是非顶层组件,需要依赖顶层容器才能显示。
第七章.Java I/O操作与文件读写
I/O分类
- 流分字节流和字符流。
- 字节流通常用于处理二进制数据,如图像数据流,基本单位为字节,默认不适用缓冲区。
- 字符流只能用于处理文本数据,基本单元为Unicode(两个字节),使用缓冲区。
文件类File及Java文件读写
- 类File设置了一个静态成员变量File.separator表示路径分隔符,Windows下为’\’,Unix下为’/’
字节流
- 获取字节流方法:read()
- 获取流长度方法:available()
- 写入字节流方法:write()
- 强制发送缓冲区数据方法:flush()
字符流
- 同字节流,字符流基类Writer与Reader也封装了read()与write()方法。
对象序列化
- 实现了Serializable接口的类的对象可序列化,实现对象的持久化。
- Serializable接口没有定义任何方法。
- 将对象流还原为对象的过程,称为反序列化。
第八章.Java网络编程
网络协议
- TCP/IP连接是一种传输层协议,底层实现了该协议可以进行网络通讯。
- HTPP是一种应用层协议,应用层协议还有:FTP(文件传输协议),TELNET(远程登录协议)等。
Socket及其工作原理
- Socket(套接字)是支持TCP/IP协议网络通信的基本操作单元。
- 运行于客户端的Socket称为Client Socket,运行于服务器端的叫Server Socket,必须有一对套接字才能建立Socket连接。
- 使用客户端套接字 Socket创建对象时,需要指定服务器主机名称和端口。
第九章.JDBC编程
连接MySQL数据库
-
注册数据库驱动程序,建立连接。
用java.lang.Class里的静态方法注册MySQL驱动。
使用DriverManager.getConnection()创建Connection接口对象。
-
根据连接对象,创建数据库操作的代理对象(也称命令对象)。
对Conncetion接口类型的对象应用方法createStatement()得到Statement接口类型的对象,应用preparedStatement()得到PrepareStatement接口类型的对象。
-
根据命令对象,进行数据库的CRUD操作。
-
关闭数据库连接资源。
增删改操作
- 与查询操作不同,增删改操作不会返回一个结果集ResultSet,而是返回一个整数表示当前操作所影响的记录行数。
- 方法execute(“SQL语句”)将返回boolean类型,表示操作是否成功。
- 方法executeUpdate(“SQL语句”)将返回int类型,表示受影响的行数。
查询操作
- executeQuery(“SQL语句”)将得到ResultSet接口类型的对象(结果集)。
- 结果集有一个游标,初始位于第一行之前,使用next()方法移动到下一行,没有下一行返回false。
使用预处理封装类
- 使用Statement类型的命令对象,每次都会重新对SQL语句编译再执行,而PreparedStatement是预编译类型,且允许建立带有占位参数的SQL语句。
QL语句")将返回int类型,表示受影响的行数。
查询操作
- executeQuery(“SQL语句”)将得到ResultSet接口类型的对象(结果集)。
- 结果集有一个游标,初始位于第一行之前,使用next()方法移动到下一行,没有下一行返回false。
使用预处理封装类
- 使用Statement类型的命令对象,每次都会重新对SQL语句编译再执行,而PreparedStatement是预编译类型,且允许建立带有占位参数的SQL语句。
博 --2020.12.2
本文地址:https://blog.csdn.net/PengYuYan__/article/details/110497422
上一篇: java实现打字游戏小程序
下一篇: JS正则表达式验证数字(非常全)