基于《java2实用教程》的java知识点复习整理【章节考察合集】
第一章——java入门
三、题库考查知识点整理
1、下列哪个是JDK提供的编译器:javac.exe
2、Java应用程序主类中正确的main方法:public static void main (String args[ ])
3、Java语言的名字是印度尼西亚一个盛产咖啡的岛名
4、Java源文件是由若干个书写形式互相独立的类组成。
5、源文件的第4行有错误,无法识别system(应该修改为System)
6、图中左2是java之父:James Gosling,(秃头)
7、如果源文件中有多个类,这些类可以都不是public类
8、源文件必须命名为E.java,编译无错误。有两个主类,E和A。程序可以执行主类E也可以执行主类A.
9、JDK的全称是Java Development Kit,
10、源文件的名字必须是Cat.java。(public类)
11、如果源文件中只有一个类,这个类可以不是主类,因为主类只是执行需要不是编写需要
第二章——基本数据类型与数组
题库考查知识点整理
1、这项字符序列可以做为标识符:_int
2、下列是正确的float变量的声明:
float foo = 1;float foo = 0x0123;float c = ‘你’;float d = 3.14F;
3、char型字符在Unicode表中的位置范围是0至65535
4、正确的char型变量的声明:char ch = ‘\\’;char ch = ‘\t’;char ch = ‘\u1010’;char ch = ‘\ucafe’;
5、错误的char型变量的声明:char ch = “R”;char ch = ‘\t\n’;
6、错误的float变量的声明:float a = 1.19;float a = 2e3;char ch =’\u000M’;float height = 1eF;
7、正确的float常量:67F;
8、Java语言的关键字:int、import、extends
9、不是关键字:Class、Float、main、Int、implementt、NULL、System
10、错误的数组声明:int a[5];
11、int型变量的取值范围:-2^31 至 2^31-1
12、char型变量的取值范围:0 至 2^16-1
13、1e2和2.05E2都是double型常量。
14、int [] a,b[];是声明了1个int型一维数组a和1个int型二维数组b。
第三章——java运算符、表达式和语句
题库考查知识点整理
1、5.0/2+10的结果是double型数据。
2、while(【代码】) {:代码运行结果为boolean类型
3、允许把不超出byte,char,short的取值范围的int常量赋值给相应的变量。但是注意,编译器在编译时并不计算’a’+x中变量x中的值,只是编译出’a’+x表达式的值是int型数据。

4、

把int类型赋值给char或者byte产生的错误
5、‘a’+10的结果是int型数据。计算结果自动转化为最高精度
6、逻辑运算符、关系运算符的运算结果是boolean
7、switch语句中可以没有default选项。
8、12 = 12 是非法的表达式。
9、for(表达式1; 表达式2; 表达式3)…语句中的“表达式2”的值必须是boolean型数据。
10、在while语句的循环体中,执行break语句的效果是结束while语句。
11、表达式10>20-17的结果不是1,是true
12、(byte)3.14+1的结果是int型数据。
13、‘苹’+ '果’的结果不是char型数据。
第四章——类与对象
题库考查知识点整理
1、Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。
2、局部变量没有默认值。
3、Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。成员方法的方法头不能没有类型
4、不能用protected和private修饰类
5、类体中成员变量的声明和方法的定义可以交叉进行。
6、成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关。
7、用new运算符和构造方法创建对象的正确步骤:
①.为成员变量分配内存,并指定默认值。
②.初始化成员变量,即用户声明成员变量时给定的默认值。
③.执行构造方法。
④.计算出一个引用值。
8、构造方法没有类型:含有类型的方法不是构造方法。
9、方法中声明的局部变量不可以用static修饰。
10、类中的类方法(static方法)只能操作类变量(static变量),不可以操作实例变量,但实例方法可以操作类变量。
11、如果在类中显示地定义了构造方法,Java编译器将不再提供默认的构造方法。
12、编译器不提示程序使用了空对象(让一个空对象去调用实例方法),但程序在运行时会出现NullPointerException异常。
13、类中的类变量(static)在该类被加载到内存时(即使该类未创建对象)就会被分配内存空间。
14、当this关键字出现在实例方法中时,就代表正在调用该方法的当前对象。
15、一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量(实体)。
16、用户定义构造方法的访问权限可以是public,protected,private或友好的。
17、当方法被调用时,参数被分配内存空间,调用者向参数传递值,即方法被调用时,参数变量必须有具体的值。
18、类所声明的变量被称为对象,对象(变量)负责存放引用,以确保对象可以操作分配给该对象的变量以及调用类中的方法。分配给对象的变量被习惯地称做对象的实体。
用该方法的当前对象。
15、一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量(实体)。
16、用户定义构造方法的访问权限可以是public,protected,private或友好的。
17、当方法被调用时,参数被分配内存空间,调用者向参数传递值,即方法被调用时,参数变量必须有具体的值。
18、类所声明的变量被称为对象,对象(变量)负责存放引用,以确保对象可以操作分配给该对象的变量以及调用类中的方法。分配给对象的变量被习惯地称做对象的实体。
19、this不可以出现在类方法(static方法)中。
20、只有初始化后的变量才能参与运算。
第五章——子类与继承
题库考查知识点整理
1、子类继承的方法只能操作子类继承和隐藏的成员变量。
2、不可以同时用final和abstract修饰同一个方法。
3、不允许使用static修饰abstract方法。
4、所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接声明一样,可以被子类中自己定义的任何实例方法操作。
5、如果在子类中想使用被子类隐藏的成员变量或方法就需要使用关键字super。
6、子类不继承父类的构造方法。
7、 如果在子类的构造方法中,没有显示地写出super关键字来调用父类的某个构造方法,那么编译器默认地有:super();调用父类的无参数的构造方法(如果父类没有这样的构造方法,代码将出现编译错误).
8、在子类的构造方法中显示地写出super时,super关键字形成的语句必须是子类构造方法的第1条语句。
9、如果一个类中有abstract方法,这个类必须是abstract类。
10、代码无法通过编译。(原因是,父类People已经没有了不带参数的构造方法,而子类Student构造方法默认调用People类的不带参数的构造方法)。
11、子类重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限。
12、如果子类是abstract类,允许子类将父类的非abstract方法重写为abstract方法。
13、如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的抽象方法,即给出方法体(将abstract方法重写为非abstract方法)。
14、abstract子类也要继承abstrat父类的abstract方法 。
15、类中的类方法(static方法)只能操作类变量(static变量),不可以操作实例变量。
16、编译器不提示程序使用了空对象(让一个空对象去调用实例方法),但程序在运行时会出现NullPointerException异常。
17、子类对象的上转型对象操作子类继承的方法或子类重写的实例方法,其作用等价于子类对象去调用这些方法。
18、super关键字形成的语句不一定是子类构造方法中的第1条语句。显示的写出才作为第一句。不写则无。
19、abstract类可以没有abstract方法。
20、abstract方法的abstract关键字,必须放在方法的类型的前面,不可以插在方法类型和方法名字之间。
21、子类重写或新增的方法也能直接操作被子类隐藏的成员变量。
22、如果子类可以继承父类的某个方法,那么子类就有权利重写这个方法。
23、类所声明的变量被称为对象,对象(变量)负责存放引用,以确保对象可以操作分配给该对象的变量以及调用类中的方法。分配给对象的变量被习惯地称做对象的实体。
24、写的话,super关键字形成的语句必须是子类构造方法中的第1条语句。
25、子类声明的成员的变量的名字和从父类继承来的成员变量的名字相同,子类就会隐藏掉所继承的成员变量。方法的修饰(如果有),例如public,abstract,必须放在方法的类型的前面,不可以插在方法类型和方法名字之间。
26、java.lang包中的Object类是所有其他类的祖先类。
类声明的成员的变量的名字和从父类继承来的成员变量的名字相同,子类就会隐藏掉所继承的成员变量。方法的修饰(如果有),例如public,abstract,必须放在方法的类型的前面,不可以插在方法类型和方法名字之间。
第六章——java接口与实现
题库考查知识点整理
1、在接口中,编译器认为int MAX = 100;就是 public static final int MAX = 100;
2、在接口中,protected void start();会导致编译出错。
3、接口中会默认给方法添加public abstract修饰词,默认给变量添加public static final修饰词。
4、类声明class Stu extends People implements Com 意思是Stu类是People类的子类,父类People实现Com接口。
5、一个接口可以继承多个接口。
6、一个类声明实现一个接口,但没有重写接口中的所有方法,那么这个类必须是抽象类。
7、接口中的常量不可以不指定初值,因为编译器不会提供默认值。所以在接口中,int MAX;会导致编译出错。
8、如果一个非abstract类实现某个接口,该类必须重写接口中的全部abstract方法。可以用接口名直接访问接口中的常量。能用abstract修饰接口。
9、一个类声明实现一个接口,但没有重写接口中的所有方法,那么这个类必须是抽象类。子接口将继承父接口中的全部方法和常量。接口变量中可以存放实现该接口的类的实例的引用(对象的引用)。
10、把实现某一接口的类创建的对象的引用赋值给该接口变量,那么该接口变量就可以调用被类实现的接口方法。接口中的常量必须指定初值。
11、任何一个类都可以实现public接口。如果一个类和友好接口在同一个包里,就允许它实现该接口。
第七章——内部类与异常类
题库考查知识点整理
1、E$1.class是匿名类的字节码(编译器编译器给该匿名类的名字是E$1)。
2、和类有关的匿名类一定是该类的一个非抽象子类。
3、内部类的类体中不可以声明类变量(static)变量。
4、非匿名内部类可以实现接口。
5、内部类可以是final类。
6、一个方法在声明时不可以使用throw关键字声明要产生的若干个异常。
7、接口匿名类(和接口有关的匿名类)不可以是抽象类。
8、匿名类有构造方法。
9、内部类的外嵌类的成员变量在内部类中仍然有效。内部类中的方法也可以调用外嵌类中的方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
10、可以用private或protected修饰内部类。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。static内部类不能操作外嵌类中的实例成员变量。
11、非匿名内部类也可以有(内部)子类。不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象。匿名子类(和子类有关的匿名类)可以继承父类的方法也可以重写父类的方法。
12、匿名子类(和子类有关的匿名类)的类体中不可以声明static成员变量和static方法。接口匿名类(和接口有关的匿名类)的类体中不可以声明static成员变量和static方法。匿名类一定是内部类。
13、try~catch语句可以由几个catch组成,分别处理发生的相应异常。一个方法在声明时可以使用throws关键字声明要产生的若干个异常。throw的作用就是抛出异常.throw和throws是两个不同的关键字。
14、匿名子类(子类有关的匿名类)一定是final类。匿名子类(子类有关的匿名类)一定不是抽象类。接口匿名类(和接口有关的匿名类)一定是final类。
15、匿名类只一个不带参数的构造方法(编译器会给匿名类一个名字和构造方法)。匿名类一定是final类。匿名类一定是内部类。
16、匿名类没有构造方法。匿名子类(和子类有关的匿名类)的类体中可以定义static方法。
象类。接口匿名类(和接口有关的匿名类)一定是final类。
17、一个方法在声明时可以使用throws关键字声明要产生的若干个异常。匿名类一定是final类。
第八章——常用实用类
、题库考查知识点整理
单选:
1、String 类是final 类,不可以有子类。
2、int m =Short.parseShort(“567”);
3、程序标注的【代码】的输出结果是bird。
4、程序标注的【代码】的输出结果是你好。
5、无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。
6、无编译错误,在命令行执行程序:“java E go on”,运行异常:ArrayIndexOutOfBoundsException: 2。
7、“9dog”.matches("\ddog")的值是true。12hello567 .replaceAll( [123456789]+ , @ )返回的字符串是@hello@。"\hello\n"是正确的字符串常量。
8、"\tea"是正确的字符串常量。"'hello"是正确的字符串常量。"\natural"是正确的字符串常量。
9、表达式"java".equals(“java”)的值是true。表达式"Bird".compareTo(“Bird fly”)的值是负数。表达式"I love you".contains(“you”)的值是true。
10、default966 .matches( [^bc]+[789]{1}[6]{2} )的值是true。表达式"RedBird".indexOf(“Bird”)的值是3。表达式"RedBird".indexOf(“Cat”)的值是-1。
11、Integer.parseInt(“12.9”);会触发NumberFormatException异常。表达式"bird".contentEquals(“bird”)的值是true。表达式"Bird" == "bird"的值是false。
12、表达式 3.14 .matches( [0-9]+[.]{1}[0-9]+ )的值是true。表达式"220301200210250286".startsWith(“2203”)的值是true。表达式"220301200210250286".endsWith(“286”)的值是true。
13、程序标注的【代码】的输出结果是bird。
14、程序标注的【代码】的输出结果是:你好。
15、 String str2 = new String (a); //B错误代码:不能存放数组
16、 int index = str.indexof(“BC”); //A错误代码:O要大写
17、 boolean boo= str.startWith(“Java”); //D错误代码:startsWith
18、int m = “java”.compareto(“java”); //C错误代码:To的T大写
19、 String s = str.subString(0,3); //C错误代码:subsString
20、 boolean bn = str.equal(""); //A错误代码:equals
21、 int m = str.equals(""); //A错误代码:boolean不能转换为int
22、 int n = s.length ; //D错误代码length()
多选:
1、String 类是final 类,不可以有子类。String 类在java.lang中
2、错误:String 类在java.util包中。“abc”=="abc"的值是false .“abc”.equals(“Abc”)的值是true
3、int m =Short.parseShort(“567”);
4、错误:int m =Float.parseFloat(“567”);byte m =Integer.parseInt(“2”);float m =Float.parseDouble(“2.9”);
5、“9dog”.matches("\ddog")的值是true。12hello567 .replaceAll( [123456789]+ , @ )返回的字符串是@hello@。"\hello\n"是正确的字符串常量。
6、错误:new Date(1000)对象含有的时间是公元后1000小时的时间
7、"\tea"是正确的字符串常量。"'hello"是正确的字符串常量。"\natural"是正确的字符串常量。
8、错误:"\hello"是正确的字符串常量。
9、default966 .matches( [^bc]+[789]{1}[6]{2} )的值是true。表达式"RedBird".indexOf(“Bird”)的值是3。表达式"RedBird".indexOf(“Cat”)的值是-1。
10、错误:表达式"RedBird".lastIndexOf(“Bird”)的值是4。
11、Integer.parseInt(“12.9”);会触发NumberFormatException异常。表达式"bird".contentEquals(“bird”)的值是true。表达式"Bird" == "bird"的值是false。
12、错误:表达式"Bird".equals(“bird”)的值是true。
13、表达式 3.14 .matches( [0-9]+[.]{1}[0-9]+ )的值是true。表达式"220301200210250286".startsWith(“2203”)的值是true。表达式"220301200210250286".endsWith(“286”)的值是true。
14、错误:表达式"D:/java/book".lastIndexOf("/")的值是8。
15、String对象的字符序列是不可修改的。StringBuffer对象的字符序列是可修改的。表达式"\t\nABC".length()的值是5。random.nextInt(100);//返回一个0至100之间的随机整数(包括0,但不包括100)。
16、错误:Random对象的nextInt(int n)方法随机返回[0,n]之间的一个整数
17、表达式 java88_hello_99 .matches( [a-zA-Z|0-9|_]+ )的值是true.表达式 abcdef你好 .matches( [0-9.]+ )的值是true.
18、错误:表达式 hello*? .matches( [a-zA-Z|0-9|_]+ )的值是true。表达式 hello .matches( [0-9.]+ )的值是false.
第十章——输入、输出流
题库考查知识点整理
1、BufferedWriter流可以指向FileWriter流。
2、FileOutputStream输出流按字节写出数据。
3、如果程序要写入一个文件,可以创建指向文件的FileWriter输出流。
4、创建FileInputStream 对象,即文件字节输入流可能触发FileNotFoundException异常。
5、FileNotFoundException类是IOException类的子类。
6、FileInputStream流的int read(byte b[]) 方法从源中试图读取b.length个字节到字节数组b中,返回实际读取的字节数目。如果到达文件的末尾,则返回-1。
7、BufferedReader流的源必须是字符输入流(FileReader)。
8、FileOutputStream流顺序地写文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,直到流被关闭。
9、FileInputStream流顺序地读取文件,只要不关闭流,每次调用read方法就顺序地读取源中其余的内容,直到源的末尾或流被关闭。
第十二章——java多线程机制
题库考查知识点整理
1、线程调用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
2、线程新建后,可以调用run方法进入排队状态。
3、run()方法是Runnable接口中的方法。
4、一个进程可以产生多线程。
5、wait()方法、notify()及notifyAll()方法在java.lang.Object中。
6、线程不调用start方法,JVM就不会把它当作一个线程来对待(JVM管理的线程队列有这个线程)。
7、线程处于“新建”状态时(在调用start方法之前),线程调用isAlive()方法返回的值是false。
8、一个线程A调用synchronized方法期间,其他线程不可以能成功调用这个synchronized方法。
9、一个线程A调用synchronized方法期间,执行sleep方法进入中断后,其他线程也不能成功调用这个synchronized方法。
10、新建状态的线程调用isAlive()方法返回的值是false。
11、currentThread()方法是Thread类中的static方法,该方法返回当前正在使用CPU资源的线程.
12、wait()、notify()和notifyAll()都是Object类中的final方法,被所有的类继承、且不允许重写的方法。
13、一个因执行wait方法进入中断状态的线程,需要其他线程执行notify()或notifyAll()通知它结束中断状态。
14、一个线程在执行同步方法时,如果执行wait()方法,使本线程进入中断,就允许其它线程使用这个同步方法。
15、javax.swing.Timer类称为计时器线程,计时器的监视器必须是组件类的子类的实例,否则计时器无法启动。
16、线程在执行完run()方法之前,如果再次让线程执行start方法,就会发生ILLegalThreadStateException 异常。
第十三章——Java网络编程
题库考查知识点整理
1、java.net包中的URL类的实例,即对象封装着着一个具体的资源。
2、URL类创建对象需要捕获MalformedURLException异常 。
3、URL是Uniform Resource Locator的缩写。
4、一个URL对象通常包含最基本的三部分信息:协议、地址、资源。
5、URL类创建对象需要捕获MalformedURLException异常 。
6、URL对象调用InputStream openStream() 方法可以返回一个输入流,该输入流指向URL对象所包含的资源。
7、端口号是一个16位的0~65535之间的整数。
8、Socket的构造方法Socket()创建一个未连接的套接字。
套接字再调用
public void connect(SocketAddress endpoint) throws IOException
请求和参数SocketAddress指定的服务器端的套接字建立连接。
9、客户端的程序使用Socket类建立负责连接到服务器的套接字对象。
10、客户端的程序使用Socket类建立负责连接到服务器的套接字对象。
11、服务器使用ServerSocket对象将客户端的套接字对象和服务器端的一个套接字对象连接起来,从而达到连接的目的。
12、服务器端的ServerSocket对象调用方法accept()返回一个和客户的套接字相连接的套接字对象。
第十四章——图形、图像与音频
题库考查知识点整理
1、Line2D.Double:负责创建“直线”对象
2、RoundRectangle2D.Double:负责创建“圆角矩形”对象
3、Rectangle2D.Double:负责创建“矩形”对象
4、RoundRectangle2D.Double:负责创建“椭圆”对象
5、Arc2D.Double:负责创建“圆弧”对象
6、public void paint(Graphics g)方法是java.awt.Component类提供的方法。
7、Graphicd2D是Graphics的一个子类。
8、Line2D是java.awt.geom包中的类。
9、java.awt.geom包中的的Rectangle2D的静态内部类Double可以创建Rectangle2D对象。
10、new Rectangle2D.Double(0,0,100,50)创建了一个左上角坐标是(0,0),宽和高分别是100和50的Rectangle2D矩形对象。
11、AudioClip和Applet类属于java.applet包中的类。
12、Graphics2D对象调用drawString(String s, int x, int y)方法从参数x、y指定的坐标位置处,从左向右绘制参数s指定的字符串s。
13、new Ellipse2D.Double (10,5,100,50 )创建了一个左上角坐标是(10,5),宽和高分别是100和50的Ellipse2D椭圆对象。
第十五章——Java泛型与集合框架
题库考查知识点整理
1、LinkedList、Stack、ArrayList实现了List接口。
2、removeLast()是LinkedList有,但ArrayList类没有的方法。
3、ArrayList的public void add(int index,E element)方法的执行效率低于LinkedList的效率。
4、ArrayList的public E get(int index)方法的执行效率效率高于LinkedList的效率。
5、ArrayList的public E remove(int index)方法的执行效率低于LinkedList的效率。
6、ArrayList的public E get(int index)方法的执行效率效率高于LinkedList的效率。
7、LinkedList类不是线程安全的,即提供的添加,删除操作都不是同步(synchronized)的。
8、LinkedList类不是线程安全的,即提供的添加,删除操作都不是同步(synchronized)的。
9、Vector类是线程安全的,即提供的添加,删除操作都是同步(synchronized)的。
10、Stack类是线程安全的,即提供的压栈,弹栈操作都是同步(synchronized)的。
11、HashMap<K,V>对象不是采用顺序表这种数据结构存储数据的。HashMap<K,V>对象采用散列表这种数据结构存储数据。