JAVA二级考试复习

JAVA二级考试复习

JAVA二级考试复习

一、基础知识

【考试要求】

了解Java语言的历史和特点;掌握Java的程序结构及开发环境的搭建;熟悉Java语言的各种数据类型;掌握变量和常量的定义方法;掌握基本数据类型的转换;掌握运算符与表达式的运用;熟悉Java的编码规范。

【主要考点】

\1. Java语言的历史、现状、特点、基本程序结构以及编程环境的搭建。

特点:简单、面向对象、分布性、可移植性、解释型、安全性、健壮性、多线程、高性能、动态

一个Java源文件一般可以包括以下几部分:

  • package 0或1个
  • import 0或多个
  • public class 0或1个
  • class 0或多个
  • interface 0或多个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P23ELksI-1640397421754)(C:\Users\小北\Desktop\3782fc2ab6f7ab1b62ad0489b11bbc6.jpg)]

4.编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A).java

B).class

C).html

D).exe

【解析】

java源文件的后缀名是.java。源文件通过jvm虚拟机编译后会生成二进制字节码文件,后缀是.class

\2. Java语言的数据类型:
(1)基本数据类型:

byte、short、int、long、float、double、char、boolean

  • 数值型

    • 整数类型:byte、short、int、long

      long类型在赋值时需要和int区分,因此需要在整数后加L或l

    • 浮点类型:float、double

      定义float类型的变量时,需要加F或f使之与double区分

  • 字符型:char、转义字符

    转义字符:

    转义字符含义
    \ddd1~3位八进制数据所表示的字符
    \uxxxx4位十六进制数据所表示的字符
    \’单引号字符
    \\反斜杠字符
    \t垂直制表符
    \r回车
    \n换行
    \b退格
    \f换页
  • 布尔型:boolean

​ 布尔型不能转换成其他类型

(2)引用数据类型:

类、接口、数组

\3. 常量和变量

常量的各种表示形式和类型,变量的定义和初始化。

(1)常量

声明常量

final 数据类型 常量名称 [=值]

当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值,否则将会产生编译错误。

final修饰局部变量

  • 变量是基本类型
    • 数据值不能发生改变
  • 变量是引用类型
    • 引用类型的地址值不能发生改变
(2)变量

声明变量

变量的命名:

  • 变量名必须是一个有效的标识符
    • 标识符可以由字母、数字和下划线、美元符号等组成
    • 标识符必须以字母、下划线或美元符号开头,不能以数字开头
  • 变量名不可以使用Java中的关键字
    • default、enum、goto、instanceof、native、strictfp、transient、var、volatile
  • 变量名不能重复

一般整型常量4字节、UNICODE2字节

\4. 数据类型转换

显示转换,隐式转换p50

(1)显示类型转换
(类型名)要转换的值
(2)隐式类型转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fbGcuEbT-1640397421756)(C:\Users\小北\AppData\Roaming\Typora\typora-user-images\image-20211221130949545.png)]

\1. 【单选题】下面赋值语句不合法的是(D)。

A.Long a=(Long)(long)3;

B.Long b=3L;

C. Long c=Long.parseLong(“3”);

D.Long d=(Long )3;

【解析】

\5. 运算符

赋值运算符、算术运算符、自增/减运算符、关系运算符、逻辑运算符、位运算符、条件运算符等。

\6. 表达式

表达式的组成规则,表达式运算中的类型转换、优先级和结合性。

运算符优先级

通常优先级由高到低顺序依次是:

  • 增量和减量运算
  • 算术运算
  • 比较运算
  • 逻辑运算
  • 赋值运算

具体如下:

优先级运算符结合性
1. [] () 后缀++、–
2前缀++、-- ! ~ +(正号) -(负号) instanceof右→左
3new (类型)右→左
4* / %
5+ -
6<< >> >>>
7< > <= >=
8== !=
9&
10^
11|
12&&
13||
14?:
15= += -= *= /= %= <<= >>= >>>= &= ^= |=右→左

\1. 【单选题】执行下面程序段后,输出结果是C。

int a=4,b=6,c=8;

System.out.println(++a*b—c );

A.11

B.16

C.22

D.23

【我的错误分析】

(++a)*b-(–c)

