目录

JAVA复习-期末重点考点总结

JAVA复习 (期末重点考点总结)

第一章 Java语言概述:

Java虚拟机的作用 :负责执行指令,还要管理数据,内存,存储器

Java运行机制 :将java源程序编译成 字节码文件 ,然后由java虚拟机来执行这个 字节码文件

https://i-blog.csdnimg.cn/blog_migrate/d6e6cafd996590293e6e450eab0b8f35.png

JDK的配置:

Path :指定Java的 类路径

ClasspathJDK命令搜索路径

Java API各种包作用

Java.util 是JAVA的 utility工具包

java.lang 是JAVA的 language核心语言包

java.awt 是JAVA的 abstract window toolkit,抽象窗口工具包

java.applet创建APPLET的必须包

java.NETJAVA有关网络操作的包

java.ioJAVA的输入输出流的包

java.sqlJAVA的数据库操作包

javax.swing新的界面包

javax 开头的是 扩展包

Java程序的开发过程:编辑源码、编译、执行全过程,会用到的编译器、解释器程序是什么?

用到的JDK编译器:javac ; 解释器程序是:jdk或jre目录下bin目录中的java.exe文件

Java源文件的命名规则

https://i-blog.csdnimg.cn/blog_migrate/f33ef87db0794beca52eba2b6f8d9390.png


第二章 Java语言基础:

数据类型的分类 以及 各种数据类型占用长度 (常量使用 final 定义):

数据类型的分类:

https://i-blog.csdnimg.cn/blog_migrate/5b2686a55258ccb06761d4ba7fe4c3ba.png

各种数据类型占用长度

https://i-blog.csdnimg.cn/blog_migrate/600102bb213139f689121c51094d8f92.png

Java标识符的命名规则

只能用4种: 字符 美元符($) 下划线(_) 数字 , 但是 数字不能放在第一位

字符类型 与 整数之间的关系?

字符型数据在做数字运算时实际上是对字符本身对应的ASCII码进行相应的数值运算。

字符与字符串的区别:

Ascll :ASCII 只有 128 个字符,表示 英文字母的大小写、数字和一些符号

UniCode :Unicode就是将一些语言(汉字等)统一到一套编码格式中,通常两个字节表示一个字符,而 ASCII是一个字节表示一个字符

数据类型的转换:

自动类型转换

https://i-blog.csdnimg.cn/blog_migrate/dbf9e77ca5f2eee1a8fede2e0e963b13.png

强制类型转换:

https://i-blog.csdnimg.cn/blog_migrate/b4b9482cbd02ed45b21533f247604a55.png


第三章 面向对象程序设计基础:

类与对象的区别:

(1) 是一类事务,是根据一般性抽象出来的;例如:人; 交通工具。

(2) 对象是类的一个特例、实例 。例如:小轿车、卡车、公共汽车等。 对象通过new关键字,完成实例化 (例如: Student stu = new Student() ; stu 就是Student类的一个实例)。

(3) new关键字 ,其实本质就是 申请分配内存 ,使Student类中的变量、方法都对应分配的内存单元。

类的成员变量、局部变量的作用范围:

https://i-blog.csdnimg.cn/blog_migrate/9148b74f0015940f2c38a9cd7f5e19cc.png

类的成员方法定义、方法返回值、如何调用?

方法定义和方法返回值:

https://i-blog.csdnimg.cn/blog_migrate/8bc33e61666248eed676990eb68e61a7.png

方法调用的过程 ,其实就是 将实参赋值给形参 ,形参进入方法体内参与运算,最后返回结果的过程。

同一个类,可以创建多个对象,这多个对象之间是各自独立的

方法重载

是指在一个类中,有多个同名的方法,但它们的参数必须不同!参数不同可以是: 参数个数不同;或者个数相同时,参数类型不同。

方法重写

一个子类继承一个父类 的时候,可以 重写覆盖原来父类里面的方法 ,当然这个方法和父类的方法 名称一定要相同,参数也要相同

面向对象的 三特性?

封装性

https://i-blog.csdnimg.cn/blog_migrate/d137c67f82706bbfcb2b7e322e9d15ad.png

继承性

https://i-blog.csdnimg.cn/blog_migrate/4649977e659dea5b61d4c9231d0f0393.png

多态性

https://i-blog.csdnimg.cn/blog_migrate/f38f43d31bf3451e87b679f01b854040.png

Super :代表了 父类对象 ,因此可以 实现对父类成员变量、方法的访问

this :表示 当前对象this只能用于构造方法和实例方法中 !不能用于类方法(静态方法 - 有static限定词)。

例如

当this出现在 构造方法中 时, this代表的是,用此构造方法创建出来的那个对象;

当this出现在 实例方法中 时, this代表的是,调用此方法的那个对象;


