- 浏览: 85915 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (97)
- java (23)
- 自定义标签 (3)
- struts (7)
- SSI (0)
- SSH (6)
- IBATIS (14)
- hibernate (2)
- spring (2)
- ssl认证 (1)
- jstl (2)
- jstl中list嵌套map (0)
- ajax (2)
- lucene (2)
- js (5)
- servlet (1)
- jquery (0)
- javascript (7)
- struts1 (1)
- sql (7)
- 公司面试心得 (3)
- jdk (1)
- ERP行业必备的工具 (1)
- 数据库连接池 (1)
- 日志配置问题 (1)
- 呵呵 (0)
- DOJO (1)
- WS (0)
- 工作流JBPM (1)
- 開發工具準備 (1)
- 注解 (0)
- fdsfsdf (0)
- 分页 (0)
- oracle (1)
最新评论
-
kongchuijian:
System.out.println(Arrays.toStr ...
java中数组的问题 -
wyr123789:
你上面已经定义成字节型的为什么还要强转啊?还有你那个'z'-i ...
新手入门 -
ipanel420:
居然是茁壮的同事
SSH2整合+分页+ajax+js校验用户名 -
yemengfan:
楼主能不能把你这个项目发给我啊。我想看看! yemengfa ...
SSH2整合+分页+ajax+js校验用户名
1、考查"=="的结果
2、String的intern()函数的返回值
java 代码
1.package com.test;
2.
3.public class StringTest {
4.
5. public static void main(String[] args)
6. {
7. //有关字符串new 的解释:new String("abc"),首先会在String pool中查找值为"abc"的字符串,如果没有找到,则将在String pool中创建一个对象,然后在String堆中创建一个对象,此时,共产生了两个对象,分别指向不同的内存地址(String pool 和 String 堆)
8. //如果在String pool中找到有"abc"这个值存在,则不会再在String pool中创建对象,而只在String堆中创建对象
9. //此时s指向的是String堆中的对象,也就是String堆中的值为"abc"的对象的引用,s的值也就是String堆中的值为"abc"的对象的内存地址
10. String s = new String("abc");
11.
12. //s1指向的是String pool中值为"abc"的对象,s1的值也就是String pool中的值为"abc"的对象的内存地址
13. //此时因为String pool中值为"abc"的对象已经在上面的String s = new String("abc");步骤中被创建了,所以此时并没有创建对象
14. String s1 = "abc";
15.
16. //s2指向的是在String堆中新创建的值为"abc"的对象
17. //此时也就创建了一个对象(String堆中的值为"abc"的对象,因为String pool中值为"abc"的对象已经在上面的String s = new String("abc");步骤中被创建了)
18. String s2 = new String("abc");
19.
20.
21. //==比较的永远是两个对象的内存地址
22. //s、s1、s2都指向的是不同的内存地址对应的对象
23. System.out.println(s == s1);//false
24. System.out.println(s == s2);//false
25. System.out.println(s1 == s2);//false
26.
27.
28. //String的intern()函数返回的是String pool中对应的对象
29. //s.intern()返回的是String pool中值为"abc"的对象,而s是指向String堆中的值为"abc"的对象,所以他们的内存地址肯定不同
30. System.out.println(s == s.intern());//false
31. System.out.println(s1 == s1.intern());//true
32. System.out.println(s.intern() == s2.intern());//true
33.
34. String hello = "hello";
35. String hel = "hel";
36. String lo = "lo";
37.
38. //原型字符串用"+"连接,过程是:字符串连接后("hello"),再去String pool中查找
39. System.out.println(hello == "hel" + "lo");//true
40. //原型字符串与字符串对象用"+"连接,过程是:字符串连接后("hello"),在String堆中创建一个新的对象,用于存放这个字符串
41. System.out.println(hello == "hel" + lo);//false
42.
43. }
44.}
2、String的intern()函数的返回值
java 代码
1.package com.test;
2.
3.public class StringTest {
4.
5. public static void main(String[] args)
6. {
7. //有关字符串new 的解释:new String("abc"),首先会在String pool中查找值为"abc"的字符串,如果没有找到,则将在String pool中创建一个对象,然后在String堆中创建一个对象,此时,共产生了两个对象,分别指向不同的内存地址(String pool 和 String 堆)
8. //如果在String pool中找到有"abc"这个值存在,则不会再在String pool中创建对象,而只在String堆中创建对象
9. //此时s指向的是String堆中的对象,也就是String堆中的值为"abc"的对象的引用,s的值也就是String堆中的值为"abc"的对象的内存地址
10. String s = new String("abc");
11.
12. //s1指向的是String pool中值为"abc"的对象,s1的值也就是String pool中的值为"abc"的对象的内存地址
13. //此时因为String pool中值为"abc"的对象已经在上面的String s = new String("abc");步骤中被创建了,所以此时并没有创建对象
14. String s1 = "abc";
15.
16. //s2指向的是在String堆中新创建的值为"abc"的对象
17. //此时也就创建了一个对象(String堆中的值为"abc"的对象,因为String pool中值为"abc"的对象已经在上面的String s = new String("abc");步骤中被创建了)
18. String s2 = new String("abc");
19.
20.
21. //==比较的永远是两个对象的内存地址
22. //s、s1、s2都指向的是不同的内存地址对应的对象
23. System.out.println(s == s1);//false
24. System.out.println(s == s2);//false
25. System.out.println(s1 == s2);//false
26.
27.
28. //String的intern()函数返回的是String pool中对应的对象
29. //s.intern()返回的是String pool中值为"abc"的对象,而s是指向String堆中的值为"abc"的对象,所以他们的内存地址肯定不同
30. System.out.println(s == s.intern());//false
31. System.out.println(s1 == s1.intern());//true
32. System.out.println(s.intern() == s2.intern());//true
33.
34. String hello = "hello";
35. String hel = "hel";
36. String lo = "lo";
37.
38. //原型字符串用"+"连接,过程是:字符串连接后("hello"),再去String pool中查找
39. System.out.println(hello == "hel" + "lo");//true
40. //原型字符串与字符串对象用"+"连接,过程是:字符串连接后("hello"),在String堆中创建一个新的对象,用于存放这个字符串
41. System.out.println(hello == "hel" + lo);//false
42.
43. }
44.}
发表评论
-
JDK、Tomcat、MyEclipse整合
2013-03-13 22:18 0http://wenku.baidu.com/view/222 ... -
dt_003_02
2012-11-16 17:55 0@SuppressWarnings("uncheck ... -
dt_002_03
2012-11-15 19:41 0private static Map<String, L ... -
dt_002_02
2012-11-15 19:22 0package com.star.web.action; i ... -
dt_002_003
2012-11-15 19:13 0public String saveSetting() thr ... -
dt_0002_01
2012-11-15 17:21 0<%@ page language="java ... -
text测试
2012-05-10 18:35 0http://hi.baidu.com/boy86xf/ite ... -
分页测试
2012-05-10 18:34 0package com.chinasoft.remunerat ... -
java入门例子的思考
2011-11-14 13:05 1449public class testjava{ public ... -
IO的操作
2011-03-28 11:38 615一. Input和Output 1. stream代表的是任何 ... -
编码规范
2011-03-25 17:51 728很久以来都在体会着JAVA的风格,现在做一简单陈述,希望大家多 ... -
java中数组的问题
2011-03-17 09:00 902public class ThreeDay { pub ... -
把一个数组中的偶数重新组成一个新数组
2011-03-14 15:08 928挖哈哈!! 刚刚上班,通信联系坏了,公司的人联系不到我,我就 ... -
面试的一个简单程序但是当时没有想起来
2011-03-09 18:38 6811.2.2.4.8.16.32 请问第32位是多少这样的jav ... -
快速排序
2011-03-08 00:03 6291. 采用快速排序,一般 ... -
上传和下载
2010-10-25 10:38 805public HttpServletResponse down ... -
java集合
2010-10-25 09:24 7511. ArrayList 基于数组方式实现,无容量的限 ... -
java中static private 与 final 详谈
2010-10-19 13:55 1093文章分类:Java编程 1.static表示静态。他是属于类 ... -
java中的对象详谈
2010-10-14 18:29 7422.1 用引用操作对象 (1 ... -
发送邮件
2010-10-14 14:54 769import java.util.HashMap; impor ...
相关推荐
设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。构造函数至少应有三个:无参构造函数、C风格字符串构造函数和复制构造函数 2、为string类提供必要的成员函数,可以参考C++类库的string类提供了...
C++ String 类常用成员函数汇总 C++ 的 String 类提供了多种成员函数来操作字符串,这些成员函数可以分为构造函数、字符操作、特性描述、输入输出操作和赋值五大类。 首先,String 类的构造函数有多种重载版本,...
string类 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)...
java基础String类选择题练习题,文档包含了答案与分析,适合学习用,本文档仅仅用于学习分享,不得用于商业用途
Educoder题目:Java面向对象 - String类答案解析
C++重写String类C++重写String类C++重写String类C++重写String类
C++实现的String类,可以支持UTF-8编码
*String类中包括以下函数:* *默认构造函数,带参数构造函数 , 拷贝构造函数 *取字符串函数GetString(),取字符串长度函数GetLength(),查找字串位置函数Find() *重载,>>,[],=,+,> *析构函数 *String类中包括2个...
2、为string类提供必要的成员函数,可以参考C++类库的string类提供了那些成员函数,至少应包括下标访问,子串查找、获得C风格字符串、获得字符串长度、字符串比较这几个函数 3、利用该string类完成测试程序:统计一...
C++ stl中重要容器string类的构造方法与基本概念和一些有用的字符串操作
C++编写的类似于string类,自己改动实现相关库函数功能 C++的一般编译器都定义和封装了字符串功能,请模仿定义string类的实现,可以实现并支持如下功能: (1)string s = “rubbish大学”; (2)string t = s; ...
该文档讲解了C++string类的各项函数,讲解详细,内容充实且举例较多
C++语言string类的实现 完整源代码 pdf
自定义String类 构造函数 拷贝构造 =运算符重载 +运算符重载 运算符重载 等 等
string类常用函数 包括各种方法 c++ c语言
Object,String类练习.doc
介绍java中String类的方法,String类实例的创造
String类的常用方法(一) 目录 课程导入 掌握获取字符串长度的方法 掌握字符串连接、截取子串的方法 方法定义:public int length() 获取字符串的长度 例如: String message = “Welcome to Java”; System.out....
Java中String类和常用方法 实例化String对象
java中String类的intern、split方法的详细讲解。