【解析】

(++a)*(b–)-c

后缀++、–的优先级比前缀++、–要高!

\2.定义int A=5,执行"System.out.println(“a=”+((A<5)?5.1:4));"语句的结果是(B)

A.a=5.1

B.a=4.0

C.a=5

D.a=4

【解析】

算术表达式中包含多个基本数据类型的值时,整个算术表达式的类型自动提升到表达式中的最高等级操作数同样的类型

\7. Java编程规范

代码注释

  1. 单行注释//
  2. 多行注释/* */
  3. 文档注释/** */

二、流程控制结构

【考试要求】

熟悉流程控制分为顺序结构、选择结构和循环结构,掌握选择结构和循环结构的具体实现。

【主要考点】

\1. Java程序的基本结构

\2. 选择结构

(1)if语句

(2)switch语句

switch语句中表达式的值必须是整型、字符型、字符串类型或枚举类型

注:在switch语句中,case语句后常量表达式的值可以为整型,但绝对不可以是非整型的实数,例如:case 1.1

\3. 循环结构

(1)for语句

(2)while语句

(3)do-while语句

\4. 跳转语句

(1) break语句

(2) continue语句

(3) return语句

\5. 循环语句与分支语句的嵌套

三、 面向对象程序设计

【考试要求】

掌握面向对象程序设计的特点和基本概念;掌握类的声明;掌握对象的创建和使用;掌握继承和多态的概念和应用;掌握接口的声明和实现;掌握包的声明、包与类的引入;掌握Java类库常用类的使用。

【主要考点】

\1. 面向对象程序设计的基本概念

类、对象、成员变量、成员方法、封装、继承、多态

面向对象程序设计的特点:封装性、继承性、多态性

\2. 类的基本组成

(1)类的声明

(2)成员变量的声明

(3)成员方法的声明与调用,方法的参数传递与返回值

(4)方法的重载

(5)静态变量和静态方法

特点:

  • 被类的所有对象共享
  • 可以通过类名调用
  • 也可以通过对象名调用

静态成员方法访问特点:

  • 只能访问静态的成员变量和方法
\3. 对象的创建和使用

(1)对象的创建

(2)构造方法与对象的初始化

(3)成员变量、成员方法的访问

(4)this

(5)引用的赋值

\4. 类的继承

(1)子类的声明

  • Java只支持单继承

(2)super

(3)变量覆盖和方法覆盖

多态的四种表现形式

  • 运行时多态(虚函数)
  • 编译时多态(模板)
  • 重载
  • 类型转换
(4)final类和final方法

final关键字——“断子绝孙”关键字

特点:

  • 修饰方法:表明该方法时最终方法
    • final方法只能访问不能修改,不能被子类覆盖
  • 修饰变量:表明该变量是常量
  • 修饰类:表明该类的最终类
    • final类不能被继承,即不能有子类
    • final类中的所有方法都被隐式设置为final方法,但成员变量可以被定义为final或非final形式
\5. 类及成员的四种访问权限
(1)类的访问权限:默认权限、public

\1. 【单选题】java语言中,在定义类时不能使用的修饰符是_____B_____。

A.public

B.private

C.abstract

D.final

【解析】Only public, abstract, final are permitted

(2)类成员的访问权限:public、private、protected、默认权限
访问包位置privateprotectedpublic
本类
同包其他类或子类
其他包的类或子类

注:当声明类时不使用public、protected、private修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中的类可以访问这个类的成员变量或成员方法。

\6. 抽象类与接口

(1)abstract类和abstract方法的声明

特点:

  • 抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
  • 抽象类不能实例化

abstract类

abstract class 类名{
	
}

abstract方法

public abstract 返回值类型  方法名(参数表);

(2)接口的声明与实现

特点:

  • 接口中的所有方法都没有方法体
  • 接口没有构造方法!
  • 接口的方法必须被定义为public或abstract
  • 在接口中定义的任何字段都是static和final
  • 接口中的数据成员都是静态的且必须初始化,即数据成员必须是静态常量
interface 接口名(extends 父接口){
	返回值类型  方法名(参数表);
}

\1. 【单选题】在Java语言中,下列描述错误的是____D______。

A.通过super可调用父类构造函数

