java有关问题,java经典有关问题!

java经典问题!!!

问题一:==与equal的区别?

==和 equals 都是比较的,而前者是运算符,后者则是一个方法,基本数据类型和引用数据类型都可以使用运算符==,而只有引用类型数据才可以使用 equals,下面具体介绍一下两者的用法以及区别.

==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。

如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如 Objet obj = new Object();变量 obj是一个内存, new Object()是另一个内存,此时,变量 obj 所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。equals 方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:

String a=new String("heima");

String b=new String("heima");

两条 new 语句创建了两个对象,然后用 a,b 这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即 a 和 b 中存储的数值是不相同的,所以,表达式 a==b 将返回 false,而这两个对象中的内容是相同的,所以,表达式 a.equals(b)将返回 true。

equals 本身是一个方法,它是根类 Object 里边的方法,所有类和接口都直接或者间接继承自 Object,所以在所有的类中都有 equals()方法,都是继承来的,

在实际开发中,我们经常要比较传递进行来的字符串内容是否等,例如, String input = …;input.equals(“quit” ),许多人稍不注意就使用==进行比较了,这是错误的,随便从网上找几个项目实战的教学视频看看,里面就有大量这样的错误。记住,字符串的比较基本上都是使用 equals 方法。

如果一个类没有自己定义 equals 方法,那么它将继承 Object 类的 equals 方法,Object 类的 equals 方法的实现代码如下:

booleanequals(Object o){return this==o;

}

