a*****7 发帖数: 128 | 1 /*
We want to design an object logging module for our users. Objects will be
logged into files. Logging in this context means
saving the serialzied version of the object to a file.
Serialization is 'byte'/'binary' representation of the object.
*/
/* It logs objects into file */
public interface Logger {
public void log(Loggable input); /* this method saves to disk */
}
/* Loggable is an object that can be logged */
public interface Loggable {
public byte[] tes(); /* serializer */
public Loggable readBytes(byte[] bytes); /* deserializer */
}
/**
Your task is to implement the Logger interface. We dont care about loggable.
Requirements:
1) Take two params in constructor (a) A base file name (b) A size limit
2) As soon as current file > size limit, rotate the file.
What is rotation:
Base file: "some_file.log"
After rotation:
"some_file.log.1" 100MB
"some_file.log.2" 100MB
"some_file.log.3" 100MB
*/
public class MyLogger implements Logger {
// your code goes here.
』
老印电面,完全不知道在说什么,直接就give up了。
造福后人吧。 |
h**d 发帖数: 630 | 2 挂在同一题
面试官全老印
【在 a*****7 的大作中提到】 : /* : We want to design an object logging module for our users. Objects will be : logged into files. Logging in this context means : saving the serialzied version of the object to a file. : Serialization is 'byte'/'binary' representation of the object. : */ : /* It logs objects into file */ : public interface Logger { : : public void log(Loggable input); /* this method saves to disk */
|
g****v 发帖数: 971 | |
h**********9 发帖数: 43 | |
w********o 发帖数: 440 | 5 这种快倒闭的公司去浪费时间干嘛。
【在 a*****7 的大作中提到】 : /* : We want to design an object logging module for our users. Objects will be : logged into files. Logging in this context means : saving the serialzied version of the object to a file. : Serialization is 'byte'/'binary' representation of the object. : */ : /* It logs objects into file */ : public interface Logger { : : public void log(Loggable input); /* this method saves to disk */
|
g*****g 发帖数: 34805 | 6 就是要你记录当前文件大小,满100mb就rotate写新文件。看似很实在的题。 |
h*****a 发帖数: 1718 | 7 这是很实际的问题啊,其实是不错的面试题。
【在 g****v 的大作中提到】 : 话说这到底是要求干什么的
|
g****v 发帖数: 971 | 8 怎么记录文件大小?
【在 g*****g 的大作中提到】 : 就是要你记录当前文件大小,满100mb就rotate写新文件。看似很实在的题。
|
g****v 发帖数: 971 | 9 怎么把文件和loggable联系起来。
【在 g*****g 的大作中提到】 : 就是要你记录当前文件大小,满100mb就rotate写新文件。看似很实在的题。
|
g*****g 发帖数: 34805 | 10 实现那个接口放个变量就行了,要注意多线程访问。另外那个接口的意思就是已经实现
了,不用你管,调用就行。
【在 g****v 的大作中提到】 : 怎么记录文件大小?
|
|
|
y*****n 发帖数: 11251 | 11 这个说一点总是可以的。老印要刁难也是挑点毛病。完全不知道说什么还是准备回国的
好。 |
i******s 发帖数: 301 | 12 说几句话。我应该认识出这题的老印。他在老印中人品算是不错的,没有很抱团,我印
象中他也没有故意黑人。这道题其实不错,不过刚毕业没经验估计摸不着头脑。没有替
老印说话的意思,只是想大家多互相帮助,传播正能量。面试要黑你,不是你自己能控
制的。希望已经有工作的同胞多参与面试,多互相帮助。把互助的精神传递下去,不要
太多想得到多少回报。 |
a*****7 发帖数: 128 | 13 和lc上的read4是不是很相似?
【在 g*****g 的大作中提到】 : 就是要你记录当前文件大小,满100mb就rotate写新文件。看似很实在的题。
|
g****v 发帖数: 971 | 14 请好虫大牛不要见笑,我还是云里雾里的,能不能大概写下我看看。
多谢!
【在 g*****g 的大作中提到】 : 实现那个接口放个变量就行了,要注意多线程访问。另外那个接口的意思就是已经实现 : 了,不用你管,调用就行。
|
g*****g 发帖数: 34805 | 15 这题真不难,多半是你没读懂。
public class MyLogger implements Logger {
private final long LIMIT;
private String baseFileName;
private volatile int index = 1;
private FileOutputStream file;
private volatile long size = 0L;
public MyLogger(String filename, long limit) throws Exception {
this.baseFileName = filename;
this.LIMIT = limit;
file = new FileOutputStream(baseFileName);
}
public void log(Loggable input) {
try {
byte[] bytes = input.tes();
synchronized(this) {
file.write(bytes);
size += bytes.length;
if(size > LIMIT) {
file.flush();
file.close();
file = new FileOutputStream(baseFileName + "." + index);
index++;
}
}
} catch (Exception e) {
}
}
} |
l*******s 发帖数: 1258 | 16 上回面这个公司 有个老中电面 很给力 帮助很大 赞一个! |
h******n 发帖数: 52 | 17 搭车问个问题,希望对这个公司了解的兄弟/姐妹帮忙看看
去年买了ROCKET FUEL的一些股票,现在跌到无底洞了,今天收到13.4. 这公司有希望
吗?要真是烂公司我就只好腰斩我的股票了。
【在 i******s 的大作中提到】 : 说几句话。我应该认识出这题的老印。他在老印中人品算是不错的,没有很抱团,我印 : 象中他也没有故意黑人。这道题其实不错,不过刚毕业没经验估计摸不着头脑。没有替 : 老印说话的意思,只是想大家多互相帮助,传播正能量。面试要黑你,不是你自己能控 : 制的。希望已经有工作的同胞多参与面试,多互相帮助。把互助的精神传递下去,不要 : 太多想得到多少回报。
|
a*****7 发帖数: 128 | 18 我是真的没有读懂,最后十分钟的时候问到这个题,一看就蒙了。
多谢大牛指点。
【在 g*****g 的大作中提到】 : 这题真不难,多半是你没读懂。 : public class MyLogger implements Logger { : : private final long LIMIT; : private String baseFileName; : private volatile int index = 1; : private FileOutputStream file; : private volatile long size = 0L; : : public MyLogger(String filename, long limit) throws Exception {
|
L*****c 发帖数: 62 | 19 这种题也觉得难?难道是刚毕业的?
【在 a*****7 的大作中提到】 : /* : We want to design an object logging module for our users. Objects will be : logged into files. Logging in this context means : saving the serialzied version of the object to a file. : Serialization is 'byte'/'binary' representation of the object. : */ : /* It logs objects into file */ : public interface Logger { : : public void log(Loggable input); /* this method saves to disk */
|
L*****c 发帖数: 62 | 20 这个价位可以拿着,跌也跌不了多少,风向变了很容易翻倍
收入都快超过市值了,而且年均40%的在增长,你看看g,fb的收入市值比
【在 h******n 的大作中提到】 : 搭车问个问题,希望对这个公司了解的兄弟/姐妹帮忙看看 : 去年买了ROCKET FUEL的一些股票,现在跌到无底洞了,今天收到13.4. 这公司有希望 : 吗?要真是烂公司我就只好腰斩我的股票了。
|
|
|
x***i 发帖数: 585 | 21 这不对吧, 人家要求文件大小不超过 LIMIT.
你这都超过了, 才开个新文件.
【在 g*****g 的大作中提到】 : 这题真不难,多半是你没读懂。 : public class MyLogger implements Logger { : : private final long LIMIT; : private String baseFileName; : private volatile int index = 1; : private FileOutputStream file; : private volatile long size = 0L; : : public MyLogger(String filename, long limit) throws Exception {
|
M*********n 发帖数: 4839 | |
b**a 发帖数: 1118 | 23 Sorry I do not really get the code. Where is the rotation?
Thanks.
【在 g*****g 的大作中提到】 : 这题真不难,多半是你没读懂。 : public class MyLogger implements Logger { : : private final long LIMIT; : private String baseFileName; : private volatile int index = 1; : private FileOutputStream file; : private volatile long size = 0L; : : public MyLogger(String filename, long limit) throws Exception {
|
e********2 发帖数: 495 | 24 api file还是挺难记的。
【在 L*****c 的大作中提到】 : 这种题也觉得难?难道是刚毕业的?
|
e********2 发帖数: 495 | 25 这题其实考的就是tomcat的rotate log的实现吧。
【在 e********2 的大作中提到】 : api file还是挺难记的。
|
h****t 发帖数: 69 | 26 我有过投资除牌公司的深刻教训,所以这种"跌也跌不了多少"的想法是绝对不赞同的。
换个角度想想:如果你现在持有的是资金而不是FUEL股票,你今天会买FUEL吗?如果是
的话就继续持有,否着赶紧卖了吧。
【在 L*****c 的大作中提到】 : 这个价位可以拿着,跌也跌不了多少,风向变了很容易翻倍 : 收入都快超过市值了,而且年均40%的在增长,你看看g,fb的收入市值比
|
J*******o 发帖数: 741 | |
m*****k 发帖数: 731 | 28 here volatile size
can be omited by using fileinputstream.getChannel().size() 吧
【在 g*****g 的大作中提到】 : 这题真不难,多半是你没读懂。 : public class MyLogger implements Logger { : : private final long LIMIT; : private String baseFileName; : private volatile int index = 1; : private FileOutputStream file; : private volatile long size = 0L; : : public MyLogger(String filename, long limit) throws Exception {
|
f*****n 发帖数: 2126 | 29 他家貌似被班上骂得很厉害,可能是因为股票套牢了很多人。ps,听说里面烙印多,还
有X多 |
M****w 发帖数: 11 | 30 C++ 10 years work experience. 这题一样蒙
【在 a*****7 的大作中提到】 : 我是真的没有读懂,最后十分钟的时候问到这个题,一看就蒙了。 : 多谢大牛指点。
|