java中 "==" 和 ".equels"的区别
起初接触java的时候这个问题还是比较迷茫的,最近上班之余刷博客的时候看了一些大神写的文章,自己也来总结一下,直接贴代码:
 package string;
 public class demo1 {
     public static void main(String[] args) {
         String str1 = "hello,word";
         String str2 = "hello,word";
         String str3 = "hello";
         String str4 = new String(str3 + ",word");
         System.out.println(str1 == str2);
         System.out.println(str1 == str4);
         System.out.println(str1.equals(str4));
     }
 }
以上结果输出:true
false
true
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
这里主要运用到了字符串缓冲池,当我们创建str2这个字符串的时候,程序首先会在这个String缓冲池中寻找相同值的对象,在以上程序中,str1先被放到了池中,但是在str2被创建的时候,程序找到了具有相同值的 str1,所以它们内存中的地址自然就相同了;接下来看str4,我们可以看到str4是新new出来的对象,这就等于程序又开辟了一块空间,这时候用"=="和str1比较显然是false,只有使用".equals"才会比较他们的内容是否相等,因此返回true;
java中 "==" 和 ".equels"的区别的更多相关文章
- java中==和equels的区别
		
起初接触java的时候这个问题还是比较迷茫的,最近上班之余刷博客的时候看了一些大神写的文章,自己也来总结一下,直接贴代码: package string; public class demo1 { p ...
 - java中ArrayList 、LinkList区别
		
转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...
 - java 中 ==和equals 的区别
		
Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...
 - java中equals和==的区别  (转)
		
java中equals和==的区别 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...
 - 【转】Java中equals和==的区别
		
[转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boole ...
 - java中a++与++a区别
		
java中a++与++a区别 a++与++a的区别,如果单独使用没有任何区别,如果在运算中就有区别了,a++是先运算在赋值,而++a是先赋值在运算!! 先看a++的代码哦 class demo1 { ...
 - c#与java中byte字节的区别及转换方法
		
原文:c#与java中byte字节的区别及转换方法 在java中 byte的范围在 [-128,127] 在C#中 byte的范围在 [0,255] 所以 java程序与C#程序 进行数据传输的时 ...
 - java中==与equel的区别
		
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地 ...
 - Java中的“&”和“&&”的区别
		
Java中的"&"和"&&"的区别 1."&"是位运算符,"&&"是逻辑 ...
 
随机推荐
- 新手Axis2 发布Web Service之路
			
由于公司的需求,需要写几个银行接口写模拟器(Mock Server),此次接口需要发布成一个WEB Service. 一开始,我以为只要负责写接口的业务层就行了,具体的框架或是环境搭建可以不用管.在与 ...
 - LCD驱动移植在在mini2440(linux2.6.29)和FS4412(linux3.14.78)上实现对比(deep dive)
			
1.Linux帧缓冲子系统 帧缓冲(FrameBuffer)是Linux为显示设备提供的一个接口,用户可以将帧缓冲看成是显示内存的一种映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作 ...
 - Express与NodeJs创建服务器的两种方法
			
NodeJs创建Web服务器 var http = require('http'); var server = http.createServer(function(req, res) { res.w ...
 - jQuery 学习总结(上)
			
第二章:基础选择器 第三章:过滤性选择器 第四章:表单选择器 第五章:jQuery 操作DOM 第六章:jQuery 事件与应用 第七章:jQuery 实现ajax应用
 - 对Node.JS的事件轮询(Event Loop)的理解
			
title: Node.JS的事件轮询(event loop)的理解 categories: 理解 tags: Node JS 机制 当我们知道I/O操作和创建新线程的开销是巨大的! 网站延迟的开销 ...
 - React核心内容归纳总结
			
状态.属性.组件API.组件的生命周期 当react的状态改变时,自动执行this.render()方法更新组件ES6写React的时候,事件里不会自动绑定this,需要自己绑定,或者直接在const ...
 - java gui三个组件的使用
			
链接: http://blog.sina.com.cn/s/blog_614f347b0101egah.html 代码: import java.awt.*; import java.awt.even ...
 - java程序员--小心你代码中的内存泄漏
			
当你从c&c++转到一门具有垃圾回收功能的语言时,程序员的工作就会变得更加容易,因为你用完对象,他们会被自动回收,但是,java程序员真的不需要考虑内存泄露吗? 其实不然 1.举个例子-看你能 ...
 - angular : ng-animate : ng-show 原理,详解
			
这是我第一次写博客,请大家多多指教^^ 拷贝试试 <!DOCTYPE html> <html> <head> <meta http-equiv="C ...
 - 小红帽5.9 配置静态IP上网问题
			
本来无一物,何处染尘埃. DHCP连得好好的,手痒试下STATIC,静态IP 首先进入/etc/sysconfig/network-scripts/ifcfg-eth0, 写入各种参数: BOOTPR ...