11

think in java interview-高级开发人员面试宝典(八)

 3 years ago
source link: https://blog.csdn.net/lifetragedy/article/details/10363489
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

面经出了7套,收到许多读者的Email,有许多人说了,这些基础知识是不是为了后面进一步的”通向架构师的道路“做准备的?

对的,你们没有猜错,就是这样的,我一直在酝酿后面的”通向架构师的道路“如何开章。

说实话,我已经在肚子里准备好的后面的”通向架构师的道路“的内容自己觉得如果一下子全拿出来的话,很多人吃不消,因为架构越来越复杂,用到的知识越来越多,而且很多都是各知识点的混合应用。

所以,先以这几套面经来铺路,我们把基础打实了,才能把大楼造的更好。因为,一个架构师首先他是一个程序员,他的基础知识必须非常的扎实,API对于架构师来说已经不太需要eclipse的code insight(即在eclipse编辑器里打一个小点点就可以得到后面的函数),尤其是一些常用的JAVA API来说,是必须熟记于心的。

下面我们继续来几天面经,顺带便复习一下JAVA和数据库的一些基础。

Java IO流的复习

大家平时J2EE写多了,JAVA的IO操作可能都已经生疏了,面试时如果来上这么几道,是不是有点”其实这个问题很简单,可是我就是想不起来“的感觉啊?

JAVA的IO操作太多,我这边挑腾迅,盛大和百度的几道面试题,并整理出答案来供大家参考。

InputFromConsole

这个最简单不过了,从console接受用户输入的字符,如和用户有交互的命令行。

如果你不复习的话,嘿嘿,还真答不出,来看:

ListDir

列出给出路径下所有的目录,包括子目录

咦,上面这个程序只列出了一层目录,我们想连子目录一起List出来怎么办?

ListMyDirWithSubDir

InputStreamDemo

从外部读入一个文件

OutputStreamDemo

讲完了InputStream来讲OutputStream,输出内容至外部的一个文件

这个Demo里分别用了”writeWithByte“和 ”writeWithByteArray“两种方法,注意查看

CopyFile

我们讲完了InputStream和OutputStream,我们就可以自己实现一个File Copy的功能了,来看

运行后显示:

来看我们被Copy的这个文件的大小:

也不大,怎么用了7秒多?

原是我们没有使用Buffer这个东西,即缓冲,性能会相差多大呢?来看

BufferInputStreamDemo

我们Copy同样一个文件,用了多少时间呢?来看!

丫只用了14毫秒,CALL!!!

ByteArrayDemo

来看看使用ByteArray输出文件吧

RandomAccess

有种输出流叫Random,你们还记得吗?学习时记得的,工作久了,HOHO,忘了,它到底有什么特殊的地方呢?来看:

它输出后的文件是怎么样的呢?

PipeStream

这个流很特殊,我们在线程操作时,两个线程都在运行,这时通过发送一个指令让某个线程do something,我们在以前的jdk1.4中为了实现这样的功能,使用的就是这个PipeStream

先来看两个类,一个叫SendMessage,即发送一个指令。一个叫ReceiveMessage,用于接受指令。

SendMessage

ReceiveMessage


如何使用这两个类呢?

TestPipeStream

注意这边有一个send.getOut().connect(receive.getInput());

这个方法就把两个线程”connect“起来了。

Serializable的IO操作

把一个类序列化到磁盘上,怎么做?

先来看我们要序列化的一个Java Bean

Person

下面来看序列化的操作

SerializablePersonToFile

这边先把Person输出到Person.txt,再从Person.txt里反序列化出这个Person的Java Bean。

先讲这么些吧!

Java的流操作还有很多,这些是经常会被面试到的,很基础,因此经常被考到。

以前听一个读IT的同学说过,这些IO操作,就算没有Eclipse编辑器的话,用文本编辑器也应该能够写出来,你写不出只能代表你的基础太弱了。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK