黑马Java_IO知识测试附答案

合集下载

java的io面试题

java的io面试题

java的io面试题在Java编程中,IO(Input/Output)是一个非常重要的概念,用于处理与输入和输出相关的任务。

在面试中,考官通常会问及关于JavaIO的问题,以评估应聘者对Java基础知识的了解程度。

以下是一些常见的Java IO面试题及其答案:1. 什么是流(Stream)?回答:流是Java中处理IO操作的抽象概念。

它代表了数据的传输,可以是从源(输入流)到目标(输出流)的传输。

流分为字节流和字符流两种类型。

2. 字节流和字符流有什么区别?回答:字节流以字节为单位进行数据传输,适用于处理二进制数据或者字节流形式的文本数据。

字符流以字符为单位进行数据传输,适用于处理字符数据。

3. 什么是缓冲流(Buffered Stream)?回答:缓冲流是对字节流和字符流的包装,提供了缓冲功能以提高数据读写的效率。

它通过减少与磁盘之间的实际访问次数来改善性能。

4. 文件读写常用的类有哪些?回答:Java提供了多个类用于文件读写,常见的有File、FileInputStream、FileOutputStream、FileReader、FileWriter等。

5. 如何读取文件内容?回答:可以使用FileInputStream或FileReader来读取文件内容。

首先,通过创建相应的流对象,并指定要读取的文件路径。

然后,使用read方法读取数据,并将其存储到变量中,直到读取完整个文件。

6. 如何写入文件?回答:可以使用FileOutputStream或FileWriter来写入文件。

首先,通过创建相应的流对象,并指定要写入的文件路径。

然后,使用write 方法将要写入的数据以字节或字符的形式传递给流对象。

7. 如何在文件中查找特定内容?回答:可以读取文件的每一行,逐行进行匹配搜索。

可以使用BufferedReader的readLine方法来逐行读取文件内容,并使用String的contains方法判断是否包含目标内容。

黑马Java-IO知识测试附答案

黑马Java-IO知识测试附答案

IO 部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。

单选2分/题,多选4分/题。

多选题不全对半分,全对满分。

1.下列叙述中,正确的是 ( )A. Reader是一个读取文本文件的接口B. Reader是读取二进制数据文件的抽象类C. Reader是一个读取文本文件的抽象类D. Reader是读取二进制数据文件的一般类2.下面关于IO流的说法正确的是( )A. IO流可以分为字节流和字符流B. 和是专门用于读取和写入文本文件的C. 顶层类有InputStream和OutputStreamD. 顶层类有Reader和Writer,他们都是接口//抽象类3.类描述正确的是( )A. 字节输入流B. 字符输入流//没什么说的,记住吧C. 打印流D. 序列化流4.下列关键字能和try一起使用的有( )A. finalB. finalizeC. finallyD. catch5.具有readLine()方法的类是( )A.B. InputStreamReaderC.D. BufferedReader // readLine()方法是缓冲流BufferedReader的特有方法6.关于newLine()方法描述错误的是( )A. newLine()方法写入换行B. newLine()方法会根据不同操作系统自动选择使用相应的换行符C. newLine()方法是类的方法D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法.7.实现下列哪个接口,可以启用序列化功能( )A. Runnable接口B. Comparable接口C. Serializable接口// 这个记住吧D. Comparator接口8.以下关于java异常说法不正确的是()。

java io面试题

java io面试题

java io面试题Java IO(Input/Output)是Java程序中进行输入输出的基础类库,它提供了一套丰富的类和方法,用于处理文件、网络连接、输入流和输出流等操作。

在Java开发中,掌握和理解Java IO的相关知识是非常重要的。

本文将介绍一些常见的Java IO面试题,帮助读者更好地应对面试。

1. 请解释一下Java IO的工作原理。

Java IO主要通过流(Stream)的方式来操纵数据。

流是输入/输出操作的顶级抽象类,它可以理解为是一个数据在源和目标之间的一个通道。

Java中的流按照输入和输出分成了两个体系:输入流(InputStream)和输出流(OutputStream),分别用于读取和写入数据。

其中,输入流从源读取数据,输出流向目标写入数据。

2. 请解释一下字节流和字符流的区别。

Java IO中的字节流(Byte Stream)操作的是8位字节,它适用于二进制文件和字节流形式的输入输出。

而字符流(Character Stream)操作的是16位Unicode字符,它适用于文本文件和字符流形式的输入输出。

字节流和字符流在处理文本文件时有很大的不同,字节流需要自己处理字符编码转换的问题,而字符流则提供了字符编码转换的功能。

3. 请解释一下Java IO中的四种基本的File类(File、FileReader、FileWriter、FileInputStream、FileOutputStream)的作用,并给出它们的示例使用方式。

- File类:用于表示文件或目录的路径,可以操作文件或目录的属性、创建和删除文件或目录等。

```javaFile file = new File("path/to/file.txt");boolean exists = file.exists();boolean isDirectory = file.isDirectory();```- FileReader和FileWriter类:用于从文件中读取字符流和向文件中写入字符流的操作。

黑马Java基础入学测试题_

黑马Java基础入学测试题_

