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基础之运算符相关推荐

  1. java byte 判断相等_转发收藏 | 史上最全Java面试题+面试网站推荐!(含答案)

    今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次.对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦. 相关概念 面向对象的三个 ...

  2. JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  3. java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?

    部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...

  4. java 多态判断非空_Java 面试知识点解析基础知识

    文本公众号来源: 我没有三颗心脏作者: 我没有三颗心脏 (一)Java 基础知识点 1)面向对象的特性有哪些? 答:封装.继承和多态(应要多算一个那就是抽象) 封装是指将对象的实现细节隐藏起来,然后通 ...

  5. java char类型空值_展望Java的未来:空值类型

    java char类型空值 尽管有前途的Java值类型不是迫在眉睫,但我偶尔还是喜欢在OpenJDK valhalla-dev邮件列表中打听一下,以了解事情的进展情况并了解即将发生的事情. 诚然,由于 ...

  6. java面试题成都_成都汇智动力-java面试——多线程面试题

    原标题:成都汇智动力-java面试--多线程面试题 1.多线程有什么用?发挥多核CPU的优势 防止阻塞 便于建模 2.创建线程的方式继承Thread类 实现Runnable接口 至于哪个好,不用说肯定 ...

  7. java上传文件限速_【面试题目】Java文件下载(限速、进度条)

    import javax.swing.*; import java.io.FileOutputStream; import java.io.IOException; import java.io.In ...

  8. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  9. java 并发编程多线程_多线程(一)java并发编程基础知识

    线程的应用 如何应用多线程 在 Java 中,有多种方式来实现多线程.继承 Thread 类.实现 Runnable 接口.使用 ExecutorService.Callable.Future 实现带 ...

最新文章

  1. 深度学习1:生成模型的输入数据集和可视化
  2. mysql索引红黑联盟_MySQL索引
  3. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围...
  4. Oracle对表名大小写敏感吗,让Oracle 大小写敏感 表名 字段名 对像名
  5. html 正则表达式验证金额,js金额校验,js正则表达式,包含正负,小数点后两位...
  6. Oracle日期范围
  7. 2019互联网公司端午礼盒大PK!
  8. 《Java游戏编程原理与实践教程》读书笔记(第4章——Java游戏程序的基本框架)
  9. nutch2.3.1 mysql_nutch 安装部署 以nutch2.3.1 为例
  10. 三极管共射放大电路静态工作点怎么设计
  11. SAP跨公司销售经典场景
  12. 天猫为海澜之家打造“智慧门店”;东方网力联手电子科技大学,共建人工智能联合实验室...
  13. 怎么让maillog日志记录smtp是使用25端口还是465端口(SSL加密方式)
  14. CSS——浮动的清除
  15. 数模算法:应用Logistic规律构建种群竞争模型
  16. android sdk 环境签名,SDK接入必备常识——keystore签名文件详解
  17. poj 1064 java_poj 1064(二分答案)
  18. iPhone 将被迫换成 USB-C 接口?苹果,你可怎么办啊......
  19. 攻防演练-某地级市HW攻防测试演练红队渗透测试总结
  20. 在Word中插入函数图象

热门文章

  1. 给Source Insight做个外挂系列之二--将本地代码注入到Source Insight进程
  2. 如何替公司省下数千万勒索费用
  3. 分布式系统概念 | 分布式锁:数据库、Redis、Zookeeper解决方案
  4. 高级数据结构与算法 | B树、B+树、B*树
  5. 老司机给我们解读 Spring Boot 最流行的 16 条实践
  6. Spring循环依赖的三种方式,你都清楚吗?
  7. 面试官:为什么SpringBoot的 jar 可以直接运行?
  8. Java类加载器(一)——类加载器层次与模型
  9. Xilinx 拥抱“新基建” 发力大中华区核心市场
  10. Embedding在腾讯应用宝的推荐实践