第四章 数组与字符串:

一维数组的定义,如何去定义?有几种方法?

一般形式 : 数据类型 数组名[ ] = new 数据类型[数组容量];

Int scores[ ] = new int[10];

int[ ] scores = new int[10];

如何获取 一维数组 的 长度 ?

数组名.length

如何获取 二维数组 中的 行数 ?

数组名.length

如何获取 二维数组 中的 列数 ?

数组名[0].length

如何获取 二维数组 的 长度 ?

数组名.length * 数组名[0].length

**比较字符串中

和 equals 的区别**

https://i-blog.csdnimg.cn/blog_migrate/fe3bc2a8f2a48daec549ab9b312775d0.png

https://i-blog.csdnimg.cn/blog_migrate/ea83f3d1cdf381146dac25d034c21323.png

Split 的用法( . 和 | 分割时前面要用

https://i-blog.csdnimg.cn/blog_migrate/187ef7a2bee2d65f4ea26e8a702e89b2.png https://i-blog.csdnimg.cn/blog_migrate/e0d02ea79c81dbd5333b3a9384f60232.png

CharAT(下标从0开始)

https://i-blog.csdnimg.cn/blog_migrate/1dd6cba845144b173b089bf176c66137.png

怎么把字符串转成 整数 ?

Int x = Integer.parseInt(str);

https://i-blog.csdnimg.cn/blog_migrate/a30f49408b9cb5cfc518f4c674cae8a4.png 怎么把字符串转成 double型 ?

https://i-blog.csdnimg.cn/blog_migrate/03013794c8a6e77b861bf200257d1327.png

怎么把数值转成 字符串 ?

String s2 = String.valueOf(3000);

https://i-blog.csdnimg.cn/blog_migrate/f4eda9aca3685068b4ff0f336a923f6b.png

字符串怎么转为 字节数组 ?

byte b[ ] = “abcdefg”.getBytes();

(输出为ASCLL码)

https://i-blog.csdnimg.cn/blog_migrate/12099280432f44019fd4d7093415384b.png Pattern 和 Matcher 用法:

Pattern :用 compile 方法构造正则表达式模式对象

Matcher :Pattern类的Matcher方法构造匹配器对象

https://i-blog.csdnimg.cn/blog_migrate/d1d889aa49e7ddab5135a50a74ad5be4.png


第五章 图形用户界面设计:

awt 组件与 swing 组件的区别?二者关系?常用的是哪个?

swing 组件是 awt 的子类,

swing 有更强的实用性。

JFrame 是顶层容器JPanel 是中间容器JButton 等等其他的称为组件;

JFrame , JPanel , JButton 这3者是哪个包中的?它们之间是谁套着谁? Frame 、 Panel 、 Button 是哪个包的?

**JFrame

JPanel

JButton 三者属于 swing** 包中

JFrame 可以添加 中间容器组件Panel 可以添加 组件

FramePanelButton 属于 awt

界面布局类 有哪些? 各种布局的表现形式 是怎样的

了解五种布局方式:FlowLayout , BorderLayout , CardLayout , GridLayout , GridBagLayout。

FlowLayout 顺序放置 —- 从左到右、 从上到下, 居中setLayout( new FlowLayout() );

BorderLayout 整个窗体 ,分为5个区域—North、South、West、East、 Center

https://i-blog.csdnimg.cn/blog_migrate/f3cbca5d41a9959b7af054dcf203c25e.png

CardLayout 一个窗体中,可以包括多个卡片,一个时刻,只能一个卡片可见。

GridLayout窗体上 ,可设置x行y列的网格布局。每个格子一样大小。组件一行一行从左到右放到格子中。

GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域。

菜单中相关的几个类:JMenBar、JMenu、JMenuItem,它们之间谁包含谁?

JMenu — 菜单,一个容器,里面可以带多个 JMenuItem; JMenu对象,需要加入到JMenuBar 中。

JMenuItem — 菜单项,一项项加入到 JMenu对象中去。

对话框的几种不同显示形式,分别对应不同的方法。

模态框 (Modal Dialog):此对话框激活时,其他窗体都不能操作。

非模态框 (Non-modal Dialog):可在此对话框窗体与其他窗体之间,随意切换。


第6章 Java图形与事件处理

图形编程中坐标系是怎样的?

Java中图形坐标系:坐标原点在左上角,单位:像素。

https://i-blog.csdnimg.cn/blog_migrate/770dcdefb0b4d776c16b723eeac53bde.png

绘图方法是paint() , 只能在paint()方法中绘图。

Graphics常用的绘图方法:

https://i-blog.csdnimg.cn/blog_migrate/a1ad9597e429798d6f6ef6557f8949f8.png

内部类、 匿名类是做什么的? 怎么来创建并应用它们?

内部类 (Inner Class):在一个类的类体中定义的类。

内部类的一些特性

(1)内部类对象,可以访问外部类的成员变量和方法,包括私有的成员;

(2)实现事件监听器时,一般都采用内部类、匿名类充当监视器类。

什么时候使用匿名类?

如果一个 内部类 只被 使用一次 ,且它 还需继承一个父类实现一个接口 ,可以使用 匿名类

匿名类的特点类没有名字 ,也就 没有构造方法 。只能显式地调用一个父类的无参构造方法(或new xxxListener接口)、并重写父类(接口)方法。


第七章 多线程与异常处理:

Java中异常处理相关的几个关键字:try、catch、finally,throws,throw它们是怎么使用的?用在哪里?

定义方法时 ,可以使用 throws 关键字抛出异常

方法体内 使用 throw 抛出异常

使用 try 执行一段代码,当 出现异常后,停止后续代码的执行,跳至 catch 语句块

使用 catch捕获指定的异常,并进行处理

finally 语句块表示的语义是在 try、catch 语句块执行结束后, 最后一定会被执行

线程的生命周期 ,5种状态: 创建 、 就绪 、 运行 、 阻塞 、 死亡

创建线程 : 通过 继承Thread :

https://i-blog.csdnimg.cn/blog_migrate/99e54f4c41aeb42deb85ad931067f8f2.png

创建线程: 通过 Runnable接口 :

https://i-blog.csdnimg.cn/blog_migrate/c53a734771b14e65fada3839df3fd40e.png


第八章 文件的输入输出流:

何谓输入?何谓输出?

以当前程序为中心, 要读入到程序内存中的,称为 输入流 ;

从程序内存中写出去 的,称为 输出流

网络通信 中,以当前 机器(程序)为中心进入的信息 ,称为 输入流要发出去的信息 ,称为 输出流

File类的常用方法、它既可以代表文件,也可以代表目录,如何创建文件?如何创建目录?

创建File类的对象 — 使用File类的几种构造方法

例1 : File f1 = new File(“d:\abc”); // f1 代表目录 d:\abc

例2 : File f2 = new File(“d:\abc\1.txt”); // f2 代表文件

例3 : File f3 = new File(“d:\abc”, “1.txt”); // 路径 和 文件名 分开

例4 : File f4 = new File( f1 , “1.txt”); // 路径用一个File对象表示

字节流 对应的2个类分别是什么?

FileInputStream ,FileOutputStream

https://i-blog.csdnimg.cn/blog_migrate/320b45b4e19732b7ce4a3fe07ca12d77.png

字符流 对应的2个类分别是什么?

FileReader FileWriter

https://i-blog.csdnimg.cn/blog_migrate/4508756061bef1da6c94b5f56b418b4a.png

数据输入输出流 ,提供了 readUTFwriteUTF 方法,可用于 发送接收 消息。

对象流 ,可以将对象 序列化 为文件 — 要求类实现哪个接口? Serializable接口


第九章 网络通信:

IPv4 的IP地址都是 32 位地址

IPv6 的IP地址是 128 位无符号整数。

IPv6出现解决的问题: IPv4地址不够用

什么是套接字编程?包括什么?

TCP/IP通信协议 中, IP地址+端口号 ,就是 套接字(Socket)

TCP与UDP协议区别是什么?

TCP :提供的是 面向连接 、 可靠 的数据传输。

UDP :提供的是 无连接的 、 不可靠 的数据传输


第十章 java数据库连接:

JDBC API是什么?有什么作用?

API ( 应用程序接口 ,Application Program Interface)。

作用 : 使我们能够用纯Java来编写数据库应用程序。

如何利用JDBC API连接数据库,实现增、删、改、查等任务?

一般步骤

(a)加载和注册驱动程序

加载驱动程序 —

需要将MySQL的mysql-connector-java-5.1.47.jar 加入项目

Class.forName("com.mysql.jdbc.Driver"); 

(b)连接数据库

// 连接数据库

Connection conn = DriverManager.getConnection( 
"jdbc:mysql://127.0.0.1:3306/javadb", "root", "123456");

(c)向数据库发送SQL语句并处理结果

// statement用来执行SQL语句
Statement statement = conn.createStatement();
//执行语句
statement.executeUpdate(sql);    
//关闭数据库的连接
conn.close();	 

简单的SQL语句及应用。 ( 增删改查 )

( 执行时,把sql语句放入上面步骤c的 //执行语句 中的sql位置即可 )

查看表中所有信息

(按表内列的顺序操作,下同)

String sql = "select * from teacher";

插入数据

String sql = "insert into teacher values('20051102001', '张老师','13802287655', 35)";

更新(修改)数据

String sql = "update teacher set age=38 where id='20051102001' ";

删除数据

String sql = "delete from teacher where id='20051102001' ";