考试题目:本试卷是JAVA基础班入学考试试卷,主要考察JAVA基础前五天大家在入学之前掌握的一个整体情况,本试卷共有40道题,其中有30道是单选,有10道题是多选题,希望大家认真对待1.Sun公司对Java语言的宣传口号为“一次编程,到处执行”,体现了Java的什么特性B A:编程的简单性B:与平台无关性C:Java的面向对象特性D:Java程序的鲁棒性2.Java平台有三个版本,分别是javaSE、JavaME、javaEE,下列说法不正确的是BA.javaSE是指Java语言的标准版B.javaME是指Java语言的标准版C.javaEE是指企业级的Java开发语言,是为企业提供服务的D. javaME是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API.3.想要运行Java程序,必须得先通过______Java源文件,然后再通过______java程序CA. javaw工具编译 javac工具运行B. java工具编译 javac工具运行C. javac工具编译 java工具运行D. java工具编译 java工具编译4.Java语言中的int及char数据类型的长度分别为CA:16位和8 位B:8位和16位C:32位和16位D:32位和8位5.请问byte数据的取值范围是?CA:0-128B:负127-128C:负128-127D:以上都不对6.java语言的源程序经编译后所生成的程序类型为D A:.exe 型的可执行程序B:.obj 型二进制的程序C:.lib 型二进制的库程序D:.class 型类代码的程序7.某java程序的类定义如下: Bclass MyClass{}则java源文件编译后生成的类文件名称为:A:myclass.classB:MyClass.classC:MYCLASS.classD:MyClass.java8.下列那种标识符在java程序中是错误的DA:MyClass_Base12B:_MyClass$Base12C:$MyClass_12D:76MyClass$129.下列那种标识符不能作为java程序中的变量名B A:INTB:booleanC:characterD:Java_Float10.请问,以下哪些语句不是合法的赋值语句?DA:boolean b = true;B:int a = (int)1.23;C:double x = 1.1;D:char c = '10';11.下面()段java语句在编译时不会出现异常和错误。

(完整版)黑马就业班java测试题

(完整版)黑马就业班java测试题

(完整版)黑马就业班java测试题传智播客java 就业班入学测试题共50 道题,每道题 2 分,总分100 分,80 分为合格。

注意,题目有多选,也有单选。

请认真作答。

1. 在JAVA 中,下列哪些说法是正确的(ac )A.java 源文件的扩展名为.javaB. 写好的java源程序可以直接运行C. 编写的源程序必须先编译后才能运行D. 程序员可以读懂扩展名为.class 的文件2. 下列标识符哪个是合法的(bd )A.class B.$abcC.1234D._name3. 下面哪些赋值语句是正确的?(abd )A. long test = 012; // 八进制0, 二进制0b, 十六禁止0xB. float f = -412;C. int other = (int) true; // 不可以转换D. double d = 0x12345678;E. byte b = 128;// 损失精度4. 在Java 中,下列语句不能通过编译的有( ac)A. String s= “join ”+ 3;B. int a= “join ”+3;C. int a= ‘a '+5;D. float f=5+5.5;5. 设a = 3 ,则表达式(--a )<A. 16B. 8C. 24D. 126. 下列代码运行的结果是( c) public static void main(String[] args) {int x = 4; int y = 5;if(x++>4 & ++y>5) { x++;}System.out.println("x=" + x + ",y=" + y);}A. x=4,y=5B. x=4,y=6C. x=5,y=6D. x=6,y=67. 尝试运行下面的代码会发生什么?( b) public class Test {public static void main(String[] args) { boolean m = true; if (m = false) { System.out.println("true");} else {System.out.println("false");}}}A. 输出字符串”true ”B. 输出字符串”false ”C. 编译时错误D. 运行时错误8. 编译并运行以下代码将发生什么?( d ) public static void main(String args[]){ char digit = 'a';for (int i = 0; i < 10; i++){ switch (digit) {case 'x' :{int j = 0;System.out.println(j); } default : {int j = 100;System.out.println(j);}}int i = j;System.out.println(i);}A. 输出11 次100B. 输出10 次100 ,然后抛出运行期异常C. 编译错误,因为变量i 不能在main() 方法中被声明2次D. 编译错误,因为变量j 不能在main() 方法中被声明2次E. 以上都不对9. class Demo b{public static int fun(int c){return c+=2;}public static void main(String[] args){int temp = fun(2);System.out.println(temp);}}A. 2B. 4C. 6D. 810. 下面哪些函数是public void aMethod(){...} 的重载函数?(bd )A. void aMethod( ){...}B. public int aMethod(int a, float b){...}C. public void aMethod (){...}D. public float aMethod (int m){ ?-}11. 在java 中,关于数组描述正确的是( bcd )A. 数组中的索引下标从1开始B. 存储在数组当中的数据都属于同一数据类型C. 通过数组名」ength() 能获得数组的长度D. 数组的最大索引下标是数组的长度减112. 下面程序的输出结果是什么(d )int[] arr = new int[10];System.out.println(arr[0]);A. 编译不通过}}B. 运行时出错C. 输出nullD. 输出013. 下面哪个语句正确地声明一个整型的二维数组A. int a[][] = new int[][]; //没确定 B. int b[10][10] = new int[][];C. int c[][] = new int[10][10];D. int []d[] = new int[10][10];14. 以下代码输出是( d ) class Demo {public static void main(String[] args) { int i = 0; int sum = 0;while (i <= 10) {i++;if (i % 2 != 0) continue;sum += i; }}System.out.println(sum);}A. 55B. 45C. 35D. 3015. 和下面代码能完成相同的选项是(b )class Demo { public static void main(String[] args) {int i = 1;int sum = 0;while (i <= 100) {if (i % 2 == 0) { sum = sum + i;}i++;}System.out.println(sum);( cd) 维数组长度A. for (int x =1; x<=100;x++){ sum=sum+x;}B. for (int x =0; x<=100;x+=2){ sum=sum+x;}C. for (int x =1; x<=100;x+=2){ sum=sum+x;}D. 上述全对16. 下列有关类、对象和实例的叙述,正确的是哪一项?(d)A. 类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B. 对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C. 类是对象的抽象,对象是类的具体化,实例是类的另一个名称D. 类是对象的抽象,对象是类的具体化,实例是对象的另一个名称17. 下面关于java 中包的说法正确的是(acd )A. 在java 中可以使用import 语句导入包B. 在java 中可以使用package 语句导入包C. 位于同一个包中的类,不需要导包就可以直接访问D. 不同的包中可以出现类名相同的类18. 下列有关抽象类的叙述正确的是哪项?(c)A. 抽象类中一定含有抽象方法B. 抽象类既能被实例化也能被继承C. 抽象类的声明必须包含abstract 关键字D. 抽象类中不能有构造方法19. 下列有关接口的叙述错误的是哪项?(d)A. 接口中只能包含抽象方法和常量B. 一个类可以实现多个接口C. 类实现接口时必须实现其中的方法D. 接口不能被继承20. 运行以下代码片段,输出结果是? ( d )class X {Y b = new Y();X() {System.out.print("X");}}class Y {Y() {System.out.print("Y");}public class Z extends X {}Y b = new Y();X() {System.out.print("X");}Y y = new Y();Z() {System.out.print("Z");}public static void main(String[] args) { new Z();}}A. ZB. YZC. XYZD. YXYZ21. 下列关于类的继承的描述,正确的有(bd )A. 一个类可以同时继承多个父类B. 一个类可以具有多个子类C. 子类会自动拥有父类所有的方法// 非私有的D. 一个类继承另一个类需要使用extends 关键字22. 下列选项中关于java 中this 关键字的说法错误的有( bd )A. this 关键字是一个对象的引用B. this 关键字可以用于引用当前类以外其他类型的对象C. this 可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行D. this 可用于静态方法中23. 下列关于构造函数的说法正确的是( ac )A. 方法名必须与类名相同B. 使用new 关键字创建对象时,java 虚拟机会自动调用构造函数C. 我们在定义一个类时,必须要声明至少一个构造函数D. 构造函数中不能使用return 语句可以有24. 编译并运行以下代码将发生什么?( d ) class MyClass {int x;MyClass(int i) {x = i;}public static void main(String args[]) {MyClass m1 = new MyClass(100);MyClass m2 = new MyClass(100);if (m1.equals(m2)) {System.out.println("Both are equal");} else {System.out.println("Both are not equal");}} // 地址值}A. 代码编译时报出错误提示信息“ equals() 方法未定义”B. 编译通过,抛出运行期异常.C. 输出Both are equal.D. 输出Both are not equal25. 运行以下的main() 方法,结果是?( a )1 public static void main(String[] args)2 {3 String myString;4 int x = 100;56 if (x < 100) myString = "x is less than 100";7 if (x > 100) myString = "x is greater than 100";8 System.out.println(myString.length());9 }A.编译时报出错误提示信息“变量myString 没有被初始化”B.编译通过C.编译未能通过。

