`
learnmore
  • 浏览: 602603 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

scjp

    博客分类:
  • java
阅读更多
我是一个开发经验只有半年的程序员,原来通过自学只是学习一些技术,并没有通过什么认证考试,
现在公司这两个星期工作任务不是很多,在网上查了一下,相考一些关于java方面的认证之类的,
为了自己以后的发展,不知道sun的scjp认证用处到底大不大,
希望各位给点建议.
分享到:
评论
34 楼 learnmore 2008-10-23  
看了你的解释我首先有点激动,因为我感觉好像突然悟出点什么来了.
我还没去试结果,不过我想先推断一下,按照你的说法,
1.应该是所有常量池中的值都是在编译期间就确定下来的?
2.如果s3是s1和"bc"这个常量相加那么,最后输出的结果应该也是false,因为s1是一个变量所以无法在编译期间确定下来,只有等到运行期间才能确定s1的值,根据你的观点
运行期间确定的必定会在堆中有一份实例,因此s和s3也指向的是不同区域的值?


33 楼 zsmjaya73 2008-10-23  
温柔一刀 写道
learnmore 写道
为什么是false,能不能跟我解释一下!谢谢!


你再看看这个
String s4 = "a" + "bc";
System.out.println(s == s4);//这里会输出true

为什么s3和s4不同呢?

对于常量表达式java编译器是有优化的,"a","bc"都是常量,"a"+"bc"就是常量表达式,java语言规范中常量表达式在编译时就会进行求值,因此对于"a"+"bc"在编译时就被编译器直接处理为"abc",所以s和s4是同一个对象,s == s4为true。对于s1+s2==s3输出false是因为:s1和s2都是一个引用,它并不是一个常量表达式,所以不会在编译期求值,而是在运行期创建一个新的对象,所以和s3不是同一对象。

      
32 楼 温柔一刀 2008-10-23  
learnmore 写道
为什么是false,能不能跟我解释一下!谢谢!


你再看看这个
String s4 = "a" + "bc";
System.out.println(s == s4);//这里会输出true

为什么s3和s4不同呢?

对于常量表达式java编译器是有优化的,"a","bc"都是常量,"a"+"bc"就是常量表达式,java语言规范中常量表达式在编译时就会进行求值,因此对于"a"+"bc"在编译时就被编译器直接处理为"abc",所以s和s4是同一个对象,s == s4为true。对于s1+s2==s3输出false是因为:s1和s2都是一个引用,它并不是一个常量表达式,所以不会在编译期求值,而是在运行期创建一个新的对象,所以和s3不是同一对象。
31 楼 learnmore 2008-10-23  
这个理由到是可以接受,那么正常的逻辑应该是s1和s2在常量池中都有对应的常量
"a"和"bc",而s3=s1+s2,这个"+"号的实现机制是通过一个StringBuffer把s1和s2都append进去,然后调用toString()方法,把结果赋给s3,s3在堆中有一份实例,那么
s3的引用指向堆中的"abc",而s则是指向常量池中的"abc".
所以不相等,不知道这样解释行不行?
30 楼 wangshizhe2477 2008-10-23  
east_java 写道
dengcong 写道
WorkingHard?! 写道
String s="abc";
String s1="abc";
System.out.println(s==s1);


输出个啥?

  true



你有没有搞错啊..

29 楼 xiao0556 2008-10-23  
刚查了一下,字符串运算表达式里有变量的话 是不放入常量池中的。所以结果是false
28 楼 adanov 2008-10-23  
	String s1 = "abc";
	String s2 = "abc";
	System.out.println(s1==s2);
		
	String ss1 = "a";
	String ss2 = "b";
	String ss3 = "c";
	String ss = ss1+ss2+ss3;
	System.out.println(s1==ss);


我運行的結果是不一樣的
我一般比較字符串的值都用 stringObject.equals(anotherStringObject)
但由於第一段是常量,結果就如上述所說,返回true,否則應該都是false
27 楼 learnmore 2008-10-23  
就是在符号重载的时候,我不明白实现的机制到底是什么,其实我也查过不少资料,但感觉讲的都不是很详细.
26 楼 xiao0556 2008-10-23  
运行了一下,还真是false。String对象不是在常量池里吗?
25 楼 dingjun123 2008-10-23  
chenpingtai2008 写道
east_java 写道
dengcong 写道
WorkingHard?! 写道
String s="abc";
String s1="abc";
System.out.println(s==s1);


输出个啥?

  true



你有没有搞错啊..

就是true
都是指向常量池中的
String s="abc"; 因为开始的时候没有 所以要创建一个"abc"
String s1="abc"; 这时候有了 所以直接返回那个对象
所以他们是同一个对象



所言及是,就是true,没有想到这么多人对String还是不了解,还振振有词,晕死!

还有String的intern方法,String的特性和String处理的优化有很大的关系
24 楼 liliugen 2008-10-22  
这个证书最大的作用就是复习的过程中能帮你把JDK的内容系统地复习一遍,but对找工作根本没有什么用,只是一张纸
23 楼 fivestarwy 2008-10-22  
不知道现在scjp的报考费多少,记得刚上大学时好像要$150多,忒贵啊!!
22 楼 liupopo 2008-10-22  
考SCJD需要先考过SCJP的。
21 楼 fivestarwy 2008-10-22  
如果想用证书拿个好offer,SCJP没什么用的,如果真想学点什么,不如花那个钱买些书看,等你有实力了,考个SCJD或SCAJ吧,这两个拿出去估计档次就不一样了,不过等你到了那个水平,也没必要为证书烦恼了
20 楼 chenpingtai2008 2008-10-22  
east_java 写道
dengcong 写道
WorkingHard?! 写道
String s="abc";
String s1="abc";
System.out.println(s==s1);


输出个啥?

  true



你有没有搞错啊..

就是true
都是指向常量池中的
String s="abc"; 因为开始的时候没有 所以要创建一个"abc"
String s1="abc"; 这时候有了 所以直接返回那个对象
所以他们是同一个对象

19 楼 wellgao 2008-10-22  
east_java 写道
SCJP,根据我找工作的经验,价值为0

但从考证的过程中学到了很多.我们要的是个过程..

还是把这些钱买些书看看吧.

所言极是!
18 楼 east_java 2008-10-22  
SCJP,根据我找工作的经验,价值为0

但从考证的过程中学到了很多.我们要的是个过程..

还是把这些钱买些书看看吧.
17 楼 静悄悄 2008-10-22  
String s="abc"在string常量池中
16 楼 east_java 2008-10-22  
dengcong 写道
WorkingHard?! 写道
String s="abc";
String s1="abc";
System.out.println(s==s1);


输出个啥?

  true



你有没有搞错啊..
15 楼 dengcong 2008-10-22  
WorkingHard?! 写道
String s="abc";
String s1="abc";
System.out.println(s==s1);


输出个啥?

  true

相关推荐

    SCJP

    SCJP

    SCJP典型试题1000例

    SCJP典型试题1000例 SCJP典型试题1000例 SCJP典型试题1000例

    SCJP学习指南完整版pdf共18章

    ### SCJP学习指南知识点概述 #### 一、声明与访问控制 (Declarations and Access Control) 本书的第一章重点讲解了声明和访问控制的概念及其在Java中的应用。这些概念对于理解和掌握面向对象编程至关重要。 #####...

    SCJP认证考试指南

    SCJP – Sun Certified Java Programmer (Sun Java 程序员认证).Sun 公司作为Java 语言的发明者,对全球的Java 开发人员进行技术水平认证。该认证在国际上获得了IT 公司的普遍认可,是目前国际上最热门的IT 认证之一...

    SCJP大全

    《SCJP大全》是一款全面覆盖SCJP(Sun Certified Programmer for Java Platform, Standard Edition)考试的知识资源,旨在帮助学习者一次性通过这项重要的Java编程认证。SCJP是Java开发人员的基础认证,证明了持有者...

    SCJP试题,SCJP试题

    SCJP,全称为Sun Certified Programmer for the Java 2 Platform,是Oracle公司(原Sun Microsystems)推出的针对Java程序员的认证考试。这个考试旨在测试考生对于Java SE平台基础编程的知识和技能。以下是一些SCJP...

    SCJP考试资料pdf

    SCJP 可以说各种Java认证的基础,相对于SCJD来说,SCJP更侧重于测验您的Java程序设计概念及能力,内容偏重于Java语法及JDK的内容。其对应的最主要的学习课程是SL-275。SCJP 的学习/考试过程是相对相对比较明确的,...

    Scjp认证考试指南

    SCJP sun certificated java programmer (SCJP)  一种Java认证考试  对于Java程序设计员,Sun推出两项认证:Sun Certificated Java Programmer (SCJP)和Sun Certificated Java Developer(SCJD)。  SCJP 可以说...

    SCJP 经典练习题

    SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司为Java程序员提供的一项权威认证,证明其在Java编程语言上的专业能力。这个认证涵盖了基础语法、类库、异常处理、多线程、...

    SCJP模拟器+JDK5.0+复习资料

    SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司先前对Java程序员进行认证的一项考试,旨在测试开发者对于Java SE平台的基础知识和编程能力。这个压缩包文件包含了一个...

    scjp题库(中文版)

    标题所指的“scjp题库(中文版)”是一本针对Java程序员职业认证——SCJP(Sun Certified Java Programmer)考试的中文版题库。SCJP是Oracle公司早期提供的Java认证考试,后由于Oracle收购了Sun公司,该认证也随之...

    SCJP学习指南

    SCJP(Sun Certified Programmer for the Java Platform)是Oracle公司(原SUN公司)推出的一门针对Java编程语言的初级认证考试。这个认证旨在验证开发者对Java语言基础的掌握程度,包括语法、数据类型、控制结构、...

    SCJP考试相关书籍

    SCJP(Sun Certified Programmer for the Java Platform, Standard Edition)是Oracle公司(原Sun Microsystems)推出的一项Java编程语言的认证考试,旨在验证候选者对Java SE平台的基础知识和编程能力。这个认证...

    scjp模拟器scjp模拟器

    SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司先前为Java程序员提供的一个认证考试,旨在验证候选者对Java编程语言的基本理解与应用能力。这个"scjp模拟器"可能是用于...

    Java SCJP中文学习指南

    Java SCJP,全称为Sun Certified Programmer for the Java 2 Platform, Standard Edition,是Oracle公司针对Java初学者和专业开发者的一项认证考试。这个“Java SCJP中文学习指南”旨在帮助中文使用者深入理解Java...

    SCJP官方教材中文版

    《SCJP官方教材中文版》是一本专门为准备SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)考试的学员编写的指南。SCJP,现已被Oracle认证为Oracle Certified Associate, Java SE 8 ...

    scjp题库(收集了CSDN上大部分题库,近1000道SCJP试题)

    SCJP,全称为Sun Certified Programmer for the Java 2 Platform, Standard Edition,是Oracle公司(原Sun Microsystems)为Java程序员提供的一项认证考试。这个题库包含了近1000道题目,旨在帮助考生全面掌握Java ...

    SCJP考试模拟软件

    SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司为Java程序员提供的一项认证考试,旨在验证考生对Java编程语言的基础知识和理解。这个“SCJP考试模拟软件”显然是一款帮助...

    [浪曦原创]SCJP试题解析视频课程(胡屹)

    资源名称:[浪曦原创]SCJP试题解析视频课程(胡屹)资源目录:【】[A309]SCJP视频解析—序列化【】[A310]SCJP视频解析—字符串上【】[A311]SCJP视频解析—字符串下【】[A312]SCJP试题解析—Constructors【】[A318]SCJP...

Global site tag (gtag.js) - Google Analytics