java中“==”和equal区别】的更多相关文章

8个月以后就要正式找工作啦,我觉得现在是时候花时间好好深入研究一下以前比较混肴的知识.这就当作是自我成长的第一步! 对于String中的“equal方法”和“==”一直有点混肴,今天重新看了一下他们两点的区别,记录下来让自己以后不在忘记! 先说“==”: “==”是用来比较两个String对象在内存中的存放地址是否相同的.例如, String test1 = "test"; String test2 = "test"; String test3 = new Stri…
java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类)   当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个eq…
Java 中>>和>>>的区别 Java中的位运算符: >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1: >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0. 表达式为: result = exp1 >> exp2; result = exp2 >>> exp2; 表示把数exp1向右移动exp2位. 例如: res = 20 >> 2;  2…
http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452156.html String str1 = new String("str"); String str2 = new String("str"); System.out.println("==比较 :"+ str1 == str2); System.out.println("equal比较:"+ str1.e…
场景:java 作为客户端调用已有的一个.net写的server的webservice,输入string,返回字节数组. 问题:返回的值不是自己想要的,跟.net客户端直接调用总是有差距 分析:平台不一样,字节表达不一样 ,经过查询之后,结果如下 .NET和Java中BYTE表达确实不一样,区别如下: 1.有符号和无符号 c#中字节byte的范围是0~255: java中字节byte的范围是-128~127: 2.高低位顺序不同 比如16位整数10用16进制000A,在.net转换成byte数组…
“&&”和”&”都是java中的逻辑运算符,并且它们都表示“逻辑与”即“同真则真,有一假则假”,它们的区别在于”&&”具有短路功能,即如果左边是false,则右边的逻辑表达式不会执行.而”&”没有短路功能,无论左边是false还是true右边都会执行. public class Test { public static void main(String[] args) { System.out.println(false&&(1/0==0))…
在java中&和&&都属于逻辑运算符,都是判断两边条件为真时为真,否则则为假. 在程序中: int i = 1; if ((i++ > 1) & (i++ > 3)) { System.out.println("啦啦啦"); } else { System.out.println("噢噢噢"); } System.out.println(i); 运行结果: 噢噢噢 3 & 逻辑运算符实际上会把前后两个判断条件都执行…
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用. 堆内存用来存放由new创建的对象和数组. 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理. 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变…
Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false. &&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式:&则两个表达式都执行. &可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作. &&第一个表达式为false int i = 0; if(i == 3 &&…
集合一般的操作       插入: add       删除: remove       查找: contains,remove java中的集合 注意哪些是接口,哪些是实现类 使用集合的时候 1. 有无序,可否重复 –Set:无序.不可重复的集合 –List:有序,可重复的集合 --双向链表(LinkedList):对get和set调用花费常数时间,对插入和删除代价昂贵 --动态数组(ArrayList): 对插入和删除开销小,对get花费昂贵(不容易做索引,但是可以通过索引访问) –Map:…
斜杠“/”表示地址路径的下一级目录:反斜杠“\”表示转义字符,例如:要做制表,可以输入:\t:做换行:\n等.如果要输出反斜杠“\”也需要用转义字符:“\\”    在java中后台给前台传的时候如果我们的字符串中有“\”的话,我们可以通过string中的substring方法将‘\’转化为‘/’.…
public class QQ { public static void main(String[] args) throws ParseException { byte val1 = 5; double val2 = 125d; val1 = (byte) (val1 + val2); System.out.println(val1); val1 = 5; val2 = 125d; /* * java中+=的真正意义包含两个部分,一是“+”,就是通常所说的直接相加,二是改变结果的类型:将计算结…
1.在java中路径一般用”/” 2.linux.unix中的路径一般用”/” 3.windows中的路径一般用”\” 所以在java中写windows路径一般用”/”,或用“\”将”\”转义一下("\\"),就成了”\”.…
{}在javascript中是对象,其访问属性的方法为 a.name,a['name'],参见http://www.itxueyuan.org/view/6332.html {}在python,java中是字典(java中叫map),其访问方式为a.get(‘name’),a['name']…
简单的说: Java把内存划分成两种:一种是栈内存,一种是堆内存. 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用. 堆内存用来存放由new创建的对象和数组. 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理. 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C+…
==比较的是对象的地址,也就是是否是同一个对象: equal比较的是对象的值. Integer r1 = new Integer(900);//定义r1整型对象Integer r2 = new Integer(900);//定义r2整型对象System.out.println(r1==r2);//返回falseSystem.out.println(r1.equal(r2));//返回true =============equal是用来判断一个字符串的,比如:String s = test;if…
==和equal()都是用来判断两个变量是否相等的. (1)如果两个变量是基本类型变量,且都是数值型的(不一定数据类型相同),只要是值相同,将返回true; (2)如果两个变量是引用型变量,只有它们指向同一个对象时,==才返回true; (3)equal比较的是两个字符串,只要两个字符串的字符对应相等,就返回true. int it=65; float f1=65.0f; //it==f1 为true char ch=‘A’; //it==ch 为true String str1 = new S…
我想很多人在学习java的时候,或者面试时都会遇到 &和&& 然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦 在这篇blog中,当你看完了以后,你会发现,很容易就把他们给区分开了 下面是我的demo 1 /** 2 * 3 */ 4 package com.b510.test; 5 6 /** 7 * @author Jone Hongten 8 * @create date:2013-11-2 9 * @version 1.0 10 */ 11 public…
我想很多人在学习java的时候,或者其他语言(如:C#,.Net等)都会遇到 &和&& 然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦 在这篇blog中,当你看完了以后,你会发现,很容易就把他们给区分开了 下面是我的demo /** * */ package com.b510.test; /** * @author Jone Hongten * @create date:2013-11-2 * @version 1.0 */ public class Test…
先看一段代码 String str1 = new String("str"); String str2 = new String("str"); System.out.println("==比较 :"+ (str1 == str2)); System.out.println("equal比较:"+ str1.equals(str2)); String str3 = "str1"; String str4 =…
主要是使用String时候的区别! 一.java当中的数据类型和“==”的含义 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号(==),比较的是他们的值. 复合数据类型(类):当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址). 注:对于第二种类型,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.因为每new一次…
java String 是不可改变的类型. String a = "hello2"; String d = "hello"; final String b = "hello"; String c = b + "2";// final相当于常量,编译阶段直接加入常量池 String cc = “hello”+“2”: 类似于 final修饰的,在编译期间,会自动优化处理为:hello2 并加入常量池,所以和a比较相等,和e比较不…
equals 方法是 java.lang.Object 类的方法. 有两种用法说明: (1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同. “==”比较两个变量本身的值,即两个对象在内存中的首地址. “equals()”比较字符串中所包含的内容是否相同. 比如: String s1,s2,s3 = "abc", s4 ="abc" ; s1 = new String("abc"); s2 = new St…
两者都是或,但是不一样.举个例实例给你看你就明白了: int i=0;if(3>2 || (i++)>1) i=i+1;System.out.println(i); 这段程序会打印出1,而不是打印出2.因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面一个表达式即(i++)>1了,所以这里i并没有自增1.然后程序执行到i=i+1,于是i…
"\"在mac系统和类Unix 系统中是识别不出来的,对于java这种跨平台的语言来说不宜使用这个符号 "/"使用这个符号一般 都可以被识别…
1.对于基础数据类型,使用“=="比较值是否相等: 2.对于复合数据类型(类),使用equals()和“==”效果是一样的,两者比较的都是对象在内存中的存放地址(确切的说,是堆内存地址). 3.对于String.Integer.Date等覆盖了equals()方法的类型,“==”比较的是存放的内存地址.而equals()的结果则由覆盖后的代码决定. 4.string类型中,equals()比较的是两字符串内容是否相同.如: String s1 = "Hello"; Strin…
一.java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号(==),比较的是他们的值. 引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址). 注:对于第二种类型,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.因为每new一次,都会重新开辟堆内存空间. 总结:一般数…
        网上说的不少,发现都是同一篇,汗..... (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数, (3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据. 在一本书上看到若是正常则response.getRequestDispatch…
1.1. 逻辑与的运算符功能 1.1.1. 测试&& public static void main(String[] args) { int x=5; if (x==6 && saySpringok()) { } } private static boolean saySpringok() { System.out.println("saySpringok"); return false; } 没有输出:因为用的&& 第一个不满足条件则…
>>>表示不带符号向右移动二进制数,移动后前面统统补0:两个箭头表示带符号移动, 没有<<<这种运算符,因为左移都是补零,没有正负数的区别. 如 -12 的二进制为:1111  1111  1111  1111  1111  1111  1111  0100: -12 >> 3 即带符号右移3位,结果是:1111  1111  1111  1111  1111  1111  1111  1110,十进制为: -2: -12 >>> 3 就是…