B.如果函数的形参与类中的成员变量同名,这时需用this来指明成员变量名

C.接口中的属性只能被public 、final、static修饰 //p129

D.一个类可以有多个父类 //JAVA只支持单继承,即一个类只能有一个父类

\2.以下关于接口的说法中,正确的是()

A. 接口表示一种约定,接口表示一种能力,接口体现了约定和实现相分离的原则

B. 接口可以有构造方法

C. 接口中属性都是使用public、static、final修饰,没有显式赋值将使用默认值

D. 接口中全部方法都是抽象方法,方法可以是任意访问权限

【解析】

\7. 包

:Java语言提供的一种区别类名空间的机制,是类的组织方式

(1)包的声明及package语句

package 包名

(2)包和类的引入及import语句

import 包名

(3)常用包

  1. 语言包java.lang
    • Object类
    • 字符串类
    • 数学类Math
    • 线程类
    • 错误和异常处理类Throwable、Exception、Error
    • 类操作类Class
    • 系统和运行时类
  2. 输入输出流的文件包java.io
  3. 实用包java.util
    • 扫描类Scanner
    • 日期类Date
    • 链表类LinkedList
    • ……
  4. 网络功能包java.net
    • 访问网络资源类URL
    • 套接字类Scoket
    • 服务端套接字类ServerSocket
    • ……
  5. 数据库连接包java.sql
  6. 文本包java.text
\8. 常用类的使用
(1)String类字符串的基本操作:

对象创建,字符串的比较,字符的访问与查找,子串的查找,字符串的连接。

创建字符串

  • public String()
  • public String(char[] chs)
  • public String(char[] chs, int offset, int length):截取字符数组offset开始长度为length的部分创建字符串
  • public String(byte[] bys)
  • String s = “abc”;

字符串比较

  • equals(String otherstr)
  • equalsIgnoreCase()
  • compareTo(String otherstr)

字符访问与查找

  • charAt(int index)

子串查找

  • indexOf(String s):从头开始找,如果没有检索到时返回-1
  • lastIndexOf(String str):从尾开始找

字符串连接

其他操作

  • substring(int beginIndex):从beginIndex开始截取到字符串末尾
  • substring(int beginIndex, int endIndex):从字符串某以索引位置开始截取至某一索引位置结束
  • trim():忽略前导和尾部空格
  • split(String sign)
  • split(String sign ,int limit)
  • toUpperCase()
  • toLowerCase()
(2)StringBuffer类字符串的基本操作:

对象创建,字符串的修改,与String类字符串的相互转换。

  • public StringBuffer()

  • public StringBuffer(String str)

  • public int Capacity():当前容量(理论值)

  • public int length():字符串长度(实际值)

  • public StringBuffer insert(int offset, String str)

  • public void setCharAt(int index, char ch)

  • public StringBuffer deleteCharAt(int index)

  • public StringBuffer delete(int satrt, int end)

  • public Strinig substring(int start)

  • public String substring(int start, int end)

  • public StringBuffer replace(int start, int end, String str)

  • public StringBuffer reverse()

  • public void trimToSize()

