java基础—面试题一

news2024/12/22 18:02:09

文章目录

      • 1.==和equals区别是什么?
      • 2.Java中的 <<、>>、>>> 是什么
      • 3.if-else-if-else与switch的区别
      • 4.while和do-while的区别
      • 5.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在String上
      • 6.&和&&、|和||区别
      • 7.break和continue区别
      • 8.访问权限修饰符public、private、protected, 以及不写(默认)时的区别
      • 9.如何让计算机最高效的算出2乘以8
      • 10. Math.round(11.5)等于多少? Math.round(- 11.5) 又等于多少

1.==和equals区别是什么?

  • ==是关系运算符,equals()是方法,返回的都是布尔值。

  • Object的==和equals()比较的都是地址,作用相同。

  • == 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

equals源码

//equals 本质上就是 ==,String、Integer重写了 Object 的 equals 方法,把引用比较改成了值比较。
public boolean equals(Object obj) {
    return (this == obj);
}

String x = “string”;

String y = “string”;

String z = new String(“string”);

System.out.println(x == y); // true因为x和y指向同一个地址

System.out.println(x == z); // false

System.out.println(x.equals(y)); // true

System.out.println(x.equals(z)); // true

2.Java中的 <<、>>、>>> 是什么

  • <<表示左移,不分正负,低位补0。<< 1 相当于乘以2。
  • >> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1,右移1位表示除以2
  • >>> 表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0

3.if-else-if-else与switch的区别

if-else-if-else

  • 适合分支较少
  • 判断条件不单一

switch

  • 适合较多分支
  • 适合判断条件类型单一
  • JDK1.7之前仅支持int和enum,JDK1.7之后多了支持String。但是企业开发中大部分用enum
  • 没有break语句,每个分支都会执行

4.while和do-while的区别

  • while先判断后执行,第一次判断为false,循环体一次都不执行。
  • do-while 先执行后判单,循环体最少执行一次。

5.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在String上

Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。

Java 5开始,Java中引入了枚举型,expr也可以是 enum类型。

ava 7开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

6.&和&&、|和||区别

  • &是逻辑与、例如a&b。a为false后,仍会运算b
  • &&是短路与。例如a&b。a为false后,后面就被短路了,不会运算b。

例如:某种判断有两个步骤,先去a表查指定数据,有数据(返回true)就进入下一步,没有数据就需要去b表查询是否有数据,有数据(返回true)就进行下一步。(a||b)

7.break和continue区别

  • 两者都是用来控制循环的语句。
  • break:用于结束一个循环,跳出循环执行后面的语句
  • continue:跳过本轮循环,进入下一个循环

8.访问权限修饰符public、private、protected, 以及不写(默认)时的区别

image-20230203015348159

9.如何让计算机最高效的算出2乘以8

2 <<3 CPU 直接支持位运算,效率最高

位运算符 <<,是将一个数左移 n 位,相当于乘以了 2 的 n 次方

一个数乘以 8 只要将其左移 3 位即可

10. Math.round(11.5)等于多少? Math.round(- 11.5) 又等于多少

Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5

然后进行取整。

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

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

相关文章

大数据技术架构(组件)16——Hive:内置UDTF函数

1.4.11、内置UDTF函数1.4.11.1、explodeselect explode(array(100,200,300));Array<int> myCol[100,200,300][400,500,600]得到的结果如下&#xff1a;(int) myNewCol1002003004005006001.4.11.2、posexplodeselect posexplode(array(A,B,C));1.4.11.3、parse_url_tuples…

2023云原生安全值得关注的3个方向

如果说过去几年教会了我们什么的话&#xff0c;那就是云原生和开源环境中安全的重要性。 Log4j 等漏洞产生的重大影响&#xff0c;在无数的行业中浮现&#xff0c;对于云原生环境中的其他安全问题也越来越受到重视。 组织不再质疑是否要迁移到云端&#xff0c;而是在寻找最快、…

centos下安装docker 并通过docker安装gitlab

一:安装docker1、若之前安过docker&#xff0c;可以先卸载yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce2、更新yum…

软件测试基础(四) 之 软件测试的覆盖率

一、什么是软件测试的覆盖率&#xff1f;软件测试覆盖率是软件测试技术有效性的一个度量手段&#xff0c;用来度量测试完整性。意思概括的说&#xff0c;软件测试的工作中会有非常非常多的item&#xff08;任务&#xff09;&#xff0c;执行过的任务和总任务数的一个比值&#…

尚医通 (二)项目搭建

目录一、工程结构介绍1、工程结构2、模块说明二、创建父工程1、创建sprigboot工程yygh_parent2、删除 src 目录3、配置 pom.xml4、在pom.xml中添加依赖的版本三、搭建model模块1、在父工程yygh_parent下面创建模块model2、添加项目需要的依赖3、复制项目实体类和VO类四、搭建se…

require和important区别

