Java面试题之八

时间:2021-03-04 11:10:49
1、用Java代码列出一个目录下的所有文件? https://github.com/zgwang24/Interview/blob/master/src/num07/OpenDirs.java 2、用Java套接字编程实现一个多线程的回显(echo)服务器? 参考文章中72题:http://blog.csdn.net/jackfrued/article/details/44921941 3、XML文档定义的几种形式?有何本质区别?解析XML文档有哪几种方式? 定义XML分为DTD和Schema; 本质区别在于Schema本身也是一个XML文件,约束能力更强; 解析XML的方式有DOM、SAX、StAX;DOM解析文件之前把整个文档装入内存;SAX是事件驱动型XML解析方式;StAX的重点在流上,能够把XML作为一个时间流来处理。 4、项目中哪些地方会用到XML? 数据交换和信息配置;但是数据交换更为流行的方式是JSON; 5、JDBC操作数据库的步骤? 加载驱动、创建连接、创建语句、执行语句、处理结果、关闭资源; 6、Statement和PreparedStatement有什么区别?哪个更好? PreparedStatement代表预编译的语句,可以减少SQL的编译错误并增加SQL的安全性; PreparedStatement中的SQL语句可以带参数; 批量处理SQL或频繁执行相同的查询时,SQL语句会缓存起来,性能更高; 7、使用JDBC操作数据库时,如何提升数据的读取能力?如何提升更细数据的能力? 为了提升数据的读取能力,指定每次抓取的记录数; 为了提升数据的更新能力,构建批处理SQL语句; 8、进行数据库编程时,连接池有什么用? 事先创建若干连接置于连接池中,需要时直接获取,使用结束归还即可,避免频繁的创建和删除链接所造成的开销; 9、DAO模式? 为数据库或其他持久化对象提供抽象接口的对象,不暴露底层持久化方案的前提下提供各种数据访问操作;包含两个模式:数据访问器(Data Accessor)、数据对象(Data Object); 10、事务的ACID是什么? 原子性(Atomic):要么做要么全不做; 一致性(Consistent):事务结束系统状态保持一致; 隔离性(Isolated):并发执行的事务彼此无法看到中间的状态; 持久性(Durable):事务完成的动作具有持久性; 补充:只有存在并发访问数据时是才需要事务,可能存在5类问题:脏读、不可重复读、幻读和两类丢失更新;通常,事务的隔离性越高并发性就越差。