StringBuilder

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ng7LCOkL-1640397421757)(https://www.runoob.com/wp-content/uploads/2013/12/2021-03-01-java-stringbuffer.svg)]

(3)Math类和Random类的常用方法。
Math类
  1. 三角函数
    • public static double sin(double a)
    • public static double cos(double a)
    • public static double tan(double a)
    • public static double asin(double a)
    • public static double acos(double a)
    • public static double atan(double a)
    • public static double toRadians(double angdeg):转弧度
    • public static double toDegrees(double angrad):转角度
  2. 指数函数方法
    • public static double exp(double a)
    • public static double log(double a)
    • public static double log10(double a)
    • public static double sqrt(double a)
    • public static double cbrt(double a):立方根
    • public static double pow(double a, double b)
  3. 取整函数方法
    • public static double ceil(double a): 返回大于等于参数的最小整数
    • public static double floor(double b): 返回小于等于参数的最大整数
    • public static double rint(double a): 返回与参数最接近的整数,如果存在两个同样接近的整数,则结果取偶数
    • public static int round(float a): 参数加上0.5后返回与参数最接近的整数
    • public static long round(double a): 参数加上0.5后返回与参数最接近的整数,然后强制转换为长整型
  4. 取最大值、最小值、绝对值函数方法
  5. 其他
    • public static double random():返回取值在[0.0,1.0)区间 随机数

\1. 【单选题】在Java语言中,下面关于Math类的常见操作不正确的描述是____B______。

A.执行Math.ceil(-10.5) 语句的结果是-10.0

B.执行Math.round(10.5) 语句的结果是11.0 //11

C.执行Math.floor(-10.5) 语句的结果是-11.0

D.执行Math.round(-10.5) 语句的结果是-10

\2.【单选题】在Java语言中,下面关于Math类的常见操作不正确的描述是(C)

A.执行Math.floor(-9.01)语句的结果是-10.0

B.执行Math.ceil(-30.01)语句的结果是-30.0

C.执行Math.rint(1.4)语句的结果是1.4

D.执行Math.round(-0.001)语句的结果是0

Random类

构造方法

  • public Random()
  • public Random(long seed)

常用方法

  • public int nextInt()
  • public int nextInt(int n):返回取值在区间[0,n)的随机整数
  • public long nextLong()
  • public float nextFloat()
  • public double nextDouble()
  • public boolean nextBoolean()
import java.util.Random;
Random r = new Random();
int number = r.nextInt(10);
(4)基本类型的包装类及其常用方法。
包装类对应基本数据类型
Bytebyte
Integerint
Floatfloat
Characterchar
Shortshort
Longlong
Doubledouble
Booleanboolean

Integer类

  • valueOf(String str)
  • parserInt(String str)
  • toString()
  • equals(Object IntegerObj)
  • compareTo(Integer anotherInteger)

【单选题】已知Integer.MAX_VALUE 的值为2147483647,在执行“Integer max1=Integer.MAX_VALUE,max2= max1+1;”语句后,max2等于(A)。

A.-2147483648

B.2147483647

C.0

D.2147483648

(5)了解Object类和Class类。
Object类:

所有类都直接或间接继承Object类

常用方法:

  • public boolean equals(Object obj)
  • public String toString()
  • public final Class getClass()
  • protected Object clone()

四、 数组

【考试要求】

掌握一维数组、二维数组的声明、创建与使用。

【主要考点】

\1. 数组的声明、创建和初始化
创建一维数组
  1. 先声明,再用new关键字进行内存分配

    声明:

    数组元素类型 数组名字[];
    数组元素类型[] 数组名字;
    

    分配内存

    数组名字 = new 数组元素的类型[数组元素的个数];
    

    注:使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0。

  2. 声明的同时为数组分配内存

    数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];
    
创建二维数组
  1. 先声明,再用new关键字进行内存分配

    声明

    数组元素的类型 数组名字[][];
    数组元素的类型[][] 数组名字;
    

    分配内存

    数组名字 = new 数组元素类型[一维长度][二维长度];
    
  2. 声明的同时为数组分配内存

    数组元素的类型 数组名字 = new 数组元素类型[一维长度][二维长度];
    

    注:对于整型二维数组,创建成功后系统会给数组中每个元素赋予初始值0。

\2. 数组的大小和元素默认值

初始化一维数组

int arr[] = new int[]{1,2,3,4,5};
int arr2[] = {5,4,3,2,1};

初始化二维数组

int arr[][] = {{12,0},{45,10}};
\3. 数组元素的使用
\4.数组的基本操作
  1. 获取数组长度

    数组名.length;
    

    注:length与length()的区别——length用于获取数组长度、length()用于获取字符串长度

五、图形用户界面程序设计

【考试要求】

掌握AWT和Swing常用组件与容器的使用方法;掌握窗口应用程序和小应用程序Applet的构建方法;掌握常用布局管理器的使用方法;掌握常用事件的处理方法;掌握颜色和字体的设置方法;掌握基本图形的绘制方法;掌握小应用程序Applet的生命周期及主要成员方法。

【主要考点】

\1. 常用组件和容器的创建和使用

标签、文本框、按钮、文本区域、复选框、单选钮、下拉列表、列表、定时器、窗口、面板、对话框、小应用程序、文件选择器JFileChooser、颜色选择器JColorChooser等。

