面试例题1:假设任何异常处理已经被创建,下列哪个选项是创建RandomAccessFile类实例的正确选项?( )
A.RandomAccessFile raf=new RandomAccessFile("myfile. txt","rw");
B.RandomAccessFile raf=new RandomAccessFile( new Data InputStr-eam());
C.RandomAccessFile raf=new RandomAccessFile("myfile. txt");
D.RandomAccessFile raf=new RandomAccessFile(new File ("myfile.txt"));
解析:在Java的I/O结构中,RandomAccessFile是比较不寻常的类,它直接继承于Object,它并不属于Streams结构的一部分。
答案:A
面试例题2:需要读一个比较大的文本文件,这个文件里有很多字节的数据,那么下列最合适读这类文件的选项是哪个?( )
A.new FileInputStream("file.name");
B.new InputStreamReader(new FileInputStream("file.name"));
C.new BufferedReader(new InputStreamReader(new FileInputStream("file.name")));
D.new RandomAccessFile raf=new RandomAccessFile("myfile.txt","+rw");
解析:这道题最主要的是具有很多字节数的文本文件,那么就要考虑到BufferedReader。
答案:C
面试例题3:请给出一段代码描述字符串写入文件。
答案:代码如下。
以下是代码片段: import java.io.*; public class Test { public static void main(String args[]) { try { FileOutputStream out = new FileOutputStream ("FileName.txt"); out.write("字符串写入文件".getBytes()); out.close(); } catch (IOException ioe) { } }//main } |
面试例题4:写一个Java应用程序,从键盘输入两个整数,然后输出它们的平方值及立方值。
解析:在Java中没有像C语言那样有一个专供接受从键盘输入值的scanf函数,所以一般的做法是从键盘输入一行字符,保存到字符串s中,再将字符组成的字符串s转换为整型数据后返回。
答案:代码如下。
以下是代码片段: //package cuboid; import java.io.*; class InputData { //定义从键盘输入数据的类 static private String s = ""; static public void input() { //从键盘输入一行字符,保存到字符串s中 BufferedReader bu = new BufferedReader( new InputStreamReader(System.in) ); try { s = bu.readLine(); } catch (IOException e) {} //捕获输入/输出异常 } static public int getInt() { //静态方法可直接用类名调用 input(); return Integer.parseInt(s); //将字符组成的字符串s转换为整型数据后返回 } } class Result { void print(int d) { System.out.println(d + "的平方:" + d * d); System.out.println(d + "的立方:" + d * d * d); } } public class PrintResult { public static void main(String[] args) { Result result = new Result(); System.out.println("请输入一个整数:"); int a = InputData.getInt(); result.print(a); } } |
面试例题5:8、64、256都是2的阶次方数(例如,8是2的3次方),用Java编写程序来判断一个整数是不是2的阶次方数,并说明哪个方法更好。
解析:如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面接若干个0。比如8就是1000,64是1000000。如果将这个数减1后,再与该数做和(&)运算,则应该全为0(例如,8与7,一个二进制数是1000,一个二进制数是111,它们做和运算后全为0)。所以((d-1)&(d)) == 0。
答案:代码如下。
以下是代码片段: //package cuboid; import java.io.*; class InputData { //定义从键盘输入数据的类 static private String s = ""; static public void input() { //从键盘输入一行字符,保存到字符串s中 BufferedReader bu = new BufferedReader( new InputStreamReader(System.in) ); try { s = bu.readLine(); } catch (IOException e) {} //捕获输入/输出异常 } static public int getInt() { //静态方法可直接用类名调用 input(); return Integer.parseInt(s); //将字符组成的字符串s转换为整型数据后返回 } } class Result { void print(int d) { if(((d-1)&(d)) == 0 && (d!=0)) System.out.println("是2的阶次"); else System.out.println("不是2的阶次"); } } public class PrintResult { public static void main(String[] args) { Result result = new Result(); System.out.println("请输入一个整数:"); int a = InputData.getInt(); result.print(a); } } |
开云app官网登录入口手机版//www.garmin-asus.com -硕博人才招聘门户网站!本文链接: //www.garmin-asus.com/news/msbd/201108/06172.html