java黑马 课后基础题

java黑马 课后基础题

java黑马课后基础题
黑马程序员是专注于Java开发的培训机构,其课后基础题可以帮助学员巩
固所学知识,提高编程技能。

以下是一些常见的黑马程序员课后基础题目:
1. 什么是Java中的基本数据类型?请列举出8种基本数据类型,并说明它
们的取值范围。

2. Java中的关键字有哪些?请列举出至少10个关键字,并解释它们的作用。

3. 什么是Java中的注释?请说明单行注释和多行注释的用法。

4. Java中的运算符有哪些?请列举出至少10种运算符,并说明它们的优先级。

5. 什么是Java中的控制流语句?请列举出至少5种控制流语句,并说明它
们的用法。

6. Java中的异常处理机制是什么?请说明try-catch语句的用法。

7. 什么是Java中的类和对象?请说明类和对象的关系。

8. Java中的继承是什么?请说明继承的实现方式。

9. Java中的多态是什么?请说明多态的实现方式。

10. Java中的封装是什么?请说明封装的作用。

以上题目只是黑马程序员课后基础题的一部分,学员可以通过完成这些题目来巩固所学知识,提高自己的编程技能。

同时,也可以通过参考答案和解析来检查自己的答案是否正确,加深对知识点的理解。

【黑马程序员】Java笔试中常见的问题及经典答案

【黑马程序员】Java笔试中常见的问题及经典答案

【黑马程序员】Java笔试中常见的问题及经典答案1、java中实现多态的机制是什么?答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

2、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。

通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。

通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。

当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。

可以。

程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。

3、静态变量和实例变量的区别?答:static i = 10; //常量class A a; a.i =10;//可变4、什么是java序列化,如何实现java序列化?答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。

可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

基本知识黑马面试必考题

基本知识黑马面试必考题

基本知识JDK和JRE的区别答:JDK是java语言开发工具包,包含JRE和开发工具(javac.exe等);JRE是java语言的运行环境,包含JVM和核心类库;JVM是java虚拟机,保证了java的跨平台性。

JVM跨平台吗?答:JVM不具有跨平台性,不同的操作系统所对应的JVM不一样。

正是因为JVM的不跨平台,才能够使java语言具有跨平台性。

保留字是什么?答:保留字是还未使用的关键字,可能在java以后的版本中使用。

有goto和const。

java语言的特点?答:完全面向对象,跨平台性,开源,简单易学,安全可靠,高性能,分布式处理,多线程,健壮性,多态。

main是关键字吗?答:不是的。

main是主函数的名字,能够被虚拟机识别,是程序执行的入口。

\path和classpath的区别?答:path环境变量配置的是可执行文件.exe的执行路径;能够在不同盘符下访问path路径下的可执行文件。

Classpath配置的java语言编译后生成的字节码文件的执行路径。

7. 计算机最基本的存储单位是:字节(byte)计算机能直接识别的进制是:二进制8进行运算的时,变量和常量有什么区别?答:变量在运算过程中的值是变化的,可以被多次赋值。