标签JLable:

public JLabel()
public JLabel(Icon icon)
public JLabel(Iocn icon, int aligment)
public JLabel(String text, int aligment)
public JLabel(String text, Icon icon, int aligment)

文本框JTextField:

public JTextField()
public JTextField(String text)
public JTextField(int fieldwidth)
public JTextField(String text, int fieldwidth)

文本域JTextArea:

public JTextArea()
public JTextArea(String text)
public JTextArea(int rows, int columns)

按钮JButton:

public JButton()
public JButton(String text)
public JButton(Icon icon)
public JButton(String text, Icon icon)

定时器Timer:


复选框:

public JCheckBox()
public JCheckBox(Icon icon, Boolean checked)
public JCheckBox(String text, Boolean checked)

单选钮JRadioButton:

public JRadioButton()
public JRadioButton(Icon icon)
public JRadioButton(Icon icon, boolean selected)
public JRadioButton(String text)
public JRadioButton(String text,Icon icon)
public JRadioButton(String text, Icon icon, boolean selected)
  • 声明单选按钮
  • 声明按钮组ButtonGroup group = new ButtonGroup()
  • 将单选按钮加入按钮组中group.add(jr1)

下拉列表JComboBox:

public JComboBox(ComboBoxModel dataModel)
public JComboBox(Object[] arrayData)
public JComboBox(Vector vector)

列表JList:

public void JList()
public void JList(Object[] listData)
public void JList(Vector listData)
public void JList(ListModel dataModel)

窗口JFrame:

public JFrame()
public JFrame(String title)
  • 继承javax.swing.JFrame类创建一个窗体
  • 调用getContentPane()将窗体转换为容器
  • 调用add()向这个窗体添加组件

面板JPanel:


对话框JDialog:

public JDialog()
public JDialog(Frame f)
public JDialog(Frame f, boolean model)
public JDialog(Frame f, String title)
public JDialog(Frame f, String title, boolean model)

Frame:指定父窗口

model:如果model为true则弹出对话框后用户无法操作父窗体

文件选择器JFileChooser:


颜色选择器JColorChooser:


\2. 常用布局管理器的使用

FlowLayout、BorderLayout、GridLayout、CardLayout

\3. 事件处理模型与常见事件的处理

(1)事件、事件源、事件处理者及事件处理模型;

(2)WindowEvent、ActionEvent、ItemEvent、KeyEvent、MouseEvent、FocusEvent、TextEvent的处理.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqUvrpd5-1640397421757)(C:\Users\小北\AppData\Roaming\Typora\typora-user-images\image-20211220083014599.png)]

\4. 颜色和字体的设置

Color类、Font类

Color类
Color color = new Color(int r,int g,int b);
Color color = new Color(int rgb);

注:rgb是红、绿、蓝三原色的总和

230203.【单选题】在Java语言中,下面关于颜色定义不合法的是(B)。

A.Color c1=new Color(0xffffff)

B.Color c2=new Color(Color.BLUE)

C.Color c3=new Color(0,0,255)

D.Color c4=new Color(0.2f,0.6f,1.0f)

Font类
Font(String name,int size)
\5. 基本图形的绘制

绘制直线、矩形、椭圆、弧、多边形、字符串的方法

  • drawLine(int x1,int y1,int x2,int y2):绘制直线
  • drawRect(int x,int y,int width, int height):绘制矩形
  • drawOval(int x,int y,int width,int height):绘制椭圆
  • drawArc(int x,int y,in width,int height,int startAngle,int arcAngle):绘制弧形
  • drawPolygon(int[] xPoints,int[] yPoints,int nPoints):绘制多边形
  • drawString(String str,int x,int y)
  • drawString(Stirng str,float x,float y)
\6. Applet程序设计
(1)小应用程序Applet的程序结构与生命周期
  • init():为Applet的正常运行做一些初始化工作,只执行一次
  • start():调用完init()后自动调用start()方法。当用户离开包含该Applet的主页后又返回时,系统会再调用start()方法
  • stop():用户离开该页面时调用
  • destory():浏览器关闭时调用

230260.【单选题】在Java语言中,下面关于Applet描述错误的是(A)。

