- 浏览: 108222 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (159)
- 前端开发 (6)
- jsp (4)
- jquery (17)
- 配置文件 (2)
- Spring (10)
- java (34)
- hibernate (9)
- VC++ win32 application (6)
- C++ (6)
- MFC文件夹对话框 (1)
- C (4)
- MFC (1)
- C# (3)
- 两个路由器怎么连接 (1)
- Maven3 (3)
- Servlet (10)
- Struts2 (6)
- jdom (1)
- Struts1 (1)
- Spring MVC (2)
- Ant (5)
- SSH (6)
- oracle 10g (1)
- ibatis (3)
- JPA (3)
- EJB (2)
- XML知识 (3)
- javascript (2)
- android (1)
- FreeMarker (1)
- dwr (1)
- Ext (10)
- EXCEL (1)
最新评论
[img]
[/img]
执行到(1)时候,在内存中共分配几个对象?答案是2个i对象,但有的同学会错误的理解为
在堆里分配个abc这个对象,在栈里分配个s空间对象,实际上这是错误的。s只是一个实例,是一个存放对象引用的标签变量,像C语言里的指针一样,所以说JAVA是有指针的。实际上是有一个String pool的,叫做串池的,首先看String pool中有没有abc这个串,发现没有,所以就把abc放到String pool中了,然后new String("abc");这句就是在JAVA的堆内存中分配abc这个对象,所以是2个对象,而s指向堆里的abc串。
OK,
下面我们看(2),(2)就不分配对象了,因为s1直接指向,String pool中的abc了,因为String pool中已经存在了abc了。
(3)分配一个对象abc,s2指向这个新分配的对象.
(4)(5)(6)都为false,因为s,s1,s2指向了不同的对象
equals方法比的是内容,只要内容相同了,就返回true,而==比的是,是不是指向同一个对象
[/img]
package com.test; public class StringTest { public static void main(String[] args) { (1) String s=new String("abc"); (2) String s1="abc"; (3) String s2=new String("abc"); (4) System.out.println(s==s1); (5) System.out.println(s==s2); (6) System.out.println(s1==s2); }
执行到(1)时候,在内存中共分配几个对象?答案是2个i对象,但有的同学会错误的理解为
在堆里分配个abc这个对象,在栈里分配个s空间对象,实际上这是错误的。s只是一个实例,是一个存放对象引用的标签变量,像C语言里的指针一样,所以说JAVA是有指针的。实际上是有一个String pool的,叫做串池的,首先看String pool中有没有abc这个串,发现没有,所以就把abc放到String pool中了,然后new String("abc");这句就是在JAVA的堆内存中分配abc这个对象,所以是2个对象,而s指向堆里的abc串。
OK,
下面我们看(2),(2)就不分配对象了,因为s1直接指向,String pool中的abc了,因为String pool中已经存在了abc了。
(3)分配一个对象abc,s2指向这个新分配的对象.
(4)(5)(6)都为false,因为s,s1,s2指向了不同的对象
equals方法比的是内容,只要内容相同了,就返回true,而==比的是,是不是指向同一个对象
发表评论
-
java的日期操作类
2014-09-16 15:00 523package cn.mldn; import ja ... -
列表框 JList
2014-08-16 19:19 473package net.mindview.util; ... -
分页类
2014-02-23 15:05 497package com.yxq.model; pub ... -
java mail
2014-02-14 15:13 385package com.util.mail; /** ... -
Map输出方式一:Iterator输出Map
2014-02-12 11:49 870package com.mldn.map; impo ... -
Comparable
2014-02-11 20:16 375package org.lxh.demo13.setdem ... -
Foreach与迭代器
2014-02-11 17:45 512到目前为止,foreach语法主要用于数组,但是它也可以应 ... -
打印流
2014-02-07 20:10 433package com.bjsxt.print; i ... -
管道流
2014-02-07 17:23 433package com.bjsxt.buffer; ... -
Tramsform IO
2014-02-07 16:15 621package com.bjsxt.transform; ... -
Buffered IO
2014-02-07 15:02 567package com.bjsxt.buffer; ... -
字符流
2014-02-07 10:32 602package com.bjsxt.reader; ... -
字节流
2014-02-06 17:57 496package com.bjsxt.stream; ... -
RandomAccessFile类
2014-02-06 13:18 582使用RandomAccessFile类写入数据 impor ... -
排序啊啊啊啊
2013-09-18 10:32 440package cn.mldn; public cl ... -
java_匿名内部类
2013-04-10 15:26 948package com.bitsoft.inner; ... -
java_内部类
2013-04-10 14:05 778package com.diaodiao.inner; ... -
反射机制(2)
2013-03-20 20:39 697package com.bjsxt.demo; im ... -
反射机制
2013-03-17 22:19 464package org.dcl.demo; inte ... -
jdbc 存储过程
2013-03-13 15:13 713MySQL存储过程的创建 (1). 格式 MySQL存储过 ...
相关推荐
在Java程序员面试中,了解和掌握相关知识点是至关重要的,因为这是评估候选人技术水平和专业素养的关键环节。以下是一些常见的Java面试题目及其解答: 1. **面向对象的特征有哪些方面?** - 封装:隐藏对象的属性...
### Java最新面试宝典知识点概览 #### 一、Java基础 **1.1 Collection和Map** - **知识点概述:** - 掌握`Collection`接口及其子接口`List`、`Set`的不同之处。 - 理解`Map`接口与`Collection`接口的主要区别。 ...
82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...
### Java面试宝典知识点解析 #### 一、Java基础部分 **1.1 多个类在一个....以上内容为《Java面试宝典》中的部分知识点解析,涵盖了Java基础知识的多个方面,对于准备Java面试的求职者来说是非常有价值的复习资料。
### 华为Java面试知识点详解 #### 一、面向对象的特征 面向对象编程的核心特征主要包括以下几个方面: 1. **封装性**:封装是将数据和操作数据的方法绑定在一起作为一个整体,即对象。通过访问控制符(如private...
9. 举例说明Java中的静态导入和动态导入。 10. 什么是线程安全,哪些常见的Java集合是线程安全的? 【多线程】 多线程是Java的重要特性,面试中常常涉及。了解线程生命周期、同步机制(如synchronized, volatile, ...
### Java面试宝典2018 - Java基础知识详解 #### 1. 在一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 在一个`.java`源文件中可以包含多个类,但是有以下限制: - **公共类(public class)**...
### Java面试题题库详解 #### 1. Java基本概念:String是什么?它与其它类型有何不同? **知识点概述:** - **String 类型的基本理解:** 在 Java 中,`String` 是一个不可变的对象,它代表了字符序列。 - **与...
在Java编程语言中,String是一个非常重要的类,它被广泛用于表示和处理字符串数据。...在面试中,回答这类问题时要注意准确、完整,并且结合Java类库的特点来举例说明,以显示出你对Java语言和类库的深入理解。
**常用属性和方法举例:** - **NotesSession:** - `CurrentDatabase`:返回当前会话的数据库。 - `UserName`:返回当前用户的用户名。 - **NotesUIWorkspace:** - `OpenWindow`:打开指定的窗口。 - `...
【Java 华为面试题详解】 ...以上是对Java面试题中涉及的各个知识点的详细解释,这些内容涵盖了Java的基础概念、异常处理、集合框架、多线程、JSP以及网络通信等方面,对于理解和掌握Java编程具有重要意义。
【Java 华为面试题详解】 在 Java 面试中,华为公司常常会考察候选人的基础理论知识、编程实践以及并发处理等能力。以下是对这些面试题的详细解析: 1. **面向对象的特征** - 封装:隐藏对象的属性和实现细节,仅...
根据提供的文档信息,我们可以归纳并详细解释其中提及的Java知识点,这些内容对于准备Java面试的开发者来说非常有价值。下面是对每个问题的详细解答: ### 1. 一个".java"源文件中是否可以包括多个类(不是内部类)...
### Java面试宝典2012版重要知识点详解 #### 1. 多个类在一个`.java`文件中 **问题**: 在一个`.java`源文件中是否可以包括多个类(不是内部类)? **答案**: 可以,但一个`.java`文件中只能有一个公共类(public ...
### 华为公司Java程序员面试试题解析 #### 颈环节一:面向对象的基本概念 1. **面向对象的特征**: - 封装:将数据和操作这些数据的方法捆绑在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式。 - 继承...
Java面试和笔试题是检验开发者基础技能和深入理解的...这些题目涵盖了Java的基础语法、内存管理、企业级开发和容器服务等方面,是评估Java开发者技能的重要参考。在准备面试时,了解和熟练掌握这些知识点是至关重要的。
【Java 面试题技术类】 1. **2 乘以 8 等于几的最有效计算方法**:这是考察基础运算能力,答案是 16。 2. **String 不是最基本的数据类型**:Java 中的基本数据类型包括 byte、short、int、long、float、double、...
### 华为Java面试题知识点解析 #### 一、Java面向对象基础 1. **super()与this()的区别** - `super()`用于调用父类的构造方法或父类中的成员方法。 - `this()`用于调用本类中的其他构造方法。 2. **作用域public...
Java 基础面试考察点是 Java 开发人员必须掌握的知识点,涵盖了 Java 基础知识、多线程、JVM 相关知识点等几个方面。 Java 基础知识点 1. Java 内部集合类:ArrayList 和 LinkedList 的区别,数据结构实现,扩容...