常量则是固定的。

9标识符的组成?以及命名规则?答:标识符有26个字母的大小写,0到9,_和$组成。

命名规则:不能使用关键字,不能数字开头,严格区分大小写,要见名知义。

函数名和变量名如果是多个单词组成,第一个单词的首字母小写,其余首字母大写。

类名和接口名如果是多个单词组成,首字母全部大写。

包名全部小写。

常量名全部大写,如果是多个单词,用_隔开。

10.变量数据类型分为哪几种?如何使用变量?答:基本数据类型:整形:包括byte、short、int、long。

浮点型:包括float、doble。

字符型;char;布尔型:boolean。

引用数据类型:数组、类、接口。

变量需要先定义,再赋值,才能使用。

黑马测试题及答案

黑马测试题及答案

黑马测试题及答案一、单项选择题(每题2分,共10题)1. 以下哪个选项是计算机编程语言?A. 英语B. 法语C. 汉语D. Python答案:D2. 互联网的全称是什么?A. 国际互联网B. 万维网C. 局域网D. 广域网答案:A3. 以下哪个选项不是计算机硬件?A. CPUB. 内存C. 硬盘D. 操作系统答案:D4. 计算机病毒的主要传播途径是什么?A. 电子邮件B. 网络下载C. 移动存储设备D. 以上都是5. 以下哪个选项是数据库管理系统?A. ExcelB. WordC. PowerPointD. Photoshop答案:A6. 以下哪个选项是计算机操作系统?A. WindowsB. LinuxC. AndroidD. 以上都是答案:D7. 以下哪个选项是计算机编程语言?A. JavaB. C++C. RubyD. 以上都是答案:D8. 以下哪个选项是计算机存储单位?A. 字节B. 千字节C. 兆字节D. 以上都是答案:D9. 以下哪个选项是计算机网络协议?B. FTPC. TCP/IPD. 以上都是答案:D10. 以下哪个选项是计算机图形处理单元?A. GPUB. CPUC. RAMD. ROM答案:A二、多项选择题(每题3分,共5题)1. 以下哪些选项是计算机硬件?A. 显示器B. 键盘C. 鼠标D. 操作系统答案:A, B, C2. 以下哪些选项是计算机软件?A. 操作系统B. 文字处理软件C. 图像编辑软件D. 游戏答案:A, B, C, D3. 以下哪些选项是计算机存储设备?A. 固态硬盘B. 机械硬盘D. 优盘答案:A, B, C, D4. 以下哪些选项是计算机编程语言?A. PHPB. JavaScriptC. SwiftD. Kotlin答案:A, B, C, D5. 以下哪些选项是计算机网络协议?A. SMTPB. POP3C. IMAPD. SNMP答案:A, B, C, D三、判断题(每题1分,共5题)1. 计算机病毒只能通过电子邮件传播。

黑马Java-IO知识测试--A卷.docx

黑马Java-IO知识测试--A卷.docx

IO部分测试题考试宣言 :同学们 , 考试考多少分不是我们的目的 ! 排在班级多少的名次也不是我们的初衷 !我们考试的目的是要通过考试中的题目, 检查大家在这段时间的学习中 , 是否已经把需要掌握的知识掌握住了, 如果哪道题目你不会做,又或者做错了 , 那么不用怕 , 考完试后 , 导师讲解的时候你要注意听 ! 那时候学会了 , 记住了 , 也一样不影响你高薪就业 !本套题共 40 道不定项选择题,其中单选 30 道,多选 10 道。

单选 2 分/ 题,多选 4 分/ 题。

多选题不全对半分,全对满分。

1.下列叙述中,正确的是 ( C)A.Reader是一个读取文本文件的接口B.Reader是读取二进制数据文件的抽象类C.Reader是一个读取文本文件的抽象类D.Reader是读取二进制数据文件的一般类2.下面关于 IO 流的说法正确的是 ( ABC )A.IO 流可以分为字节流和字符流B.和是专门用于读取和写入文本文件的C.顶层类有InputStream和OutputStreamD.顶层类有Reader和Writer,他们都是接口3.类描述正确的是 ( B )A.字节输入流B.字符输入流C.打印流D.序列化流4.下列关键字能和 try 一起使用的有 ( CD)A.finalB.finalizeC.finallyD.catch5.具有 readLine()方法的是( D )A.B.InputStreamReaderC.D.BufferedReader6.关于 newLine() 方法描述的是( C )A.newLine()方法写入行B.newLine()方法会根据不同操作系自使用相的行符C.newLine()方法是的方法D. newLine()方法是BufferedWriter的方法7.下列哪个接口,可以启用序列化功能( C )A. Runnable接口 CB. Comparable接口C. Serializable接口D. Comparator接口8.以下关于 java 异常法不正确的是( D )。

黑马面试题汇总(理论部分)

黑马面试题汇总(理论部分)

理论题1.Java语言基础1. 数组是引用数据类型还是基本数据类型?答:数组是引用数据类型.2. java的数据类型有哪些?答:(1)基本数据类型.整数型:byte short int long浮点型:float double字符型:char布尔类型:boolean(2)引用数据类型类接口数组3.冒泡排序和选择排序的区别?答:(1)冒泡排序依次比较相邻的两个数,将小数(或者大数)放在前面,大数(或者小数)放在后面,如此下去,重复以上过程,直至最终完成排序.(2)选择排序每一趟从待排序的数组元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列最后,直到全部待排序的数据元素排完.4. i++和++i的区别?答:简单的来说,++i和i++,在单独使用的时候,就是i=i+1;而a=++i,相当于i=i+1;a=i;而a= i++,相当于a=i;i = i+1;5.short s1 = 1; s1 = s1 + 1;有什么错? short s1 =1; short s1 +=1;有什么错?答:对于前者,由于s1 + 1 运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器会报告需要强制类型转换的错误.对于short s1 = 1; s1 +=1; 由于+=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译.6.&& 和& 的区别?答:7."==" 和equals 方法究竟有什么区别?答:"=="操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用"=="操作符.如果一个变量指向的数据是对象类型的,那么这时候就涉及到了两块内存,对象本身占用了一块内存(堆内存),变量也占用了一块内存.此时变量所对用的内存中存储的数值就是对象占用的那块内存的首地址.对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象.即要看这两个变量所对应的内存中的数值是否相等,这时候需要用==操作符进行比较.A:==a:基本类型比较的是基本类型的值b:引用类型比较的是引用类型的地址值B:equals()只能比较引用类型。

最新黑马Java-IO知识测试附答案

最新黑马Java-IO知识测试附答案

IO 部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。

单选2分/题,多选4分/题。

多选题不全对半分,全对满分。

1.下列叙述中,正确的是 ( )A. Reader是一个读取文本文件的接口B. Reader是读取二进制数据文件的抽象类C. Reader是一个读取文本文件的抽象类D. Reader是读取二进制数据文件的一般类2.下面关于IO流的说法正确的是( )A. IO流可以分为字节流和字符流B. FileReader和FileWriter是专门用于读取和写入文本文件的C. 顶层类有InputStream和OutputStreamD. 顶层类有Reader和Writer,他们都是接口//抽象类3.FileReader类描述正确的是( )A. 字节输入流B. 字符输入流//没什么说的,记住吧C. 打印流D. 序列化流4.下列关键字能和try一起使用的有( )A. finalB. finalizeC. finallyD. catch5.具有readLine()方法的类是( )A. FileWriterB. InputStreamReaderC. FileReaderD. BufferedReader // readLine()方法是缓冲流BufferedReader的特有方法6.关于newLine()方法描述错误的是( )A. newLine()方法写入换行B. newLine()方法会根据不同操作系统自动选择使用相应的换行符C. newLine()方法是FileWiter类的方法D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法.7.实现下列哪个接口,可以启用序列化功能( )A. Runnable接口B. Comparable接口C. Serializable接口// 这个记住吧D. Comparator接口8.以下关于java异常说法不正确的是()。

黑马程序员java面试题

黑马程序员java面试题

黑马程序员java面试题一、简介Java是一门广泛应用于各个领域的高级编程语言,人们通常用它来开发各种应用程序。

在Java的学习和应用过程中,面试是进入一家公司或组织的必经之路。

本文将介绍一些黑马程序员Java面试中常见的问题和回答。

二、面试问题1. 什么是Java?Java是一种面向对象的编程语言,具有跨平台特性,是由Sun Microsystems公司于1995年推出的。

它是一种通用的、高级的、并发的、强类型的编程语言。

2. Java中的四种引用类型是什么?它们有什么区别?Java中的四种引用类型分别是强引用、软引用、弱引用和虚引用。

它们的区别在于对对象的引用强度和垃圾回收的时机。

3. 请解释Java中的多态性。

多态性是指同一个方法调用可以有不同的行为,具体取决于对象的实际类型。

在Java中,多态性通过继承和接口实现。

4. 请解释Java中的封装性。

封装性是指将数据和方法封装在一个类中,隐藏了内部实现细节,通过公共方法提供对外访问。

5. 请解释Java中的线程与进程的区别。

进程是指正在进行的一个程序,它具有独立的内存空间和系统资源。

线程是进程的子任务,共享父进程的内存空间和系统资源。

6. 请解释Java中的异常处理机制。

Java中的异常处理机制通过try-catch-finally代码块来实现。

当发生异常时,程序会跳转到相应catch块进行处理。

7. 请解释Java中的垃圾回收机制。

Java中的垃圾回收机制通过自动垃圾回收器回收不再使用的内存资源,使程序员不需要手动进行内存管理。

8. 请解释Java中的泛型。

泛型是Java中的一种参数化类型机制,可以在类或方法定义时指定一个类型变量,使类或方法可以支持多种数据类型。

9. 请解释Java中的面向对象编程与面向过程编程的区别。

面向对象编程注重对象的封装、继承、多态等概念,关注于问题的抽象和模块化。

面向过程编程则注重解决问题的步骤和过程。

10. 请解释Java中的静态方法和实例方法的区别。

【黑马程序员】Java试题、50道Java面试题集(2019最新版)41-50

【黑马程序员】Java试题、50道Java面试题集(2019最新版)41-50

【黑马程序员】Java试题、50道Java面试题集(2019最新版)41-50以下的内容是对原有的和最近Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,相对来说比较经典,相信对准备入职的Java程序员一定有所裨益。

41、日期和时间:1)如何取得年月日、小时分钟秒?2)如何取得从1970年1月1日0时0分0秒到现在的毫秒数?3)如何取得某月的最后一天?4)如何格式化日期?答:操作方法如下所示:1)创建java.util.Calendar 实例,调用其get()方法传入不同的参数即可获得参数所对应的值2)以下方法均可获得该毫秒数:Calendar.getInstance().getTimeInMillis();System.currentTimeMillis();//何问起3)示例代码如下:Calendar time = Calendar.getInstance();time.getActualMaximum(Calendar.DAY_OF_MONTH);//何问起4)利用java.text.DataFormat 的子类(如SimpleDateFormat类)中的format(Date)方法可将日期格式化。

42、打印昨天的当前时刻。

答:public class YesterdayCurrent {public static void main(String[] args){Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);System.out.println(cal.getTime());}} //何问起黑马程序员视频库网址:(海量热门编程视频、资料免费学习)学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 3285264708 / 354966419543、比较一下Java 和JavaSciprt。