A.Applet能执行任何本地计算机上的程序

B.Applet的生命周期中有四个状态:初始态、运行态、停止态和消亡态

C.Applet的init()方法在Applet的生存周期中只调用一次

D.Applet应用程序必须嵌入在HTML页面中,才能得到解释执行

22.在浏览器中执行Applet程序,( )方法将被最后执行。

A)init()

B)start()

C)destroy()

D)stop()

(2)Applet类常用的成员方法
(3)在HTML页中包含Applet,Applet与HTML通信
  • Applet小应用程序的实现主要依靠java.applet包中的Applet类

  • Applet应用程序必须嵌入在HTML页面中才能得到解释执行

  • Applet程序的HTML文件包括的信息:

    • 字节码文件名(编译后的java文件,以.class为后缀)
    • 字节码文件的地址
    • 在网页上显示Applet的方式
  • 安全限制

    为了防止这样的问题出现,在缺省的情况下,大多数浏览器在Applet安全方面受到诸多的限制,几乎不能对系统进行任何“读”或“写”的操作:

    \1. 不允许Applet访问本地文件系统

    \2. Applet不能执行任何本地计算机上的程序

    \3. 不允许Applet尝试打开除提供Applet的服务器之外的任何系统的Socket

    \4. 不允许Applet访问用户名、电子邮件地址等与本地系统有关的信息

    \5. 对于Applet而言,Java环境中的某些标准系统属性是只读的

    \6. Applet不能创建或装载Applet的机器的网络连接

    \7. Applet不能充当网络服务器,监听或接收来自远程系统的连接请求

    \8. 不允许Applet装载动态库或定义本地方法调用

    \9. Applet不能操纵不在自己线程组中的任何线程

    \10. Applet不能关闭JVM。

4.编译Java源程序文件将产生相应的字节码文件,这些字节码文件的拓展名为(B)

A. .java

B. .class

C. .html

D. .exe

(?)21.在Java语言中,下面关于Applet描述错误的是(C)

A. Applet应用程序必须嵌入在HTML页面中,才能执行

B.Applet的生命周期中有四个状态:初始态、运行态、停止态和消亡态

C.Applet不是Java类

D.通常情况下,Applet不能进行文件的I/O操作

六、异常处理

【考试要求】

理解异常处理机制;熟悉常用异常类;掌握用try-catch-finally语句捕获异常;掌握抛出异常和声明抛出异常;掌握自定义异常类的声明和使用。

【主要考点】

\1. 异常的概念和分类

概念:程序运行中由代码产生的一种错误。

​ 程序在运行过程中发生由于算法考虑不周或软件设计错误导致的程序异常事件。

分类:运行时异常、非运行时异常

\2. 常用的异常类

​ Exception

  • ClassNotFoundException:类没有找到异常类
  • RuntimeException:运行时异常类
    • ArithmeticException
    • NullPointerException
    • IndexOutOfBoundsException
    • ClassCastException:类型强制转换异常类
    • IllegalArgumentException
  • IOException
    • SQLException
\3. 异常的捕获与处理:try-catch-finally
try{
	要检查的语句序列
}catch(异常类名 形参对象名){
	异常发生时的处理语句序列
}finally{
	一定会执行的语句序列
}
  • finally通常用于对一些资源做清理工作,如关闭打开的文件等
\4. 异常的抛出:throw语句,throws子句
使用throw关键字抛出异常
throw 由异常产生的对象;
使用throws关键字抛出异常
[修饰符] 返回值类型  方法名(参数表)  throws  异常类列表
throw与throws的区别
  • throw
    • 用在方法体内,跟的时异常对象
    • 表示抛出异常,由方法体内的语句处理
    • 执行throw一定抛出了某种异常
  • throws
    • 用在方法声明后面,跟的是异常类
    • 表示抛出异常,由该方法的调用者来处理
    • 表示出现异常的一种可能性,并不一定会发生这些异常
\5. 自定义异常
  1. 声明一个新的异常类,直接或间接继承Exception

    public class MyException extends Exception{
    	String msg;
    	public MyException(String ErrorMessage){
    		msg = ErrorMessage;
    	}
    	public String getMessage(){
    		return msg;
    	}
    }
    
  2. 一定要使用throw抛出

