论坛首页 招聘求职论坛

今天面试一个五年经验求职者,惹了一肚子气!

浏览 84461 次
精华帖 (2) :: 良好帖 (0) :: 隐藏帖 (5)
作者 正文
   发表时间:2012-02-22   最后修改:2012-02-22
hoarhoar 写道
sky_dream 写道
beyondsphinx 写道
哈哈 楼主啊,“String对象确实是可变的”
如果你用String str = "abc" 的值是永远保存是不可变,String str = new String("abc"),str就可变了,详细自己看编译后的代码吧。


  想解释下,看来自己理解的夜不深,给你一个连接看看吧。http://www.iteye.com/topic/209904

不需要仔细看了,这些东西我都很熟悉,当年自学java时都已经认真研究过了。我知道什么是对象,什么是引用。



没看编译后的代码,只看了下源代码,这样也会是可变?final被当摆设了么.

.....
private final char value[];
.....
public String(String original) {
        int size = original.count;
        char[] originalValue = original.value;
        char[] v;
        if (originalValue.length > size) {
            // The array representing the String is bigger than the new
            // String itself.  Perhaps this constructor is being called
            // in order to trim the baggage, so make a copy of the array.
            int off = original.offset;
            v = Arrays.copyOfRange(originalValue, off, off+size);
        } else {
            // The array representing the String is the same
            // size as the String, so no point in making a copy.
            v = originalValue;
        }
        this.offset = 0;
        this.count = size;
        this.value = v;
    }
0 请登录后投票
   发表时间:2012-02-22  
jelly 写道
不适合做面试官的人就不要做面试官,害人害己!!!


有点不同意,你看楼主的描述是能不要做的吗?不做也得做吧
0 请登录后投票
   发表时间:2012-02-22  
string2020 写道
如果new出来的东西都有事务,那还要spring容器干啥。

那编程式事务管理怎么呢?
0 请登录后投票
   发表时间:2012-02-22  
深有感触,希望有机会可以多聊聊
0 请登录后投票
   发表时间:2012-02-22  
大家都不要责怪楼主了,他让我开心的笑了好长时间,人家编这个故事让大家开心一下容易吗
0 请登录后投票
   发表时间:2012-02-22  
tlde_ti 写道
hoarhoar 写道
sky_dream 写道
beyondsphinx 写道
哈哈 楼主啊,“String对象确实是可变的”
如果你用String str = "abc" 的值是永远保存是不可变,String str = new String("abc"),str就可变了,详细自己看编译后的代码吧。


  想解释下,看来自己理解的夜不深,给你一个连接看看吧。http://www.iteye.com/topic/209904

不需要仔细看了,这些东西我都很熟悉,当年自学java时都已经认真研究过了。我知道什么是对象,什么是引用。



没看编译后的代码,只看了下源代码,这样也会是可变?final被当摆设了么.

.....
private final char value[];
.....
public String(String original) {
        int size = original.count;
        char[] originalValue = original.value;
        char[] v;
        if (originalValue.length > size) {
            // The array representing the String is bigger than the new
            // String itself.  Perhaps this constructor is being called
            // in order to trim the baggage, so make a copy of the array.
            int off = original.offset;
            v = Arrays.copyOfRange(originalValue, off, off+size);
        } else {
            // The array representing the String is the same
            // size as the String, so no point in making a copy.
            v = originalValue;
        }
        this.offset = 0;
        this.count = size;
        this.value = v;
    }


好吧我承认我表述错了。
0 请登录后投票
   发表时间:2012-02-22  
ahuango 写道
从楼主的内容来看,楼主的面试水平很低,本人比较讨厌这样的面试官。
面试更多的是看一个人把本职工作能够做到什么程度,而不是用面试官自己工作上的很细的东西去衡量别人是否达到自己满意的程度。一个有良好习惯的技术人员,把他放在完全陌生的环境里,也能够在很短时间内做出比别人好的东西。


非常中肯!
0 请登录后投票
   发表时间:2012-02-22  
zhangchen 写道
ahuango 写道
从楼主的内容来看,楼主的面试水平很低,本人比较讨厌这样的面试官。
面试更多的是看一个人把本职工作能够做到什么程度,而不是用面试官自己工作上的很细的东西去衡量别人是否达到自己满意的程度。一个有良好习惯的技术人员,把他放在完全陌生的环境里,也能够在很短时间内做出比别人好的东西。


非常中肯!



同意,一起进的一个同事,也是六年了,我也感觉他什么都不会,连续两年年终考核都不好,其实分明就是公司逼他走。
但他感觉年纪大了,而且技术也不行所以一直没找下家。但作为同事关系来说还是不错的。
0 请登录后投票
   发表时间:2012-02-22   最后修改:2012-02-22
beyondsphinx 写道
tlde_ti 写道
hoarhoar 写道
sky_dream 写道
beyondsphinx 写道
哈哈 楼主啊,“String对象确实是可变的”
如果你用String str = "abc" 的值是永远保存是不可变,String str = new String("abc"),str就可变了,详细自己看编译后的代码吧。


  想解释下,看来自己理解的夜不深,给你一个连接看看吧。http://www.iteye.com/topic/209904

不需要仔细看了,这些东西我都很熟悉,当年自学java时都已经认真研究过了。我知道什么是对象,什么是引用。



没看编译后的代码,只看了下源代码,这样也会是可变?final被当摆设了么.

.....
private final char value[];
.....
public String(String original) {
        int size = original.count;
        char[] originalValue = original.value;
        char[] v;
        if (originalValue.length > size) {
            // The array representing the String is bigger than the new
            // String itself.  Perhaps this constructor is being called
            // in order to trim the baggage, so make a copy of the array.
            int off = original.offset;
            v = Arrays.copyOfRange(originalValue, off, off+size);
        } else {
            // The array representing the String is the same
            // size as the String, so no point in making a copy.
            v = originalValue;
        }
        this.offset = 0;
        this.count = size;
        this.value = v;
    }


好吧我承认我表述错了。

另外纠正一下上面一个回复的链接文章,用new String(String original)新建立的对象并不会与original共享char[] 数组,这里是复制,并没有直接共享. 不过这是现在jdk 7里的代码,可能当时是共享?至少现在应该不是了
-----------------
ps:错误留念.只看了if,没看else,长度不变的话 的确是共享.
0 请登录后投票
   发表时间:2012-02-22  
没觉得有lz有多过分。

这些面试的问题,一个5年经验的人应该回答的至少不离谱,不会原则性的错误,记不清楚情有可原。

什么string可变不可变的问题,那stringbuffer拿来干嘛的?

工作5年了,这些问题不太可能一次也没遇上过。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics