普华永道笔试题 javascriptj2me 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 字符串比较,常量池,参数传递,Java7版switch,各Collection对null的处理,try catch finally机制一看就知道这公司目的很明确,招熟练工累死你,并且从这个难度来看,进这样的公司没前途 我说说javascript那两题吧1. focus on 函数声明和函数表达式的区别,解析器对待它们的加载策略是不同的。具体来说函数声明会提前加载好,而表达式要js走到它那一行才加载。所以jumpp; 是未定义的变量,而speak();可以console出来。2.有点蛋疼,明知道两等号在js里面不可靠就尽量避开好了,我们组严厉禁止==出现。答案不打了,建议自己测试就好,另外,undefined也可以被赋值,所以...更无聊的问题,算了,到此为止。 普华永道还有做开发实施的?不是早就卖给IBM了么?这类试题太基础了,招的不是实习生就是初级程序员,而且JDK7以后,case逻辑已经可以支持字符类型了,还在考原来老的JDK的case比较,这些题目没有太多参考价值 刚学java小白一枚,请哪位仁兄解释下第一题为什么value + "World" == “HelloWorld” 的输出结果是false。 因为“==”比较的是字符串的地址值+字符串的内容。只有两个都相等的时候才会为ture,当把之前的value的地址值传到方法join时,再进行操作,value+="World"; 这时其实是新创建了一个Sring,与常量池的HelloWorld已经不同了,所以地址值是不同的。 因为“==”比较的是字符串的地址值+字符串的内容。只有两个都相等的时候才会为ture,当把之前的value的地址值传到方法join时,再进行操作,value+="World"; 这时其实是新创建了一个Sring,与常量池的HelloWorld已经不同了,所以地址值是不同的。我稍微测试了一下String value = "Hello"; boolean a; a= (value + "World" == "HelloWorld"); boolean b =("Hello" + "World" == "HelloWorld"); System.out.println(a+"\t"+b);输出的结果为:false true可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?另外有什么办法可以看到变量的地址值? 我想申明以下,这是技术讨论贴,如果觉得太肤浅就不要发些与技术无关的言论,因为这对技术讨论没有任何帮助,csdn不是你廉价吐槽的地方IT MAN Q1true 编译器自动优化 将字符串常量先相加false 地址不等hello 调用完 value本身没改变 仍然指向的HelloQ2c 传什么都是c 因为没有break;Q3Hashtable 不允许空key和空valueQ42 return语句后 再对栈中的数据做操作是无效的我觉得题出的很好 考验的是一个人的细心程度 程序员就需要细心 我想申明以下,这是技术讨论贴,如果觉得太肤浅就不要发些与技术无关的言论,因为这对技术讨论没有任何帮助,csdn不是你廉价吐槽的地方IT MAN我只是没具体说而已,上面每一个内容对应一道题,你搜索一下不就知道了,难道要别人把答案全部详详细细像教科书一样写出来才叫技术讨论?而且我说的是客观事实,被你说得倒变成主观吐槽了? 因为“==”比较的是字符串的地址值+字符串的内容。只有两个都相等的时候才会为ture,当把之前的value的地址值传到方法join时,再进行操作,value+="World"; 这时其实是新创建了一个Sring,与常量池的HelloWorld已经不同了,所以地址值是不同的。兄弟,可以编译下这个类再用反编译工具看下,会发现不同。虚拟机在编译时会比较“智能”的预编译下。System.out.println("Hello" + "World" == "HelloWorld");这句话在编译后直接为System.out.println(true); 你可以去试试代码, finally是一定会执行的,不管有没有return。 你可以去试试代码, finally是一定会执行的,不管有没有return。会执行 但是返回的一定是执行前的 你可以去试试代码, finally是一定会执行的,不管有没有return。finally肯定会执行,但finally中的操作是不会影响到return的栈数据的。 因为“==”比较的是字符串的地址值+字符串的内容。只有两个都相等的时候才会为ture,当把之前的value的地址值传到方法join时,再进行操作,value+="World"; 这时其实是新创建了一个Sring,与常量池的HelloWorld已经不同了,所以地址值是不同的。我稍微测试了一下String value = "Hello"; boolean a; a= (value + "World" == "HelloWorld"); boolean b =("Hello" + "World" == "HelloWorld"); System.out.println(a+"\t"+b);输出的结果为:false true可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?另外有什么办法可以看到变量的地址值?打印 hashCode() 因为“==”比较的是字符串的地址值+字符串的内容。只有两个都相等的时候才会为ture,当把之前的value的地址值传到方法join时,再进行操作,value+="World"; 这时其实是新创建了一个Sring,与常量池的HelloWorld已经不同了,所以地址值是不同的。我稍微测试了一下String value = "Hello"; boolean a; a= (value + "World" == "HelloWorld"); boolean b =("Hello" + "World" == "HelloWorld"); System.out.println(a+"\t"+b);输出的结果为:false true可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?另外有什么办法可以看到变量的地址值?第一个false是因为value是String类型的,存放在堆中,value+"World"会先在内存中开辟空间才能保存结果,而且“Hello”+"World",两者原本就存放在常量池中,所以相加后还是存在常量池,所以地址相等。 因为“==”比较的是字符串的地址值+字符串的内容。只有两个都相等的时候才会为ture,当把之前的value的地址值传到方法join时,再进行操作,value+="World"; 这时其实是新创建了一个Sring,与常量池的HelloWorld已经不同了,所以地址值是不同的。我稍微测试了一下String value = "Hello"; boolean a; a= (value + "World" == "HelloWorld"); boolean b =("Hello" + "World" == "HelloWorld"); System.out.println(a+"\t"+b);输出的结果为:false true可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?另外有什么办法可以看到变量的地址值?第一个false是因为value是String类型的,存放在堆中,value+"World"会先在内存中开辟空间才能保存结果,而且“Hello”+"World",两者原本就存放在常量池中,所以相加后还是存在常量池,所以地址相等。最主要的原因还是因为value是在堆中,在编译期是无法确定的,所以必须新创建一个对象。如果用value.intern()。就和第二个结果一样了。 Out of range: size 3 exceeded max size limit 3 帮忙介绍几本Swing方面的书籍 请教一个读取字符串的问题 关于SWT中styledText的问题 请教数据库连接的速度问题 请教各位大侠,JAVA超级入门级的问题,不过对我太关键了,谢谢! 一个项目暂给200分如可以的话要多少分给多少分 新手:关于java中package的问题!谢谢! Oracle培训到哪里好 JAR Manifest的文件有何用如果能详细解答我给高分 jdbc日期字符串转换问题?求解中 一个关于二叉树的简单问题,菜鸟求救啊啊
一看就知道这公司目的很明确,招熟练工累死你,并且从这个难度来看,进这样的公司没前途
1. focus on 函数声明和函数表达式的区别,解析器对待它们的加载策略是不同的。
具体来说函数声明会提前加载好,而表达式要js走到它那一行才加载。
所以jumpp; 是未定义的变量,而speak();可以console出来。
2.有点蛋疼,明知道两等号在js里面不可靠就尽量避开好了,我们组严厉禁止==出现。
答案不打了,建议自己测试就好,另外,undefined也可以被赋值,所以...更无聊的问题,算了,到此为止。
我稍微测试了一下String value = "Hello";
boolean a;
a= (value + "World" == "HelloWorld");
boolean b =("Hello" + "World" == "HelloWorld");
System.out.println(a+"\t"+b);输出的结果为:false true
可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?
另外有什么办法可以看到变量的地址值?
true 编译器自动优化 将字符串常量先相加
false 地址不等
hello 调用完 value本身没改变 仍然指向的HelloQ2
c 传什么都是c 因为没有break;Q3
Hashtable 不允许空key和空valueQ4
2 return语句后 再对栈中的数据做操作是无效的我觉得题出的很好 考验的是一个人的细心程度 程序员就需要细心
我只是没具体说而已,上面每一个内容对应一道题,你搜索一下不就知道了,难道要别人把答案全部详详细细像教科书一样写出来才叫技术讨论?而且我说的是客观事实,被你说得倒变成主观吐槽了?
兄弟,可以编译下这个类再用反编译工具看下,会发现不同。
虚拟机在编译时会比较“智能”的预编译下。
System.out.println("Hello" + "World" == "HelloWorld");
这句话在编译后直接为System.out.println(true);
你可以去试试代码, finally是一定会执行的,不管有没有return。
你可以去试试代码, finally是一定会执行的,不管有没有return。会执行 但是返回的一定是执行前的
你可以去试试代码, finally是一定会执行的,不管有没有return。
finally肯定会执行,但finally中的操作是不会影响到return的栈数据的。
我稍微测试了一下String value = "Hello";
boolean a;
a= (value + "World" == "HelloWorld");
boolean b =("Hello" + "World" == "HelloWorld");
System.out.println(a+"\t"+b);输出的结果为:false true
可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?
另外有什么办法可以看到变量的地址值?打印 hashCode()
我稍微测试了一下String value = "Hello";
boolean a;
a= (value + "World" == "HelloWorld");
boolean b =("Hello" + "World" == "HelloWorld");
System.out.println(a+"\t"+b);输出的结果为:false true
可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?
另外有什么办法可以看到变量的地址值?第一个false是因为value是String类型的,存放在堆中,value+"World"会先在内存中开辟空间才能保存结果,而且“Hello”+"World",两者原本就存放在常量池中,所以相加后还是存在常量池,所以地址相等。
我稍微测试了一下String value = "Hello";
boolean a;
a= (value + "World" == "HelloWorld");
boolean b =("Hello" + "World" == "HelloWorld");
System.out.println(a+"\t"+b);输出的结果为:false true
可见方法join的存在是无关紧要的,按你说的道理,应该是变量value与常量直接相加后,所得到的结果与常量池“HelloWorld”的地址值不同——你看是不是这样?
另外有什么办法可以看到变量的地址值?第一个false是因为value是String类型的,存放在堆中,value+"World"会先在内存中开辟空间才能保存结果,而且“Hello”+"World",两者原本就存放在常量池中,所以相加后还是存在常量池,所以地址相等。最主要的原因还是因为value是在堆中,在编译期是无法确定的,所以必须新创建一个对象。如果用value.intern()。就和第二个结果一样了。