- 浏览: 602603 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Garlic_90:
ireport分页的话代码写起来有些复杂,我以前试过,比较简单 ...
ireport分页显示 -
feijiing:
nice,problem solved,thanks!
虚拟机安装centos no valid devices were found on which to cereate new file systems -
Jocken:
引用的jar包需要怎么加在命令里面?十多个呢,为什么配在MAN ...
linux 如何运行jar包 -
xiaoqiao800:
看到你的问题,有帮助,我之前都是手动的clear项目下的cla ...
The project cannot be built until build path errors are resolved -
mfkdzhou:
楼主好,我现在也遇到这个问题,可以把源代码发一份不?谢谢了。8 ...
java打印
我是一个开发经验只有半年的程序员,原来通过自学只是学习一些技术,并没有通过什么认证考试,
现在公司这两个星期工作任务不是很多,在网上查了一下,相考一些关于java方面的认证之类的,
为了自己以后的发展,不知道sun的scjp认证用处到底大不大,
希望各位给点建议.
你再看看这个
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不是同一对象。
你再看看这个
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不是同一对象。
输出个啥?
true
你有没有搞错啊..
我運行的結果是不一樣的
我一般比較字符串的值都用 stringObject.equals(anotherStringObject)
但由於第一段是常量,結果就如上述所說,返回true,否則應該都是false
输出个啥?
true
你有没有搞错啊..
就是true
都是指向常量池中的
String s="abc"; 因为开始的时候没有 所以要创建一个"abc"
String s1="abc"; 这时候有了 所以直接返回那个对象
所以他们是同一个对象
所言及是,就是true,没有想到这么多人对String还是不了解,还振振有词,晕死!
还有String的intern方法,String的特性和String处理的优化有很大的关系
输出个啥?
true
你有没有搞错啊..
就是true
都是指向常量池中的
String s="abc"; 因为开始的时候没有 所以要创建一个"abc"
String s1="abc"; 这时候有了 所以直接返回那个对象
所以他们是同一个对象
所言极是!
输出个啥?
true
你有没有搞错啊..
输出个啥?
true
现在公司这两个星期工作任务不是很多,在网上查了一下,相考一些关于java方面的认证之类的,
为了自己以后的发展,不知道sun的scjp认证用处到底大不大,
希望各位给点建议.
评论
34 楼
learnmore
2008-10-23
看了你的解释我首先有点激动,因为我感觉好像突然悟出点什么来了.
我还没去试结果,不过我想先推断一下,按照你的说法,
1.应该是所有常量池中的值都是在编译期间就确定下来的?
2.如果s3是s1和"bc"这个常量相加那么,最后输出的结果应该也是false,因为s1是一个变量所以无法在编译期间确定下来,只有等到运行期间才能确定s1的值,根据你的观点
运行期间确定的必定会在堆中有一份实例,因此s和s3也指向的是不同区域的值?
我还没去试结果,不过我想先推断一下,按照你的说法,
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".
所以不相等,不知道这样解释行不行?
"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
发表评论
-
java模拟点击
2020-05-12 18:26 462try { Dimension screenS ... -
jekins集成maven发布项目过程中遇到的坑
2017-04-05 14:33 1716背景: 用maven构建项目之后,每次需要部署集成测试环 ... -
logback配置
2015-08-17 15:30 662<?xml version="1.0" ... -
javamail
2014-07-09 21:35 803http://blog.csdn.net/zapldy/art ... -
jdbc批量插入数据
2013-11-10 11:35 857以下过程网上看到,备份一下语法而已 Connection co ... -
jdbc获得生成记录主键
2013-11-10 11:18 709在网上看到的,备份一下而已 Connection conn = ... -
jdbc调用存储过程
2013-11-10 11:12 674只是把调用过程备份一下 Connection conn = ... -
十六进制转字符串
2013-07-04 22:09 1348记录一下十六进制转字符串,以备以后使用方便 //十六进制转字符 ... -
模拟自动登录并发表日志
2012-12-11 20:11 1209公司要求每天都需要写 ... -
List.toArray()强转对象数组
2012-06-13 15:18 1501假设现在有一个集合list,里面装的都是对象A,如下代码进行强 ... -
正则表达式
2012-06-05 13:53 1如果你曾经用过Perl或任 ... -
关于LinkedHashMap的一些简单实验
2012-05-15 14:53 929同为实现了Map接口的类,LinedHashMap在迭代的时候 ... -
UUID
2012-05-14 15:34 1491转自http://popwang.iteye.com/blog ... -
eclipse install memory analyzer
2012-05-02 16:16 1085安装地址 http://download.eclipse.or ... -
java加密解密算法记录
2012-04-13 14:56 9922以下内容均摘自我买的书籍《java加密与解密的艺术》作者 梁栋 ... -
common email发送邮件
2012-03-06 16:56 1614项目地址:http://commons.apache.org/ ... -
java实现压缩和解压缩
2012-03-01 16:17 1114转自于站内兄弟的文章:http://wallimn.iteye ... -
java算法记录
2012-02-07 19:12 844package com.algorithm; impor ... -
java中yield(),sleep()以及wait()的区别
2012-02-07 10:30 1003转自http://xiechengfa.iteye.com/b ... -
oracle调用java
2011-12-27 15:18 1477修改别人写的oracle数据库调用java代码,换了一个环境, ...
相关推荐
SCJP
SCJP典型试题1000例 SCJP典型试题1000例 SCJP典型试题1000例
### SCJP学习指南知识点概述 #### 一、声明与访问控制 (Declarations and Access Control) 本书的第一章重点讲解了声明和访问控制的概念及其在Java中的应用。这些概念对于理解和掌握面向对象编程至关重要。 #####...
SCJP – Sun Certified Java Programmer (Sun Java 程序员认证).Sun 公司作为Java 语言的发明者,对全球的Java 开发人员进行技术水平认证。该认证在国际上获得了IT 公司的普遍认可,是目前国际上最热门的IT 认证之一...
《SCJP大全》是一款全面覆盖SCJP(Sun Certified Programmer for Java Platform, Standard Edition)考试的知识资源,旨在帮助学习者一次性通过这项重要的Java编程认证。SCJP是Java开发人员的基础认证,证明了持有者...
SCJP,全称为Sun Certified Programmer for the Java 2 Platform,是Oracle公司(原Sun Microsystems)推出的针对Java程序员的认证考试。这个考试旨在测试考生对于Java SE平台基础编程的知识和技能。以下是一些SCJP...
SCJP 可以说各种Java认证的基础,相对于SCJD来说,SCJP更侧重于测验您的Java程序设计概念及能力,内容偏重于Java语法及JDK的内容。其对应的最主要的学习课程是SL-275。SCJP 的学习/考试过程是相对相对比较明确的,...
SCJP sun certificated java programmer (SCJP) 一种Java认证考试 对于Java程序设计员,Sun推出两项认证:Sun Certificated Java Programmer (SCJP)和Sun Certificated Java Developer(SCJD)。 SCJP 可以说...
SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司为Java程序员提供的一项权威认证,证明其在Java编程语言上的专业能力。这个认证涵盖了基础语法、类库、异常处理、多线程、...
SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司先前对Java程序员进行认证的一项考试,旨在测试开发者对于Java SE平台的基础知识和编程能力。这个压缩包文件包含了一个...
标题所指的“scjp题库(中文版)”是一本针对Java程序员职业认证——SCJP(Sun Certified Java Programmer)考试的中文版题库。SCJP是Oracle公司早期提供的Java认证考试,后由于Oracle收购了Sun公司,该认证也随之...
SCJP(Sun Certified Programmer for the Java Platform)是Oracle公司(原SUN公司)推出的一门针对Java编程语言的初级认证考试。这个认证旨在验证开发者对Java语言基础的掌握程度,包括语法、数据类型、控制结构、...
SCJP(Sun Certified Programmer for the Java Platform, Standard Edition)是Oracle公司(原Sun Microsystems)推出的一项Java编程语言的认证考试,旨在验证候选者对Java SE平台的基础知识和编程能力。这个认证...
SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司先前为Java程序员提供的一个认证考试,旨在验证候选者对Java编程语言的基本理解与应用能力。这个"scjp模拟器"可能是用于...
Java SCJP,全称为Sun Certified Programmer for the Java 2 Platform, Standard Edition,是Oracle公司针对Java初学者和专业开发者的一项认证考试。这个“Java SCJP中文学习指南”旨在帮助中文使用者深入理解Java...
《SCJP官方教材中文版》是一本专门为准备SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)考试的学员编写的指南。SCJP,现已被Oracle认证为Oracle Certified Associate, Java SE 8 ...
SCJP,全称为Sun Certified Programmer for the Java 2 Platform, Standard Edition,是Oracle公司(原Sun Microsystems)为Java程序员提供的一项认证考试。这个题库包含了近1000道题目,旨在帮助考生全面掌握Java ...
SCJP(Sun Certified Programmer for the Java 2 Platform, Standard Edition)是Oracle公司为Java程序员提供的一项认证考试,旨在验证考生对Java编程语言的基础知识和理解。这个“SCJP考试模拟软件”显然是一款帮助...
资源名称:[浪曦原创]SCJP试题解析视频课程(胡屹)资源目录:【】[A309]SCJP视频解析—序列化【】[A310]SCJP视频解析—字符串上【】[A311]SCJP视频解析—字符串下【】[A312]SCJP试题解析—Constructors【】[A318]SCJP...