黑马集合知识测试(带解析)

黑马集合知识测试(带解析)
//ListIteratorit =al.ListIterator();要解决并发修改异常,就要用LIst集合特有的迭代器.这个迭代器可以同时做到上面的操作.
22.关于Map.Entry接口说法错误的是( )
a)具有getkey()方法
b)具有getValue()方法
c)具有keySet()方法//这个方法是map集合的.
c)哈希表结构
d)红黑树结构
3.LinkedList类的特点是( )
a)查询快
b)增删快//由于底层是链表结构,所以增删快,查询慢.
c)元素不重复
d)元素自然排序
4.Vector类的特点是( )
a)线程同步//这是早期工具的特性之一,安全性高,后来出现的集合都是求效率.b)线程不同步Biblioteka c)增删快d)底层是链表结构
c) <Map.Entry<String, Integer>>
map.keySet()
Map.Entry
d)<Map.Entry<String, Integer>>
map.entrySet()
Map.Entry
24.Set集合的特点是( )
a)元素有序
b)元素无序,不存储重复元素//记住.
c)存储重复元素
b) java.util.Collection
c) java.util.List
d) java.util.Set
7.实现下列哪个接口,可以启用比较功能( )
a)Runnable接口
b)Iterator接口
c)Serializable接口
d)Comparator接口//比较器接口
8.下面代码运行的结果是( )

【黑马程序员】Java试题、50道Java面试题集(2019最新版)11-20

【黑马程序员】Java试题、50道Java面试题集(2019最新版)11-20

【黑马程序员】Java试题、50道Java面试题集(2019最新版)11-20以下的内容是对原有的和最近Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,相对来说比较经典,相信对准备入职的Java程序员一定有所裨益。

11、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?答:早期的JDK中,switch(expr)中,expr可以是byte、short、char、int。

从1.5版开始,Java中引入了枚举类型(enum),expr也可以是枚举,从JDK 1.7版开始,还可以是字符串(String)。

长整型(long)是不可以的。

12、用最有效率的方法计算2乘以8?答:2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次方)。

补充:我们为编写的类重写hashCode方法时,可能会看到如下所示的代码,其实我们不太理解为什么要使用这样的乘法运算来产生哈希码(散列码),而且为什么这个数是个素数,为什么通常选择31这个数?前两个问题的答案你可以自己百度一下,选择31是因为可以用移位和减法运算来代替乘法,从而得到更好的性能。

说到这里你可能已经想到了:31 * num <==> (num << 5) - num,左移5位相当于乘以2的5次方(32)再减去自身就相当于乘以31。

现在的VM都能自动完成这个优化。

1 package com.loonstudio;23 public class PhoneNumber {4 private int areaCode;5 private String prefix;6 private String lineNumber;78 @Override9 public int hashCode() {10 final int prime = 31;11 int result = 1;12 result = prime * result + areaCode;13 result = prime * result14 + ((lineNumber == null) ? 0 : lineNumber.hashCode());15 result = prime * result + ((prefix == null) ? 0 : prefix.hashCode());16 return result;17 }1819 @Override20 public boolean equals(Object obj) {21 if (this == obj)22 return true;23 if (obj == null)24 return false;25 if (getClass() != obj.getClass())26 return false;27 PhoneNumber other = (PhoneNumber) obj;28 if (areaCode != other.areaCode)29 return false;30 if (lineNumber == null) {31 if (other.lineNumber != null)32 return false;33 } else if (!lineNumber.equals(other.lineNumber))34 return false;35 if (prefix == null) {36 if (other.prefix != null)37 return false;38 } else if (!prefix.equals(other.prefix))39 return false;40 return true;41 }4243 } //何问起13、数组有没有length()方法?String 有没有length()方法?答:数组没有length()方法,有length 的属性。

黑马程序员测试题练习(一)

黑马程序员测试题练习(一)

黑马程序员测试题练习(一)1. 在JAVA中,下列哪些说法是正确的A.java源文件的扩展名为.javaB.写好的java源程序可以直接运行C.编写的源程序必须先编译后才能运行D.程序员可以读懂扩展名为.class的文件Java程序的后缀名,及java程序的运行机制:.java 源文件javac编译生成字节码文件(.clsss文件)java执行2. 在java中,关于数组描述正确的是A.数组中的索引下标从1开始B.存储在数组当中的数据都属于同一数据类型C.通过数组名.length()能获得数组的长度D.数组的最大索引下标是数组的长度减1数组:存储的是同一种数据类型的元素。

索引从0开始,到个数-1。

它有一个length属性,可以用来获取数组的元素个数。

3. 下列标识符哪个是合法的A.classB.$abcC.1234D._name标识符:可以有字母,数字,下划线和美元符组成。

不能以数字开头不能和java中的关键字重名4. 下面程序的输出结果是什么( )int[] arr = new int[10];System.out.println(arr[0]);A.编译不通过B.运行时出错C.输出nullD.输出0数组:Java中的数据类型:基本数据类型:4类8种整型:byte,short,int,long浮点型:float,double字符型:char布尔型:boolean注意:整型默认是int,浮点型默认是double。

long类型要以l或者L标识,float类型要以f或者F 标识。

隐式转换:从小到大boolean类型不参与转换。

byte,short,char int long float - double 强制转换:(数据类型)被转换的数据float f = (float)12.5; float f = 12.5f;引用数据类型:类,接口,数组引用数据类型的数据存储在堆内存中:都有默认值。

