当前位置: 首页 > news >正文

【Java】语法特性篇

语法特性篇

Java对象的比较

1. 对象比较的问题

  • Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较
  • 那为什么==可以比较?
    • 因为:对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而==默认情况下调 用的就是equal方法,
    • 但是该方法的比较规则是:没有比较引用变量引用对象的内容,而是直接比较引用变量的地 址,但有些情况下该种比较就不符合题意。

2. 对象比较的方法

  • 覆写基类的 equals
  • 基于 Comparble 接口类的比较
  • 基于比较器比较 

 覆写基类的equals

说明:

  • equals 是子类重写父类 Object中的方法;
  • 只能比较是否相等的;
  • 返回值是boolean类型,即true or false

基于Comparble接口类的比较

说明:

  • 本身类需要使用implements 实现 Comparable<E> 接口;
  • 重新接口中compareTo方法;
  • 返回值是 int 类型;
  • 在类的内部实现,侵入性强,耦合度高;

基于比较器比较 

说明:

  • 需要重新定义一个比较类,该比较类需要使用implements 实现Comparator接口;
  • 重新方法中compare方法;
  • 返回值是int类型
  • 在类的外部实现,侵入性小,耦合度低;

Java中的字符串常量池

intern 方法
intern 是一个 native 方法 (Native 方法指:底层使用 C++ 实现的,看不到其实现的源代码 ) 该方法的作用是手 动将创建的 String对象添加到常量池中

Java 反射

1. 反射的理解

Java的反射机制是在运行状态的时候,对于任意一个类,获取其中的所有属性和方法,并且任意使用与调用,还可以修改部分类型信息。

2. 用途

  • 1. 获取只对系统开放的方法;
  • 2. 开发各种通用框架;
  • 3. 反射程序就能判断出该对象和类属于哪些类。

3. 反射相关的类

Java的枚举

枚举不能被反射

Java的lambda表达式

  • lambda方法体中,不能修改外部变量的值,但是可以修改引用指向中的值,也就是说,不能修改"栈上的值,可以修改堆上的值";
  • Java 的 lambda要搭配函数式接口使用;
  • lambda 可以使用集合遍历forEach中,比较接口等等

http://www.lryc.cn/news/185288.html

相关文章:

  • Vim教程
  • selenium查找网页如何处理网站资源一直加载非常卡或者失败的情况
  • 并发工具类库使用的常见问题
  • GD32F10X ----RTC
  • 使用UiPath和AA构建的解决方案 1. 机器人过程自动化入门
  • rust字面量
  • Unix Network Programming Episode 79
  • Cesium展示——wkt 数据绘制
  • 打造完美家庭空间,让生活更加舒适
  • 解决loadDep:omelette: sill install loadAllDepsIntoIdealTree
  • 【深蓝学院】手写VIO第2章--IMU传感器--作业
  • Android多线程学习:线程
  • canvas 入门
  • 建议收藏!混迹职场多年总结出的8大技巧!
  • OpenCV4(C++)—— 视频和摄像头的加载、显示与保存
  • excel功能区(ribbonx)编程笔记6-box的使用
  • oralce配置访问白名单的方法
  • ToBeWritten之让响应团队参与并做好沟通
  • ffmpeg ts 关于av_seek_frame
  • 【C++】set map 的底层封装
  • JavaWeb整体介绍
  • 一些常见分布-正态分布、对数正态分布、伽马分布、卡方分布、t分布、F分布等
  • 科技云报道:押注向量数据库,为时过早?
  • 铭控传感亮相2023国际物联网展,聚焦“多场景物联感知方案”应用
  • 前端demo: 实现对图片进行上传前的压缩功能
  • 计算机网络(文章链接汇总)
  • 黑科技-Android
  • 450. 删除二叉搜索树中的节点
  • python安全工具开发基础
  • 26 docker前后端部署