- 浏览: 88817 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (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 1470public class testjava{ public ... -
IO的操作
2011-03-28 11:38 647一. Input和Output 1. stream代表的是任何 ... -
编码规范
2011-03-25 17:51 752很久以来都在体会着JAVA的风格,现在做一简单陈述,希望大家多 ... -
java中数组的问题
2011-03-17 09:00 951public class ThreeDay { pub ... -
把一个数组中的偶数重新组成一个新数组
2011-03-14 15:08 955挖哈哈!! 刚刚上班,通信联系坏了,公司的人联系不到我,我就 ... -
面试的一个简单程序但是当时没有想起来
2011-03-09 18:38 7061.2.2.4.8.16.32 请问第32位是多少这样的jav ... -
快速排序
2011-03-08 00:03 6571. 采用快速排序,一般 ... -
上传和下载
2010-10-25 10:38 839public HttpServletResponse down ... -
java集合
2010-10-25 09:24 7641. ArrayList 基于数组方式实现,无容量的限 ... -
java中static private 与 final 详谈
2010-10-19 13:55 1132文章分类:Java编程 1.static表示静态。他是属于类 ... -
java中的对象详谈
2010-10-14 18:29 7632.1 用引用操作对象 (1 ... -
发送邮件
2010-10-14 14:54 797import java.util.HashMap; impor ...
相关推荐
设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。构造函数至少应有三个:无参构造函数、C风格字符串构造函数和复制构造函数 2、为string类提供必要的成员函数,可以参考C++类库的string类提供了...
根据提供的信息,我们可以总结出这份Java基础String类选择题练习题主要聚焦于String及StringBuffer类的使用。尽管具体的题目内容未给出,但从所展示的信息中可以推断出该练习题集涵盖了以下几方面的知识点: ### 一...
String类的常用方法 String类是Java语言中最基本的类之一,用于处理字符串。字符串是一个字符序列,Java中字符串是不可变的,即创建后不能被修改。下面是String类的常用方法: 1. equals()方法:用于判断两个字符...
标题中的“string类的构造方法”揭示了我们要探讨的核心内容——如何初始化和创建`std::string`对象。`std::string`类不仅在日常编程中频繁使用,而且在很多高级功能如正则表达式、文本处理等方面都有重要应用,因此...
在Java编程语言中,String类是一个非常基础且重要的部分,它是不可变的,也就是说一旦创建了一个String对象,就不能更改它的内容。然而,许多初学者在学习过程中可能会尝试自己创建一个类似的字符串类,以便更好地...
String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...
C++ String 类常用成员函数汇总 C++ 的 String 类提供了多种成员函数来操作字符串,这些成员函数可以分为构造函数、字符操作、特性描述、输入输出操作和赋值五大类。 首先,String 类的构造函数有多种重载版本,...
在这个"链表string类程序"中,我们可以预想它可能涉及到用C++实现链表结构,并结合`std::string`进行字符串的操作。下面将详细介绍`std::string`类以及如何将其与链表相结合。 1. **`std::string` 类基础** `std::...
本文主要介绍了C++中的字符串类函数原型借鉴,通过自定义的String类来实现字符串的操作。下面将对标题、描述、标签和部分内容进行详细的分析和解释。 标题:C++ String 类函数原型借鉴 C++中的字符串操作是非常...
在C#编程语言中,String类是用于处理文本字符串的核心类。它提供了丰富的功能,使得在处理字符串时能够实现各种常见的操作。以下是对C#中String类常用方法的详细解释和示例: 1. `.ToLower()` 和 `.ToUpper()` 这...
Java中的String类是编程中非常基础且重要的一个类,它代表不可变的字符序列,即一旦创建,其内容就不能更改。下面我们将详细讨论String类的一些主要特性、实例化方式以及常用方法。 1. **String类的实例创建**: -...
C++的string类提供了一系列方便的成员函数,用于处理和操作字符串。 2.1 C++字符串和C字符串的转换 string类可以方便地与C风格的字符数组进行转换。例如,你可以使用.c_str()成员函数将string对象转换为C风格的...
Java 实验报告四(实现 String 类) 在本实验报告中,我们将实现 Java 中的 String 类,并了解其实现原理。 String 类是 Java 中一个非常重要的类,它提供了字符串操作的各种方法。在这里,我们将基于 ArrayList ...
Educoder题目:Java面向对象 - String类答案解析
C++实现的String类,可以支持UTF-8编码
*String类中包括以下函数:* *默认构造函数,带参数构造函数 , 拷贝构造函数 *取字符串函数GetString(),取字符串长度函数GetLength(),查找字串位置函数Find() *重载,>>,[],=,+,> *析构函数 *String类中包括2个...
标题提到的“自己写了个string类”,意味着作者创建了一个类似于C++标准库中的`std::string`的自定义字符串类。这样的练习有助于深入理解字符串的内部工作原理、内存管理和对象操作。下面我们将详细探讨这个话题。 ...
2、为string类提供必要的成员函数,可以参考C++类库的string类提供了那些成员函数,至少应包括下标访问,子串查找、获得C风格字符串、获得字符串长度、字符串比较这几个函数 3、利用该string类完成测试程序:统计一...
C++编写的类似于string类,自己改动实现相关库函数功能 C++的一般编译器都定义和封装了字符串功能,请模仿定义string类的实现,可以实现并支持如下功能: (1)string s = “rubbish大学”; (2)string t = s; ...