公司内部Javaio流笔试题

合集下载

Java笔试题共23题(附答案)

Java笔试题共23题(附答案)
4、遍历第二个集合,并用第一个集合判断是否包含第一个
集合的元素,如果不包含就向集合一添加元素
5、打印集合1,就是想要的结果
*/
//导包
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
class Test {
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Arrays;
System.out.println(str+"---"+map.get(str));
}
System.out.println("----------------------");
//获取map的键值对集合
Set<Entry<String, String>> mset = map.entrySet();
}
}
System.out.println(list1);
}
}
/////////////////////////////////////////////////////////////////////
"3
/*
题目:
已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,
//高效字符输入流得到数据源

java笔试面试题目(3篇)

java笔试面试题目(3篇)

第1篇一、选择题(每题2分,共20分)1. 下列关于Java虚拟机(JVM)的说法,正确的是()。

A. JVM是Java程序的运行环境B. JVM是Java程序的编写环境C. JVM是Java程序的调试环境D. JVM是Java程序的编译环境解析:A。

JVM是Java程序的运行环境,负责将字节码转换为机器码执行。

2. 下列关于Java数据类型的说法,正确的是()。

A. Java中所有数据类型都是引用类型B. Java中基本数据类型包括int、float、char等C. Java中所有数据类型都是基本数据类型D. Java中基本数据类型包括int、float、char等,引用数据类型包括String、Object等解析:D。

Java中基本数据类型包括int、float、char等,引用数据类型包括String、Object等。

3. 下列关于Java面向对象的说法,正确的是()。

A. Java不支持面向对象编程B. Java支持面向对象编程,但不支持继承和多态C. Java支持面向对象编程,包括继承、多态、封装等特性D. Java支持面向对象编程,但封装不是Java面向对象的核心特性解析:C。

Java支持面向对象编程,包括继承、多态、封装等特性。

4. 下列关于Java异常处理的说法,正确的是()。

A. Java异常处理可以通过try-catch语句实现B. Java异常处理可以通过finally语句实现C. Java异常处理可以通过throw语句实现D. 以上说法都不正确解析:A。

Java异常处理可以通过try-catch语句实现。

5. 下列关于Java集合框架的说法,正确的是()。

A. Java集合框架包括List、Set、Map等接口B. Java集合框架包括List、Set、Map等类C. Java集合框架包括List、Set、Map等接口和类D. 以上说法都不正确解析:C。

Java集合框架包括List、Set、Map等接口和类。

java笔试题大全JAVA应聘笔试题目与答案

java笔试题大全JAVA应聘笔试题目与答案

Java基础笔试题目1. Java中的异常处理机制的简单原理和应用。

当java程序违反了java的语义规则时,java虚拟机就会将发生的错误表示为一个异常。

违反语义规则包括2种情况。

一种是java类库内置的语义检查。

例如数组下标越界,会引发indexoutofboundsexception;访问null的对象时会引发nullpointerexception。

另一种情况就是java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw 关键字引发异常。

所有的异常都是ng.thowable的子类。

2. 在java中,程序员能否实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收?java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不再需要考虑内存管理。

由于有个垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。

垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。

垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。

回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

3. error与exception有什么区别?error表示系统级的错误和程序不必处理的异常,exception表示需要捕捉或者需要程序进行处理的异常。

4. 在java中一个类被声明为final类型,表示了什么意思?表示该类不能被继承,是顶级类。

5 下段脚本是否有错?如有错,请指出;若无错,请说明输出内容。

1)class Something {2)int i;3)public void doSomething() {4)System.out.println("i = " + i);5)}6)}正确。

java基础IO流综合加习题

java基础IO流综合加习题

java基础IO流综合加习题1. IO流初学者在学习时都有⼀点迷糊,今天我们就讲讲IO流,希望通过讲解可以帮助⼤家2. IO流分为字节流,字符流,缓冲流.我们只要记住这三个就可以了. 1*字节流有:字节输⼊流(FileInputStream),字节输出流(FileOutputStream). 2*字符流有:字符输⼊流(FileReader),当让也有字符输出流(FileWriter); 字节流>>字节输⼊流,⽆⾮就是读取⽂件,初学者可以这么认为,把⽂档的读取出来放在缓冲区⾥(假设有这个缓冲区) >>字节输出流,也就是从这个假设的缓冲区⾥把读取出来 字符流>>也是⼀个道理.不过字符流只可以操作纯⽂本⽂件,他被开发出来就是⽤来操作⽂本⽂件的,什么是纯⽂本⽂件呢?? 纯⽂本⽂件也就是可以⽤记事本打开的⽂件. 后期,我们⽤到字符流的地⽅,⽆⾮就是操作这些纯⽂本⽂件,读取⽂件类容,在控制台打印啊,或者⼿写⼀个字符串录⼊到⽂档中等; ⼀:通过习题我们来认识字节流: 今天就和⼤家分享⼀下字节流拷贝⽂件.将会⽤上java基础阶段字节流的所有⽅法 /* *键盘输⼊⼀个⽂件夹地址,将其中的⽂件拷贝到另⼀个⽂件夹下.只拷贝.java⽂件 *分析:1.拿到这个题,我们还是⼤问题变成⼩问题解决 * (1)键盘输⼊>>>要判断是否是⼀个正确的⽂件夹路径>>我们可以把输⼊的字符串封装到File中⽤exists()判断是否存在返回值boolean类型 * (2)拿到正确的⽂件夹地址.我们开始选择⽤什么流拷贝呢,刚才我也说了字符流适合操作纯⽂本⽂件,所以我们遇到⾮纯⽂本的适合直接选择字节流 * (2_1)有⼈会问,那缓冲流呢??别急,其实缓冲流是服务字节流,字符流的,你可以认为他就⼀个8缸的汽车发动机,让汽车变飞机的快感,说道这⾥你也应该明⽩ * 缓冲流是⼲嘛的吧,也就是在字节字符流读取写⼊⽂件的时候速度加快⽤的,其实底层是⼀个缓冲区,8*1024个字节. * (3)拷贝⽂件夹的时候,⽂件夹中不可能只有⽂件也有⼦⽂件夹,我们这⾥要⽤到递归,天哪,好⿇烦啊,⼀会我们做代码你会发现,其实也就那样 * (4)那⽂件夹中⼜有⽂件夹⼜有⽂件,那我们怎么分辨呢? File给我提供了判断的⽅法:isFile()判断⽂件.isDirectory()判断⽂件夹 * (5)那获取到他们要讲他们先放在那⾥呢?把这些⽂件夹和⽂件放在数组⾥?可是没有这个⽅法啊,这个File给我提供了专门的数组File[] */ 来吧>开始做题 第⼀步:键盘输⼊>>>要判断是否是⼀个正确的⽂件夹路径private static File getScanner() { //键盘输⼊Scanner sc = new Scanner(System.in);System.out.println("请输⼊⽂件夹的路径:");while(true){String string = sc.nextLine(); //封装键盘输⼊的⽂件地址File file = new File(string); //判断⽂件夹地址是否存在if(!file.exists()){System.out.println("你输⼊的⽂件路径不存在,请重新输⼊:"); //判断是否为⽂件地址}else if(file.isFile()){System.out.println("你输⼊的是⽂件,不是⽂件夹,请重新输⼊:");}else{ //最后返回⽂件夹地址return file;}}} 第⼆步:拷贝private static void copy(File src, File dest) throws IOException {//拿到刚才输⼊的两个⽂件夹地址源⽂件地址为src 要接收的⽂件夹的地址为dest//把源⽂件夹中的⽂件,字⽂件夹存放到File数组中src.listFiles();⽅法获取File[] files = src.listFiles();//判断数组是否为空if(files!=null){//遍历数组for (File file : files) {//如果是⽂件并且以java结尾 geName()是拿到⽂件夹或者⽂件的名字字符串if(file.isFile() && file.getName().endsWith(".java")){//符合条件的复制//缓冲流来了啊记得加速的后⾯跟上我们的字节流,别装上了发动机不要车了啊//字节输⼊流对于初学者来说:可以认为读取⽂件到缓冲区BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));//字节输出流把缓冲区的内容拿出来给另外⼀个对象这⾥我们讲⼀下为什么在new File(这⾥存放的是⽂件地址) // 要接收的⽂件夹的地址为dest 加上⽂件的地址// E:\\dest \\xxx.java 拼接成⼀个完整的⽂件地址BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dest,file.getName())));//这⾥建⼀个字节数组其实也是让⽂件拷贝的更加快⼀点byte[] by = new byte[1024*8];//索引拷贝结束了,没有了数组就返回-1;int len=0;while((len=bis.read(by))!=-1){//往⾥⾯写bos.write(by, 0, len);}//关流bos.close();bis.close();}else if(file.isDirectory()){//建⽴⼀个remove()⽅法判读⽂件夹中可包含java⽂件不包含⽂件夹不复制过来if(remove(file)){File newfile = new File(dest,file.getName());if(!newfile.exists()){//建⽴⽂件夹⽂件夹中的⽂件夹newfile.mkdirs();}copy(file, newfile);}}}}}private static boolean remove(File file) {File[] files = file.listFiles();//先判断⽂件夹是否为空为空返回falseif(files!=null){for (File file2 : files) {//底层⽂件夹中含有符合条件的⽂件返回trueif(file2.isFile() && file2.getName().endsWith(".java")){return true;//判断是否是⽂件夹 //底层是否有java⽂件}else if(file2.isDirectory() && remove(file2)){return true;}}}return false;}上⾯的代码可能⼀时理解起来⽐较难消化,时间原因,下次我更新⼀个⽐较详细的第三步main()⽅法public static void main(String[] args) throws IOException {File src = getScanner();File dest = getScanner();copy(src,dest);}字符流>>题⽬/** ⽂档中第⼀⾏与最后⼀⾏交换* 第⼆⾏与倒数第⼆⾏交换**/public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new FileReader("abc\\b.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("abc\\c.txt"));ArrayList<String> list = new ArrayList<>(); //字节流我们说了⽤len!=-1做索引 //⽂档有⼀个⽅法可以⼀⾏⼀⾏的读取,当然可以想在字节流那样读取String line=null;while((line=br.readLine())!=null){list.add(line);}br.close();//换⽂档中第⼀⾏与最后⼀⾏交换for (int i = 0; i<list.size()/2 ;i++) {String string = list.get(i); //只需要交换集合长度/2次list.set(i, list.get(list.size()-1-i));list.set(list.size()-1-i, string);}//遍历并且把字符串写到⽂件中for (String string : list) {bw.write(string);bw.newLine();} //关流bw.close();}今天就说这么多了,回头看我⾃⼰写的........我发初学IO的应该不知道我在说啥.下次⼀定来⼀个详细的,说真的IO流要细说,有的说的,不过⼤家记住IO在初级阶段⽆⾮就是操作⽂件夹⽂件,拷贝删除,写,读.字符流只读只写拷贝⾃⼰流,不要忘记缓冲流这个加速器.谢谢⼤家。

java 笔试题及答案(公司1)

java 笔试题及答案(公司1)

1.web中的forward和redirect的区别?(前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。

这样,从浏览器的地址栏中可以看到跳转后的链接地址。

所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。

在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

2. xml在解释的时候DOM和SAX协议的区别和含义?DOM:处理大型文件时其性能下降的非常厉害。

这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。

它顺序读取XML文件,不需要一次全部装载整个文件。

当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问3说明JNDI、JMS、JTA、RMI的意思?JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。

JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,翻译为Java消息服务。

JMS支持点对点和发布/订阅两种消息模型。

JTA(Java Transaction API) 为J2EE 平台提供了分布式事务服务。

要用JTA 进行事务界定,应用程序要调用erTransaction 接口中的方法.RMI是Java的一组拥护开发分布式应用程序的API。

RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。

正式应聘的JAVA笔试题和答案

正式应聘的JAVA笔试题和答案

正式应聘的JAVA笔试题和答案一:选择题1:List, Set, Map是否继承自Collection接口A:都是,B 都不是 C:List, Set 是 D:Set, Map 是正确答案 C2:下面描述哪个是正确的A:构造器Constructor可被overrideB:可以继承String类C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行D:两个对象值相同(x.equals(y) == true),那么也有相同的hash code正确答案 D3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized A:都能 B:都不能 C:可以为static D:可以为native正确答案 A4:下面的程序中,temp的最终值是什么?long temo=(int)3.9;temp%=2;A: 0 B :1 C :2 D : 3正确答案 B5、请在以下选项中选出非基本数据类型的选项 ( )A: int B:byte C: boolean D:String正确答案 D6、阅读下面代码段, 给出以下代码的输出结果public class Test{public static void main(String args[]){String str1 = "abc";String str = "abc;String str2 = new String("abc");System.out.println(str1 == str2);System.out.println(str1.equals(str2));System.out.println(str == str1);}}A:true,true,true B:true,false,true C:true,true,false D:false,true,true正确答案 D7、阅读下面代码段, 给出以下代码的输出结果:int i=1;switch (i) {case 0:System.out.println("zero");break;case 1:System.out.println("one");case 2:System.out.println("two");default:System.out.println("default");}A: B::D:default 正确答案 C8、阅读下面代码段, 给出以下代码的输出结果public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A: Error Variable i may not have been initialized B:null C:D:0 正确答案 D9、阅读下面代码段, 给出以下代码的输出结果:class A{static{System.out.print( “A1”);}public A(){System.out.print( “A2”);}}class B extends A{static{System.out.print( “B1”);}public B(){System.out.print( “B2”);}}public class Hello{public static void main(String[] args){A ab = new B();ab = new B();}}A:A1B1A2B2B1B2 B:A1B1A2B2A2B2 C:A1B1A2B2B1B2 D:A1A2B1B2A2B2正确答案 B10、阅读下面代码段, 给出以下代码的输出结果public class TestData {public String getValue () {String value = "";try{value = "test1";return value;}catch(Exception e){e.printStackTrace();}finally{value = "test2";}return value;}public static void main(String args[]){ TestData test = new TestData();String a = test.getValue();System.out.println(a);}}A.test1B.test2C.nullD.””正确答案 A二、改错题,如果有错误,请指出并修正。

IO流_练习&面试题

IO流_练习&面试题
System.out.println(&quot;FileStreamsTest:&quot;+e);
}catch(IOException e){
System.out.println(&quot;FileStreamTest&quot;+e);
}
}
}
-----------------------------------------------------
A 位
B 字节
C 字符
D 文件
4.▁▁文件流类的 close 方法可用于关闭文件。
A FileOutputStream
B FileInputStream
C RandomAccessFile
D FileWrite
5.RandomAccessFile 类的▁▁方法可用于从指定流上读取整数。
对应于系统调用System.in和System.out。这样的两个流加上System.err统称为标准流,它们是在System类中声明putStream in
publicstaticPrintStream out
public static PrintStream err
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答:字节流,字符流。
字节流继承于InputStream OutputStream,
字符流继承于Reader Writer。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
public static void main(String[] args){

Java常见笔试题及答案

Java常见笔试题及答案

Java常见笔试题及答案一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A. .javaB. .classC. .htmlD. .exe2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。

A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。

A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。

A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。

A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。

2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet、类的子类并且存储该源程序文件的文件名为MyApplet。

13、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。

4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用2 字节内存空间。

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

公司内部Javaio流笔试题
IO 框架
Key Point
* File 类
* 流的分类
* 基本字节流
* 字节过滤流
* 基本字符流、桥转换
* 字符过滤流
* 对象序列化
练习
1. (File 类)以下关于File 类说法正确的是:
A.一个File 对象代表了操作系统中的一个文件或者文件夹
B.能够使用File 对象创立和删除一个文件
C.能够使用File 对象创立和删除一个文件夹
D.当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除2. (File 类)有如下代码:
public class TestFile{
public static void main(String args[]){
File file = new File(“chp13/corejava.txt”);
}
}
请选择一个正确答案:
A. corejava.txt 文件在系统中被创立
B. 在windows 系统上运行出错,因为路径分隔符不正确
C. corejava.txt 文件在系统中没有被创立
D. 如果corejava.txt 文件已存在,则抛出一个异常
3. (File 类)将下列代码补充完整
class TestMyFile{
public static void main(String args[]) throws Exception{
File file;
//创立一个File 对象表示当前目录下的“hello.txt”文件
//判断该文件是否存在
//如果该文件存在,则输出该文件的完整路径
}
}
4. (流的分类)对于FileInputStream 来说,从方向上来分,它是_________流,从数据单
位上分,它是__________流,从功能上分,它是____________流。

5. (字节流, FileInputStream)FileInputStream 有三个重载的read 方法,其中
1) 无参的read 方法返回值为___类型,表示_________________
2) int read(byte[] bs)方法返回值表示______________,参数表示
________________
3) int read(byte[] bs, int offset, int len) 方法返回值表示
_______________,参数分别表示
___________________________。