整型:0浮点型:0.0布尔型:false字符型:’\u0000’空字符5. 下面哪些赋值语句是正确的?( )A. long test = 012;B. float f = -412;C. int other = (int) true;D. double d = 0x12345678;E. byte b = 128;定义变量:数据类型变量名 = 初始化值;6. 下面哪个语句正确地声明一个整型的二维数组( )A. int a[][] = new int[][];B. int b[10][10] = new int[][];C. int c[][] = new int[10][10];D. int []d[] = new int[10][10];数组定义:[]int[] arr;int arr[];二维数组的定义:第一维的长度必须给出。

黑马程序员基础评测:IO(输入输出)

黑马程序员基础评测:IO(输入输出)

黑马程序员基础评测:IO(输入输出)以下题目为单选题或多选题,请认真作答。

请在您认为正确的答案前勾选“√”1判断是否是文件,可以通过哪个方法实现( ) ----- 单选A、isFile()B、isHidden()C、canRead()D、isDirectory()2下列哪一个import命令可以使我们在程序中创建输入/输出流对象( ) ----- 单选A、import java.sql.*;B、import java.io.*;C、import .*;D、import java.util.*;3下面哪个路径是绝对路径( ) ----- 单选A、海贼王/路飞大战白骨精.aviB、火影忍者/鸣人大战孙悟空.aviC、F/七龙珠/贝吉塔大战艾露莎.aviD、c:/妖精的尾巴/夏向露西表白.avi4字节输入流的抽象基类是( ) ----- 单选A、OutputStream类B、InputStream类C、Writer类D、Reader类5Properties说法正确的是?----- 单选A、是IO包下的B、是双列集合C、是单列集合D、以上都不对6声明该方法可能抛出的异常应使用哪个关键字?--------单选A、throwsB、throwC、catchD、try7以下关于java异常说法错误的是( ) ----- 单选A、Throwable 类是Java 语言中Error类和Exception类的父类B、当异常对象是Exception类(或其子类)的实例时,能通过Java 虚拟机或者throw 语句抛出该异常对象,并能通过try…catch…finally处理C、JDK6(包括JDK6)之前,如果想要用一个catch块捕捉多个异常对象,则catch 子句中的参数类型应是所有存在的异常对象的父类D、以上说法都不对8下面用字符流能成功拷贝的文件有?( )---- 单选A、java基础自测题.docB、学生考试答案.txtC、Student.mp4D、学生信息表.xlsx9针对写一个try,多个catch的异常处理代码,catch里边异常类型的顺序是( ) ----- 多选A、如果异常是平级,没有顺序关系B、如果异常是平级,有顺序关系C、如果异常存在子父类关系,父类一定要放在最后D、如果异常存在子父类关系,父类可以放在任意位置10判断一个文件的大小我们可以使用哪个方法( ) ----- 多选A、File类的length()方法B、File类的available()方法C、FileInputStream类的length()方法D、FileInputStream类的available()方法交卷。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IO 部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。

单选2分/题,多选4分/题。

多选题不全对半分,全对满分。

1.下列叙述中,正确的是 ( )A. Reader是一个读取文本文件的接口B. Reader是读取二进制数据文件的抽象类C. Reader是一个读取文本文件的抽象类D. Reader是读取二进制数据文件的一般类2.下面关于IO流的说法正确的是( )A. IO流可以分为字节流和字符流B. FileReader和FileWriter是专门用于读取和写入文本文件的C. 顶层类有InputStream和OutputStreamD. 顶层类有Reader和Writer,他们都是接口//抽象类3.FileReader类描述正确的是( )A. 字节输入流B. 字符输入流//没什么说的,记住吧C. 打印流D. 序列化流4.下列关键字能和try一起使用的有( )A. finalB. finalizeC. finallyD. catch5.具有readLine()方法的类是( )A. FileWriterB. InputStreamReaderC. FileReaderD. BufferedReader // readLine()方法是缓冲流BufferedReader的特有方法6.关于newLine()方法描述错误的是( )A. newLine()方法写入换行B. newLine()方法会根据不同操作系统自动选择使用相应的换行符C. newLine()方法是FileWiter类的方法D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法.7.实现下列哪个接口,可以启用序列化功能( )A. Runnable接口B. Comparable接口C. Serializable接口// 这个记住吧D. Comparator接口8.以下关于java异常说法不正确的是()。

A. Throwable 类是 Java 语言中Error类和Exception类的父类。

B. 当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw语句抛出该异常对象,并能通过try…catch…finally处理。

C. jdk6(包括jdk6)之前,如果只用一个catch块捕捉多个异常对象,则catch 子句中的参数类型应是所有存在的异常对象的父类。

D. 以上说法都不对。

9.字节输出流的抽象基类是( )A. OutputStream类 //记住吧,没什么说的.B. InputStream类C. Writer类D. Reader类10.下面程序的运行结果是( )FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”);fos.write(“abc”); // 字节流没有write 字符串的方法.看API就明白了.fos.close();A. 在C盘创建文件demo.txt,但文件是空的B. 在C盘创建文件demo.txt,并写入数据abcC. 将C盘已有的文件demo.txt中追加写入abcD. 编译失败//字节流没有 write(“字符串”)的方法,所以编译出错.11.下列关于Java中文件输入输出的说法正确的是 ( )A. 在Java中,文件的输入输出功能是通过流来实现的B. 如果要把数据写入一个文件中,需要创建一个流对象C. 字符流在某些方面比如图片的处理,比字节流更方便D. 可以通过Reader r = new Reader(“c:\\java.txt”);创建一个输入流对象12.Properties类中的哪个方法可以和IO流相关联( ) //这个类重点掌握,就业班会用的到.A. getProperty()B. setProperty()C. load() //load()方法把文件中的数据加载到集合中, store()方法把集合中的数据在存到文件中去.这是properties特有的方法,有实用价值.D. stringPropertyNames()13.关于打印流PrintWriter说法正确的是( )A. 该流只操作数据目的,不操作数据源B. 该流只操作数据源,不操作数据目的C. 如果启用了自动刷新,该流调用println()方法时可以自动刷新D. 该流是Writer的子类14.下面关于Java中异常处理try块的说法正确的是( )A. try块后通常应有一个catch 块,用来处理try块中抛出的异常。