这说明,如果一个类没有自己定义 equals 方法,它默认的 equals 方法(从 Object类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用 equals 和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回 false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals 方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。代码,试一下 equals 和==的区别

/** ==和 equals 的用法以及区别

**/

public classTestEqulas{public static voidmain(String[] args) {

String s= new String("heima");

String s2= new String("heima");

System.out.println(s.equals(s2));//输出 true,因为 String 类已经重写了 equals

System.out.println(s == s2);//输出 false,因为两者的地址是不同的//创建三个动物对象//a1 和 a2name 和 age 都相同

Animal a1 = new Animal("Tom",5);

Animal a2= new Animal("Tom",5);//先试一下用==比较链各个对象

System.out.println(a1 ==a2);//输出 false,两个对象内容相同,但是他们的引用首地址不同//首先将自己写的 equals 方法注释掉,看输出结果是什么

boolean b =a1.equals(a2);

System.out.println(b);//结果为 false,证明是调用的继承来的那个 equals 方法//然后我们调用自己已经重写的 equals,再看下结果

b = a1.equals(a2);//现在调用的是已经重写后的方法

System.out.println(b);//所以打印的是 true

}

}

public classAnimal {privateString name;private intage;publicAnimal(){}public Animal(String name,intage){this.name =name;this.age =age;}public voidsetName(String name){this.name =name;

}publicString getName(){returnname;

}public void setAge(intage){this.age =age;

}public intgetAge(){returnage;

}//重写了 equals 方法

public booleanequals(Object o){//判断两个对象是否为同一个对象,如果是就直接返回 true

if (this ==o) {return true;

}//再判断另一个对象 o 是否是 null,如果是 null 就没有必要再比了,肯定不相等,直接返回

if (o == null) {return false;

}return false;

}

}

问题二:质数问题

packagecom.oumyye.质数;importjava.util.Random;public classSnippet {public static voidmain(String[] args){

Random rd= new Random(); //定义一个随机变量

int i = rd.nextInt(1000); //获取个随机数

System.out.println(isNum(i)); //输出结果

}public static String isNum(inti ){

String ret=i+"是质数"; //默认是质数

if(i==2)return ret; //如果是 2 返回默认结果

for (int j = 2; j < i/2; j++) { //制订循环次数

if(i%j==0){

ret=i+"不是质数"; //如果能够整除返回不是质数

break;

}

}return ret; //返回结果

}

}

问题三:求解5阶螺旋矩阵问题

1   2   3   4  5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

public classLXJZQJ {public static voidmain(String[] args) {int n = 5;//0:向右,1:向下,2:向左,3:向上

int direction = 0;//行,列

int row = 0, col = 0;int num = 0;int[] array = new int[n *n];while (array[row * n + col] == 0) {

num++;

array[row* n + col] =num;switch(direction) {case 0:

col++;break;case 1:

row++;break;case 2:

col--;break;case 3:

row--;break;

}if (row == n || col == n || row == -1 || col == -1

|| array[row * n + col] != 0) {

direction++;if (direction == 4)

direction= 0;switch(direction) {case 0:

row++;

col++;break;case 1:

row++;

col--;break;case 2:

row--;

col--;break;case 3:

row--;

col++;break;

}

}

}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {

System.out.printf("%-3s", array[i * n +j]);

}

System.out.println();

}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python怎么创业_python创业

从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O&#xff0c;OLAP&#xff0c;Web开发&#xff0c;高性能网络通信&#xff0c;测试&#xff0c;爬虫等。Django:PythonWeb应用开发框架Django应该是最出名的Python框架&#xff0c;GAE甚至Erlang都有框架受…

python开发需要什么基础_零基础学习Python需要用什么开发工具?

对于学习Python的小伙伴&#xff0c;小编首推的Pycharm。首先&#xff0c;PyCharm用于一般IDE具备的功能&#xff0c;比如&#xff0c; 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制另外&#xff0c;PyCharm还提供了一些很好的功能用于Djan…

php send helo/ehlo first错误,phpmailer发送邮件提示SMTP server error怎么回事?

以下是我的代码错误提示信息为&#xff1a;SMTP server error: Error: send HELO/EHLO first如果把SMTPAuth改为true&#xff0c;错误为SMTP Error: Could not authenticate. Mail errorSMTP Error: Could not authenticate.请教大神是什么原因&#xff1f;是不是还需要哪些设置…

python elasticsearch_python elasticsearch模块使用

加载模块from elasticsearch import Elasticsearch连接ESes Elasticsearch(["172.30.6.12"])查询res es.search(index"test-index", body{"query":{"match_all":{}}})# 查询请求主机是ai.baidu.com 所有信息res es.search(index&qu…

php ci model条件查询,php – CodeIgniter中的多条件WHERE子句

我想删除一些像核心PHP中的查询这样的数据WHERE user_id$id AND sender_id$send_id OR user_id$send_id AND sender_id$id所以我在CodeIgniter中尝试使用Active Record,如下所示&#xff1a;$this->db->where(user_id ,$id);$this->db->or_where(user_id ,$send_id…

python语言打印菱形_Python 实现打印单词的菱形字符图案

Python 实现打印单词的菱形字符图案我就废话不多说了&#xff0c;还是直接看代码吧&#xff01;a [1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1]b [ * 2 * (7 - i) Good * i for i in a]for line in b:print(line)程序运行结果如下&#xff1a;补充知识&#xff1a;python打印菱…

java快捷键查看目录,java取得快捷方式指向的路径

当前位置:我的异常网 行业应用 java取得快捷方式指向的路径java取得快捷方式指向的路径www.myexceptions.net 网友分享于&#xff1a;2013-08-17 浏览&#xff1a;5次java获得快捷方式指向的路径import java.io.ByteArrayOutputStream;import java.io.File;import java.io.F…

python 编程算法_python语言编程算法

编程题1 台阶问题/斐波那契一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。fib lambda n: n if n < 2 else fib(n - 1) fib(n - 2)第二种记忆方法def memo(func):cache {}def wrap(*args):if args not in cache:cac…

php邮件中文乱码,phpmailer 发送邮件中文乱码问题的解决方法总结

$mail new PHPMailer();复制代码2&#xff1a;设置邮件的编码&#xff1b;$mail->CharsetUTF-8;复制代码相信有不少朋友是设置成"GBK"或“GB2312”的&#xff0c;我开始也是&#xff0c;后来了解到Mail是国际化的&#xff0c;如果想在像Gmail等那样的国际化邮箱正…

python白森_氧气恋人小说-江白森修辞在线阅读-829阅读网

江白森002.再次见到江白森的时候是三天后&#xff0c;也就是军训的第二天。晚间的时候&#xff0c;以小组为单位举行篝火晚会。修辞坐在树枝堆前&#xff0c;看着堆积的树枝霎时间被点燃&#xff0c;火光一瞬间炸裂&#xff0c;越来越旺。树堆那边的人像是在火中沐浴一般&#…

php代码加文件后缀,php中一行代码获取文件后缀名

...quot; 在字符串中最后一次出现的位置&#xff1a;<?php echo strrpos("I love php, I love php too!","php");?>定义和用法strrpos() 函数查找字符串在另一字符串中最后一次出现的位置(区分php strrpos()函数用于查找字符串在另一字符串中最后一…

设计一个程序实现两个任意长的整数的求和运算_自然数集,整数集,有理数集等都有字母表示,为什么无理数集没有...

在网上翻到一个非常有意思的问题&#xff1a;这个问题乍看起来无厘头&#xff0c;但实际上是个非常深刻的问题&#xff0c;涉及到抽象代数(abstract algebra)的一些基本概念&#xff0c;因此我打算写篇文章来详细阐述一下。人类的数学从数数开始&#xff0c;最早诞生的概念是自…

php7 str split,PHP7.4新特性预览

虽然PHP 7.4还未发布&#xff0c;但是RFC已经确定了该版本的一些新性。这个版本的改动有点多&#xff0c;有很多实用性功能。发布日期可能在2019年12月左右&#xff0c;但尚待确认。让我们看看有那些地方的改动。短闭包 RFC属性类型定义 RFCNull Coalescing Assignment Operato…

python实现中撤销上一步的代码mac_一个“MacBook”新手的Python“笨办法”自学之旅 #第六章:常用的简易Python命令、符号、代码、格式化字符串...

第六章&#xff1a;常用的简易Python命令、符号、代码、字符串《“笨办法”学Python》这本书中&#xff0c;确实用了较多篇幅来介绍Python的一些常用简单的命令、符号、代码和字符串等&#xff0c;对于像我这样的自学新手&#xff0c;真的是非常棒&#xff0c;因为它们可以帮我…

php strpo函数,php strpos函数有什么用

php strpos函数有什么用&#xff1f;定义和用法strpos() f函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。注释&#xff1a;strpos() 函数是区分大小写的。注释&#xff1a;该函数是二进制安全的。相关函数&#xff1a;strrpos() - 查找字符串在另一字符串中最后一…

oracle 客户端_【数据库 常见术语1】 客户端,服务端

这个系列会介绍并回顾在学习和工作中常碰到的一些名词&#xff0c;以及它们的意思。客户端&#xff0c;服务端&#xff08;以Oracle数据库为例&#xff09;**************************************************************************************【我的理解】 打个比喻&…

matlab调用ansys需要安装mpi,Ansys 14中Fluent并行计算MPI全程详解

14版中的各mpi安装无需手动设置系统环境变量&#xff0c;此处以13版的intel mpi安装为例进行说明。NOTE: When the installation is complete, add %I_MPI_ROOT%em64tin or %I_MPI_ROOT%ia32in to your System PATH environment variable.If both HP-MPI and Intel-MPI are ins…

多个线程访问统一对象的不同方法_分析| 你未必真的了解线程安全,别骗自己,来看下怎么实现线程安全...

世界那么大&#xff0c;谢谢你来看我&#xff01;&#xff01;关注我你就是个网络、电脑、手机小达人什么是进程&#xff1f;电脑中时会有很多单独运行的程序&#xff0c;每个程序有一个独立的进程&#xff0c;而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器、电脑管…

php设置mysql查询编码,php连接mysql时怎么设置编码方式

php连接mysql时怎么设置编码方式php连接mysql数据库时&#xff0c;也就是在mysql_connect()语句之后添加“mysql_query("set names utf8");”语句来设置编码方式。注意&#xff1a;是utf8&#xff0c;不是utf-8&#xff1b;网页字符集也最好选用utf-8。在PHP连接数据…

pandas to_csv参数详解_【Python基础】Pandas数据可视化原来也这么厉害

一、可视化概述在Python中&#xff0c;常见的数据可视化库有3个&#xff1a;matplotlib&#xff1a;最常用的库&#xff0c;可以算作可视化的必备技能库&#xff0c;比较底层&#xff0c;api多,学起来不太容易。seaborn&#xff1a;是建构于matplotlib基础上&#xff0c;能满足…