6. (FileInputStream)下面关于FileInputStream 类型说法正确的是:
A.创立FileInputStream 对象是为了读取硬盘上的文件
B.创立FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出一个异常
C.利用FileInputStream 对象能够创立文件
D.FileInputStream 对象读取文件时,只能读取文本文件。

7. (FileOutputStream)填空:
创立FileOutputStream 对象时,如果对应的文件在硬盘上不存在,则会
___________;如
果对应的文件在硬盘上已经存在,则_______________;
如果使用FileOutputStream(String path, boolean append) 这个构造方法创立
FileOutputStream 对象,并给定第二个参数为true,则效果为
__________________。

创立FileOutputStream 时_______(会|不会)产生异常。

8. 代码改错
class TestFileInputStream{
public static void main(String args[]){
FileInputStream fin = new FileInputStream(“test.txt”);
try{
System.out.println( fin.read() );
fin.close();
}catch(Exception e){}
}
}
9. (FileInputStream 和FileOutputStream)利用FileInputStream 和FileOutputStream,完成
下面的要求:
1)用FileOutputStream 在当前目录下创立一个文件“test.txt”,并向文件输出“Hello
World”,如果文件已存在,则在原有文件内容后面追加。

2)用FileInputStream 读入test.txt 文件,并在控制台上打印出test.txt 中的内容。

3)要求用try-catch-finally 处理异常,而且关闭流应放在finally 块中。

10. (Data 流)利用Data 流,完成下面操作:
1)判断当前目录下是否存在一个“test.dat”的文件,如果该文件不存在,则往该文件
中写入一个long 类型的数值:10000L
2)如果该文件存在,则从该文件中读出数值,并把该数值加1 之后,再存回文件中。

11. (字符流、桥转换)要想从某个文件中获得一个字符输出流,则至少有以下三种方式
A. 利用FileWriter 类
B. 利用PrintWriter 类
C. 利用FileOutputStream 类,并经过OutputStreamWriter 类获得Writer
请简述这三种方式获得Writer 的区别。

12. (字节流、字符流)以下几种文件格式,应当使用字节流还是字符流?
1) .java 源文件
2) .class 字节码文件
3) .html 网页文件
4) .jpg 图像文件
5) .mp3 音乐文件
6) 配置文件.bash_profile
7) .jar 文件
13. (过滤流)连线题。

把过滤流和相应的功能用线连起来。

注意,左右两边不是一一对应
的关系。

ObjectInputStream 字节流
ObjectOutputStream 字符流。

相关文档
最新文档