java char判断相等_【Java面试考点4】java基础之运算符
4.运算符
4.1Java运算符有多少个?
Java运算符分为5类22种:
5类:算术运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符
22种:
算术运算符(7种):+,-,*,/,%,++,--
赋值运算符(5种):=,+=,-=,*=,/=,%=
比较运算符(6种):==,>,<,>=,<=,!=
逻辑运算符(3种):&&,||,!
三元运算符(1种):数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
4.2Java运算符的注意点
1.“+”:对于数值来说,那就是加法;对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。任何数据类型和字符串进行连接的时候,结果都会变成字符串;对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。
2.“=”: 只有变量才能使用赋值运算符,常量不能进行赋值; 复合赋值运算符其中隐含了一个强制类型转换。
相关面试题
1.请你讲讲&和&&的区别?
&运算符有两种用法:(1)按位与;(2)逻辑与。
&&运算符是短路与运算。
逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。
2.请你说明符号“==”比较的是什么?
“==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。“==”如果两边是基本类型,就是比较数值是否相等。
3. 请你解释Object若不重写hashCode()的话,hashCode()如何计算出来的?
Object 的 hashcode 方法是本地方法,也就是用 c 语言或 c++ 实现的,该方法直接返回对象的 内存地址。
4. 请你解释为什么重写equals还要重写hashcode?
HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于Object类,其hashcode码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。HashMap中的比较key是这样的,先求出key的hashcode(),比较其值是否相等,若相等再比较equals(),若相等则认为他们是相等的。若equals()不相等则认为他们不相等。如果只重写hashcode()不重写equals()方法,当比较equals()时只是看他们是否为同一对象(即进行内存地址的比较),所以必定要两个方法一起重写。HashMap用来判断key是否相等的方法,其实是调用了HashSet判断加入元素 是否相等。重载hashCode()是为了对同一个key,能得到相同的Hash Code,这样HashMap就可以定位到我们指定的key上。重载equals()是为了向HashMap表明当前对象和key上所保存的对象是相等的,这样我们才真正地获得了这个key所对应的这个键值对。
java char判断相等_【Java面试考点4】java基础之运算符相关推荐
- java byte 判断相等_转发收藏 | 史上最全Java面试题+面试网站推荐!(含答案)
今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次.对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦. 相关概念 面向对象的三个 ...
- JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)
海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...
- java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?
部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...
- java 多态判断非空_Java 面试知识点解析基础知识
文本公众号来源: 我没有三颗心脏作者: 我没有三颗心脏 (一)Java 基础知识点 1)面向对象的特性有哪些? 答:封装.继承和多态(应要多算一个那就是抽象) 封装是指将对象的实现细节隐藏起来,然后通 ...
- java char类型空值_展望Java的未来:空值类型
java char类型空值 尽管有前途的Java值类型不是迫在眉睫,但我偶尔还是喜欢在OpenJDK valhalla-dev邮件列表中打听一下,以了解事情的进展情况并了解即将发生的事情. 诚然,由于 ...
- java面试题成都_成都汇智动力-java面试——多线程面试题
原标题:成都汇智动力-java面试--多线程面试题 1.多线程有什么用?发挥多核CPU的优势 防止阻塞 便于建模 2.创建线程的方式继承Thread类 实现Runnable接口 至于哪个好,不用说肯定 ...
- java上传文件限速_【面试题目】Java文件下载(限速、进度条)
import javax.swing.*; import java.io.FileOutputStream; import java.io.IOException; import java.io.In ...
- java护照号码校验_学无止境之小白学java……第001天
学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...
- java 并发编程多线程_多线程(一)java并发编程基础知识
线程的应用 如何应用多线程 在 Java 中,有多种方式来实现多线程.继承 Thread 类.实现 Runnable 接口.使用 ExecutorService.Callable.Future 实现带 ...
最新文章
- 深度学习1:生成模型的输入数据集和可视化
- mysql索引红黑联盟_MySQL索引
- BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围...
- Oracle对表名大小写敏感吗,让Oracle 大小写敏感 表名 字段名 对像名
- html 正则表达式验证金额,js金额校验,js正则表达式,包含正负,小数点后两位...
- Oracle日期范围
- 2019互联网公司端午礼盒大PK!
- 《Java游戏编程原理与实践教程》读书笔记(第4章——Java游戏程序的基本框架)
- nutch2.3.1 mysql_nutch 安装部署 以nutch2.3.1 为例
- 三极管共射放大电路静态工作点怎么设计
- SAP跨公司销售经典场景
- 天猫为海澜之家打造“智慧门店”;东方网力联手电子科技大学,共建人工智能联合实验室...
- 怎么让maillog日志记录smtp是使用25端口还是465端口(SSL加密方式)
- CSS——浮动的清除
- 数模算法:应用Logistic规律构建种群竞争模型
- android sdk 环境签名,SDK接入必备常识——keystore签名文件详解
- poj 1064 java_poj 1064(二分答案)
- iPhone 将被迫换成 USB-C 接口?苹果,你可怎么办啊......
- 攻防演练-某地级市HW攻防测试演练红队渗透测试总结
- 在Word中插入函数图象
热门文章
- 给Source Insight做个外挂系列之二--将本地代码注入到Source Insight进程
- 如何替公司省下数千万勒索费用
- 分布式系统概念 | 分布式锁:数据库、Redis、Zookeeper解决方案
- 高级数据结构与算法 | B树、B+树、B*树
- 老司机给我们解读 Spring Boot 最流行的 16 条实践
- Spring循环依赖的三种方式,你都清楚吗?
- 面试官:为什么SpringBoot的 jar 可以直接运行?
- Java类加载器(一)——类加载器层次与模型
- Xilinx 拥抱“新基建” 发力大中华区核心市场
- Embedding在腾讯应用宝的推荐实践