B. catch 块后必须有finally块。

//不是必须的C. 释放资源的代码应放在try块中。

//是应该放在finally里面D. 对抛出的异常的处理必须放在try块中//放在catch里面15.File类中的listFiles()方法说法正确的是( )A. 获取File对象封装的路径下的全部文件和文件夹对象B. 只获取File对象封装的路径下的文件C. 该方法返回File类型数组D. 该方法返回String类型数组16.下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。

import java.io.*;public class Test {public static void main(String args[]) {try {String s="ABCDE ";byte b[]=s.getBytes();FileOutputStream file=new FileOutputStream("test.txt",true); //看这里file.write(b);file.close();}catch(IOException e) {System.out.println(e.toString());}}}A. ABCABCB. ABCDEC. TestD. ABCDE ABCDE ABCDE17.以下哪两个流对象可以实现任意类型文件的成功复制( )A. FileReader 和 FileWriterB. FileInputStream和FileOutputStream //任意文件,那只能是字节流.C. BufferedReader和 BufferedWriterD. InputSteamReader和OutputStreamWriter18.下面说法不正确的是 ( )A. final是个关键字,用来修饰成员变量(此变量就为常量)、成员方法(此方法不能被重写)、类(此类不能被继承)B. finally是异常处理的一部分,它里面的代码正常情况下永远被执行C. finalize是Object类中定义的,用于垃圾回收,由垃圾回收器调用。

D. final、finally、finalize三个关键字都可以在类的内部使用//finalize不是关键字,他是一个方法名19.关于File类中的exists()方法说法错误的是( )A. 判断File对象中封装的路径所对应的文件或者文件夹是否存在B. 此方法返回boolean类型值C. 判断File对象封装的路径是否是相对路径D. 判断File对象封装的路径是否是绝对路径20.下面哪个流是字节通向字符的桥梁( )A. InputStreamReader // 看下API,上面写的很清楚. 那大家想想,字符流通向字节流的桥梁是哪个?B. OutputStreamWriterC. LineNumberReaderD. ObjectInputStream21.关于对象的序列化说法错误的是( )A. 实现序列化的对象必须实现Serializable接口B. 实现序列化的对象必须自定义序列号//可以不用定义,这个开发很少用.C. ObjectOutputStream中的writeObject()方法可以将对象写出D. ObjectInputStream中的readObject()方法可以读取对象22.关于字符输入流FileReader描述错误的是( )A. 可以读取文本文件B. 是Reader的子类C. 具有读取一行的方法//ReadLine是BufferedReader的特有方法D. 无法获得要读取文件的字节数23.下面关于java中输入/输出流的说法正确的是( )。

A. FileInputStream与FileOutputStream类用来读、写字节流。

B. FileReader与FileWriter类用来读、写字符流。

C. File类既可以用来读文件,也可以用来写文件。

//仅仅是关联,读写是流的操作D. File类用来处理与文件相关的操作。

24.使用字符流可以成功复制哪些文件( )A. 文本文件//字符流只能做这个,其他文件可能会有丢失.B. 图片文件C. 视频文件D. 以上都可以复制25.java.io包中提供的用于筛选文件名的接口是( )A. DataInputB. DataOutputStreamC. RandomAccessFileD. FileNameFilter //查API吧26.下列流中哪一个使用了缓冲区技术( )A. BufferedOutputStream //Buffered表示缓冲B. FileInputStreamC. DataOutputStreamD. FileReader27.通常情况下,下列哪一个类的对象可以作为BufferedReader类的构造函数的参数( )A.InputStreamReaderB.PrintStreamC.OutputStreamReaderD.PrintWriter28.若要创建一个新的含有父目录的目录,应该使用下列哪一个类的实例( )A.RandomAccessFileB.FileOutputStreamC.FileD.以上都对29.如果在当前目录下不存在Hello.txt 文件,试图编译和运行下面代码会输出什么import java.io.*;public class Mine {public static void main(String argv[]){Mine m=new Mine();System.out.println(m.amethod());}public int amethod() {try {FileInputStream dis=new FileInputStream("Hello.txt");}catch (FileNotFoundException fne) {System.out.println("No such file found");return -1;}catch(IOException ioe) {} finally{System.out.println("Doing finally");}return 0;}}A. No such file foundB. No such file found ,-1C. No such file found, Doing finally, -1 //好好研究D. 030.与InputStream流相对应的Java系统的标准输入对象是A.System.inB.System.outC.System.errD.System.exit()31.文件输出流的构造方法是public FileOutputStream(String name,Boolean append)throws FileNotFoundException,当参数append的值为true时,表示( )A.创建一个新文件B. 在原文件的尾部添加数据C. 覆盖原文件的内容D. 在原文件的指定位置添加数据32.下面的程序段的功能是 ()File file1=new File("e:\\xxx\\yyy");file1.mkdir();A. 在当前目录下生成子目录:\xxx\yyyB. 生成目录:e:\xxx\yyyC. 在当前目录下生成文件xxx.yyyD. 以上说法都不对33.下列哪两个方法可以创建目录( )A. createNewFile()B. createTempFile()C. mkdir()D. mkdirs() //开发建议用这个,它可以创建多层级目录,也可以创建单级目录.如果用mkdir(),有时会报错.34.下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。

相关文档
最新文档