七、输入输出流及文件操作

【考试要求】

理解输入输出流的概念;熟悉流的分类;掌握常用流类的使用方法;掌握系统标准输入和输出的使用方法;掌握用Scanner类输入数据的方法;掌握用File类管理文件和目录的方法;掌握用RandomAccessFile类读写随机访问文件的方法。

【主要考点】

\1. 流的分类

输入流与输出流,字节流与字符流,节点流与过滤流

输入流:

  • read():从输入流中读取数据的下一个字节。返回0~255的int字节值(ASCII)。
  • read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。
  • mark(int readlimit):
  • reset():将输入指针返回到当前所做的标记处。
  • skip(long n):
  • markSupported():
  • close:关闭此输入流并释放与该流关联的所有系统资源。

输出流:

  • write(int b):将指定的字节写入此输出流
  • write(byte[] b):将b个字节从指定的byte数组写入此输出流
  • write(byte[] b, int off, int len):将指定byte数组中从偏移量off开始的len个字节写入此输出流。
  • flush():
  • close():关闭输出流。

字节流:InputStream、OutputStream

字符流:Reader、Writer

字节流与字符流的区别:

  • 字节流操作的基本单元为字节,字符流操作的基本单元为Unicode码元
  • 字节流默认不使用缓冲区,字符流使用缓冲区
\2. 常用流

(1)常用字节流:FileInputStream、FileOutputStream、ByteArrayInputStream、ByteArrayOutputStream、BufferedInputStream、BufferedOutputStream、DataInputStream、DataOutputStream、ObjectInputStream、ObjectOutputStream、PrintStream

(2)常用字符流:FileReader、FileWriter、CharArrayReader、CharArrayWriter、StringReader、StringWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter

\3. 系统标准输入输出操作

System.in

  • System.in.read()

System.out

  • System.out.println
  • System.out.print

System.err

  • System.err.println
  • System.err.print
\4. Scanner类
\5. File类

文件创建、文件删除、文件夹创建、目录列表、文件属性获取和设置、文件重命名

创建文件对象

  1. File(String pathname)

    File file = new File("d:/1.txt");
    
  2. File(String parent, String child)

    File file = new File("D:/","letter.txt");
    
  3. File(File f, String child)

    
    

注:这里只表示指向,如果文件不存在不会生成一个新文件

创建文件

file.createNewFile();

文件删除

file.delete();

文件夹创建

file.mkdir()

目录列表

file.listFiles()

文件属性获取和设置

文件重命名

file.renameTo(File newFile)
\6. RandomAccessFile类 P195(清华)
  • 在java.io包中定义
  • 实现DataInput和DataOutput接口

构造方法

  • public RandomAccessFile(String name, String mode)
  • public RandomAccessFile(File file, String mode)

注:mode表示所创建的随机读写文件的操作状态:r、rw

常用于读取的方法

  • public void close()

常用于写入操作的方法

  • public void write(int b):在文件指针的当前位置写入一个int型数据b
  • public void writeByte(int v):在文件指针的当前位置写入一个字节值,只写v的最低1字节,其他丢弃
  • public void writeByte(String s)
  • public void writeChar(int v):在文件指针的当前位置写入v的最低2个字节,其他丢弃
  • public void writeInt(int v):把整型数作为4字节写入文件

【单选题】在Java语言中,下面关于RandomAccessFile描述错误的是(D)。

A.实现DataInput和DataOutput接口

B.getFilePointer()方法:返回此文件中的当前偏移量

C.readFloat()方法:从此文件读取一个 float

D.writeChar(int v):按双字节值将char写入该文件,先写低字节

【解析】

writeChar(int v)只写入v的最低两个字节,其他丢弃

八、 高级编程基础

【考试要求】

理解多线程程序设计的概念;掌握线程的创建、生命周期、调度和控制;了解线程的同步;熟悉数据库的基础知识;掌握JDBC的简单应用。

【主要考点】

\1. 多线程
(1)多线程的概念
(2)线程的创建
(3)线程的生命周期、调度和基本控制
(4)线程的同步
\2 .数据库编程
(1)数据库基础知识(数据库、表、SQL语句)

