[Java方面的面试题]Ja方面的面试题 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一个connect pool,...+阅读
面试题描述java中字符串的比较方式有哪些
java中的字符串比较方法:
1)string1.equals(string2)
2) str1==str2 。
java中字符串的比较是==比较引用,equals 比较值的做法。但是不同的声明方法字符串的比较结果也是不同的。
例如: String str1=new String("a");
String str2=new String("a");
str1==str2 输出false
str1.equals(str2) 输出true
而如果这样声明
String str1="a";
String str2="a";
str1==str2 输出true
str1.equals(str2) 输出true
这是因为 equals 方法本来也是比较引用的字符串类在实现的时候重写了该方法。
第一种声明方法等于是声明了两个对象,用'==‘比较是时候比较的是引用输出的是false 由于他们的值相同用equals的时候就比较的是值了,输出true。
第二种情况不是因为比较有与第一种有差异,而是因为声明有差异,第二种声明方法在声明的时候有堆或堆栈 共用的现象,也就是说
在声明的时候如果如果声明为类属性他会检查在堆栈中有没有与现在声明的是相同结构的字符串。如果有就直接将地址指向已有内存地址。声明在方法内部的局部变
量原理一样只不过他是堆栈共享。
在Java中用作字符串比较的运算符和 equals的区别
1.
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
2.
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。
3.
s1 = new String("sony"); //创建的是字符串对象
s1.equals("sony"); //返回true
s1 == "sony" //返回false
//如果
s1 = "sony";
s1 == "sony" //返回true
//如果
s1 = "sony";
s2 = "sony";
s1.equals(s2); 或者string.equals(s1,s2);//返回true
字符串比较函数
修改如下
#include
int strcmp(char *str1,char *str2)
{
for(;;str1++,str2++)
{
if(*str1==*str2)
if(*str1=='\0')
break;
else
continue;
else
break;
}
return *str1-*str2;
}
int main()
{
int n,i;
char str1[100],str2[100];
scanf("%d",&n);
for(i=0;i{
scanf("%s",str1);
scanf("%s",str2);
printf("%d\n",strcmp(str1,str2));
}
return 0;
}
延伸阅读:
java基础面试题有哪些下面是10道java基础面试题,后附答案1.什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编...
java面试题字符串反转 public String reset(String message) { StringBuffer buffer=new StringBuffer(); for (int i = message.length()-1; i >=0 ; i--) { buffer.append(message.s...
java面试题有哪些常见的啊第一,谈谈final, finally, finalize的区别。 最常被问到。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Stat...
美国MBA面试中道德问题的应对方式有哪些尽管我们认为没有哪所商学院声称教授“伦理学”,但许多学校开设有关课程,让学生对工商管理中可能出现的难处理的道德问题有初步认识,并促使他们思考以后工作中遇到类似情况时应...
数据结构有关字符串的面试题求解答建一张hash表,记录a-z 26个字母的出现次数 char table[ 26 ] ; 第一题,假设第一个字符串为s1,第2个字符串为s2 for( i = 0 ; i table[ i ] = 0 ; for( i = 0 ; i table[ s1[i]...
c语言面试题关于字符串还有字符指针str是个字符指针,也可以表示为字符数组或者字符串,str = &a;表示str指向的地方只能存下一个字符。 strcpy(str, “hello”); 肯定放不下hello啊,所以会有内存错误 如果你不相信,...
使用Java的String类操作字符串和子串public class Du02 { public static void main(String[] args) { String str = "I am a student,I am at ccit"; System.out.println(str.length()); System.out.println(str....
Java线程面试有哪些问题我就抛砖引玉的提出两个问题,让我们去思考一下。 1)现在有T 1、T 2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段...
关于java的面试题如果你的要是是被任何类调用,这种工具性质的方法一般可以是静态的,Java中的方法不能直接调用,只有通过某个类才被调用。例:public class Util{ public staticvoid invoke(String...