1.require是赋值过程&#xff0c;就是把一个值赋值给另一个&#xff0c;important是对这个值的引用 2 . require 是赋值过程并且是运行时才执行&#xff0c;也就是同步加载&#xff0c;import 是解构过程并且是编译时执行&#xff0c;理解为异步加载 3.require 的性能相对于 im…

Linux部署达梦数据库超详细教程

陈老老老板&#x1f9b8;&#x1f468;‍&#x1f4bb;本文专栏&#xff1a;国产数据库-达梦数据库&#xff08;主要讲一些达梦数据库相关的内容&#xff09;&#x1f468;‍&#x1f4bb;本文简述&#xff1a;本文讲一下达梦数据库的下载与安装教程&#xff08;Linux版&#x…

百度网盘秒传链接生成及提取方法

百度网盘秒传链接生成及提取方法 1.认识秒传链接 首先&#xff0c;我们认识一下秒传链接的格式&#xff1a; 秒传链接是由标准提取码文件名组成。例如下面的格式&#xff1a; fd00338387f50ee5919eb3df4cfce6e3#5048587008#/影视/电影/救火奶爸.mp4 百度网盘秒传链接的提取主…

FISSURE:一款功能强大的RF和逆向工程框架

关于FISSURE FISSURE是一款功能强大的RF和逆向工程框架&#xff0c;该工具适用于不同技能水平的安全研究人员&#xff0c;并提供了信号检测、信号分类、协议发现、渗透测试、IQ操作、漏洞分析、自动化和AI/机器学习等功能。该框架旨在促进软件模块、无线电、协议、信号数据、脚…

2023年怎么开通一个抖音小店?店铺开通后做什么?开店指南!

大家好&#xff0c;我是王路飞。 2023年都已经过去一个月了&#xff0c;你开通抖音小店了吗&#xff1f; 作为目前最受欢迎的创业和副业项目&#xff0c;开通抖音小店的商家数量与日俱增&#xff0c;都是为了蹭一下抖音流量的红利&#xff0c;毕竟直播带货如今正处在风口。 …

50条必背JAVA知识点(三)

31.面向对象中两个重要的概念&#xff1a;类&#xff1a;对一类事物的描述&#xff0c;是抽象的、概念上的定义对象&#xff1a;是实际存在的该类事物的每个个体&#xff0c;因而也称为实例(instance) 32.虚拟机栈&#xff0c;即为平时提到的栈结构。局部变量存储在栈结构中&a…

专利的申请和驳回

说明书和权利要求的区别 说明书里面会写这个新方案的具体内容&#xff0c;实施方案&#xff0c;解释说明等&#xff0c;权利要求书的话&#xff0c;就是对这些具体的内容进行概括 说明书应当补充说明该发明相比有技术的优势 就投屏举例: 到底怎么写 三篇 阿里 楼x投屏方法及装…

人工智能服务哪家强?IDC评估报告看过来

如果您还不知道如何选择人工智能AI服务供应商&#xff0c;那么IDC的这份评估报告也许可以派上用场。如何选择AI软件工具和平台随着科技的不断发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;技术在近年来取得了长足的进步。从语音…

简介JWT

简介JWT http协议无状态的&#xff0c;所以需要sessionId或token的鉴权机制&#xff0c;jwt的token认证机制不需要在服务端再保留用户的认证信息或会话信息。这就意味着基于jwt认证机制的应用程序不需要去考虑用户在哪一台服务器登录了&#xff0c;这就为应用的扩展提供了便利&…

Python函数和 lambda表达式

Python提供了许多内置函数&#xff0c;比如&#xff1a;print()&#xff0c;len()等。它还支持用户自定义函数。 一、Python函数 1、函数定义使用 &#xff08;1&#xff09;函数定义 Python 允许我们将常用的代码以固定的格式封装&#xff08;包装&#xff09;成一个独立的…

一刷代码随想录——字符串

1 力扣344.反转字符串题目描述&#xff1a;编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。class Solution { public:v…

数据库原理与应用-关系数据库

关系数据结构及形式化定义关系操作关系的完整性关系代数关系演算

WebSocket协议简介

一、WebSocket协议是什么 WebSocket是基于TCP的应用层协议&#xff0c;用于在C/S架构的应用中实现双向通信&#xff0c;它实现了浏览器与服务器全双工(full-duplex)通信&#xff0c;也就是允许服务器主动发送信息给客户端。 WebSocket 协议主要为了解决基于 HTTP/1.x 的 Web …

【正点原子Linux连载】第一章 VMware虚拟机安装 摘自【正点原子】ATK-DLRV1126系统开发手册

1&#xff09;实验平台&#xff1a;正点原子RV1126 Linux开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692176265749 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第一章 V…

flex布局常用属性记录

场景&#xff1a;前端常用的页面布局当使用 flex 布局时&#xff0c;首先想到的是两根轴线 — 主轴和交叉轴。主轴由flex-direction 定义&#xff0c;另一根轴垂直于它。我们使用 flexbox 的所有属性都跟这两根轴线有关&#xff1b;这里只做主轴的介绍&#xff1a;主轴主轴由 f…