数据库:是一种存储结构,允许使用各种格式输入、处理和检索数据,不必在每次需要数据时重新输入。

SQL:(Structure Query Language)结构化查询语言

  1. select语句

    SELECT 所选字段列表 FROM 数据表名 WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件) ORDER BY 字段名[ASC|DESC]
    
  2. insert语句

    insert into 表名[(字段名1,字段名2...)] values(属性值1,属性值2...)
    
  3. update语句

    UPDATE 数据表名 SET 字段名 = 新的字段值 WHERE 条件表达式
    
  4. delete语句

    delete from数据表名 where 条件表达式
    

【例子】删除最小id的记录

  1. 找最小的id

    select min(id) as id from tb_stu
    
  2. 在存放最小id的临时表tmp中查询数据

    select tmp.id from(select min(id) as id from tb_stu) as tmp
    
  3. 删除最小id的记录

    DELETE FROM tb_stu WHERE id=(select tmp.id from(select min(id) as id from tb_stu) as tmp)
    
(2)JDBC结构与原理

JDBC是一套面前对象的应用程序接口,指定了统一地访问各种关系型数据库的标准接口。

JDBC技术主要完成的任务:

  • 与数据库建立一个连接
  • 向数据库发送SQL语句
  • 处理从数据库返回的结果

DriverManager

Clss.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名","账号","密码");

Connection

Statement

:用于执行不带参数的SQL语句

常用方法

  • public boolean execute(String sql):执行静态的SELECT语句,如果执行的是SELECT语句则返回true,调用getResultSet()方法获得返回结果,其他则返回false,调用getUpdateCount()方法获得返回结果
  • public ResultSet executeQuery(String sql):执行给定的SQL语句,返回单个ResultSet对象
  • public int executeUpdate(String sql):执行给定的SQL语句,该语句可能是INSERT、UPDATE、DELETE或是不返回任何内容的SQL语句(例如DDL)

PreparedStatement

:用来执行动态SQL语句

CallableStatement

:继承PreparedStatement,用于执行对数据库的存储过程的调用

ResultSet

(3)JDBC简单应用

连接数据库

class DBConnector{
	public Connection conn;
	public DBConnection(){
		try{
			Class.forName("com.mysql.jdbc.Driver");
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}
		
		try{
			conn=DriverManager.getConnection("jdbc://mysql://127.0.0.1:3306/数据库名","账号","密码");
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
	public void closeConnection(){
		if(conn!=null){
			try{
				conn.close();
			}catch(SQLException){
				e.printStackTrace();
			}
		}
	}
}

数据库的增删改查功能


\1. 【单选题】下面关于java.sql包中接口和类的描述不正确的是(B)。

A.Connection 接口:表示数据库连接

B.DriverManager类:表示驱动器

C.ResultSet接口:表示SQL查询语句返回的结果集

D.Statement接口:负责执行SQL语句

【解析】

DriverManager负责加载各种不同驱动程序(driver)

\2.【单选题】下面哪项不属于Statement接口提供的3个执行SQL语句的方法(A)。

A.executeDelete(String sql)

B.executeUpdate(String sql)

C.executeQuery(String sql)

D.execute(String sql)

11

3.关于异常的含义,下列描述中最正确的一个是( )。

A)程序编译错误

B)程序语法错误

C)程序自定义的异常事件

D)程序运行时发生的非正常事件

11.下面说法中,( )是正确的。

A)类是变量和方法的集合体

B)数组是无序数据的集合

//C)抽象类可以实例化

//D)类成员变量必须是公有的

13.Java语言有许多特点,( )反映了Java程序并发机制的特点。

A)安全性

B)多线程

C)跨平台

D)可移植

25.以下程序段执行后将有( )个字节被写入到文件afile中。

​ try{

​ FileOutputStream fos=new FileOutputStream(“afile.txt”);

​ DataOutputStream dos=new DataOutputStream(fos);

​ dos.writeInt(3);

​ dos.writeDouble(0.01);

​ dos.close();

​ fos.close( );

​ }

​ catch(IOException e) { }

A)2

B)8

C)12

D)16

27.以下( )可能包含菜单条。

A)JPanel

B)JFrame

C)JApplet

D)JDialog

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值