你知道为什么考你这个?——Java面试题及答案汇总分析(3)

5.文件和目录(I/O)操作
 
如何列出某个目录下的所有文件
 
如何列出某个目录下的所有子目录
 
判断一个文件或目录是否存在
 
如何读写文件

参考答案:

File folder = new File("F:/Test");

//列出所有子文件

File[] files = folder.listFiles();

//获得所有子文件夹

ArrayList<File> al = new ArrayList<File>();

for(int i = 0; i < files.length; i ++){

    if(files[i].isDirectory()){

       al.add(files[i]);

    }

}

//判断文件是否存在

File testFile = new File("F:/isExist");

if(testFile.exists()){

    System.out.println("文件存在");

}

else{

    System.out.println("文件不存在");

}

//读写文件-字符流

FileWriter fw = new FileWriter(new File("F:/test1.txt"));

fw.write("测试字符串");

fw.flush();

fw.close();

//读写文件-字节流

FileOutputStream fos = new FileOutputStream(new File("test2.txt"));

fos.write("测试字符串".getBytes());

fos.flush();

fos.close();

分析:

此类型题目是考察Java IO操作的基本题型。

不论是刚毕业的同学,或者工作多年的同事们,这些基本的API还是必然要掌握的。

如果记忆不错的话,IO操作在任何Java基础类书籍中都是非常重要的一章,因此这几个例子,刚毕业的同学们还是要掌握的,如果你没掌握,那还是需要在面试前回去拿出一本基础书来把里边的例子都自己跑跑,跑过了,也就记住了。

而对于工作多年的同事们,如果你从事过IO操作类的编码工作,估计这几个也都不是问题。

好了,这么简单的题目,我就不多说了,不管什么原因没掌握,还是需要回去温习一下书本的。

6.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串

参考答案:

String target = new String(source.getBytes("GB2312"),"ISO-8859-1");

分析:

编码问题,一直是程序员编码中的老大难问题,日常工作中,很多问题的出现,往往就是因为编码的问题。因此,转码,是一个程序员应该掌握,但是却往往被忽略的一个很重要的技能。不论你是即将进入这一行的学生,还是工作多年的老同志,如果在这方面还有哪怕只是些许的疑惑,回去多做点测试,多看看书,掌握它——不仅仅是字符串的,还有文件的,各种流的!

7.Java中访问数据库的步骤,StatementPreparedStatement之间的区别

参考答案:

访问步骤:

1、获取数据库连接

2、进行数据库操作

3、释放数据库连接

StatementPreparedStatement的区别:

1PreparedStatement是预编译的,对于批量处理可以提高效率。

2、对于只对数据库只执行一次的操作PreparedStatement并不比Statement更快,相反,PreparedStatement对象的开销要比Statement对象的开销大些。但是,这并不是说,只执行一次的操作用Statement更好一些,相反,对于需要用户提供参数的操作,尤其是Web应用,从安全性上考虑,使用PreparedStatement对象多一些开销还是值得的——有很多SQL漏洞都是因为使用Statement拼装SQL的原因出现的。

3Statement每次执行SQL相关数据库都要进行SQL相关编译,而PreparedStatement是预编译的,且支持批处理。

4、对于多次执行的SQL语法相同,只是参数不同的操作,应该使用PreparedStatement,以提高效率。

分析:

数据库操作是程序员不可回避的内容,如何更安全、高效的操作数据库,也是整个产品、项目中最重要的一环。这个问题的重要性,不言而喻,如果你在答这道题目时出现问题,建议立刻补习一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值