Java中比较容易混淆的知识点
1. equals() 和 == 运算符
- equals是方法, 而==是运算符(当然也可以说是广义上的方法, 或者最终都是调用方法).
- equals() 是从Object类中继承来的, 在Object中 equals是直接调用的 ==运算符.
- 在equals中, 怎么比较, 可以自己定义, 而 == 运算符是直接比较的变量中直接存放的值.
- 对于8种基本类型而言, 变量内存放的就是值, 所以使用 == 运算符比较的时候是比较它们的值(不同的基本类型也可以比较, 如 int 和 char).
- 对于对象而言, 变量存放的是对象的引用, 如: String str = new String("Roger"); str存放的是对象的地址. 所以, 不同的对象, 即使它们的值相同, 引用也不一定相同.
2. 抽象类
- 包含抽象方法的类, 所以要想理解抽象类 , 先理解抽象方法
- 抽象方法
- 没有具体实现, 必须用 abstract 修饰
- 必须为public, 因为必须让之类继承和实现. (如果为private, 则不能被子类继承.) 缺省为public
- 抽象类
- 不能定义对象(因为有残缺的方法, 就算定义出来也是残疾对象, 没用)
- 如果子类没有实现它的所有抽象方法, 子类也是抽象类.
3. 接口
- 接口泛指供别人调用的方法或者函数. 所以它可以看作是对行为的抽象.
- 可以包含变量和方法
- 变量: 被隐式指定为public static final的. 一般情况下不在接口中定义变量.
- 方法: 被隐式指定为public abstract 的.
- 接口中所有方法都必须是抽象方法(抽象类中可以有非抽象方法.).
- 不能含静态代码块及静态方法(抽象类可以有).
4. 接口和抽象类对比
- 语法上: 可以根据定义进行区别
- 设计上
- 抽象类是对一类事物的抽象, 即对类抽象. 而接口是对行为抽象.
- 接口是对行为的规范, 而抽象类即规范了行为, 又规范了属性.
Java中比较容易混淆的知识点的更多相关文章
- 【Java基础】Java中你必须知道的知识点
目录 Java中面向对象的基础知识 1. 什么是面向对象 2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...
- Java中容易遗漏的小知识点( 一 )(为了和小白一样马上要考试的兄弟准备的,希望小白和大家高过不挂)
笔者csdn博客同文地址:https://blog.csdn.net/weixin_45791445/article/details/106597515 我是小康小白,一个平平无奇的Java小白.热爱 ...
- Java中main()的args的知识点浅谈
我们先来了解下Java中main()方法的默认定义格式: public static void main(String[] args){ }1.main方法是程序执行的入口,除了args这个形参变量可 ...
- java中string内存的相关知识点
(一):区别java内存中堆和栈: 1.栈:数据可以共享,存放基本数据类型和对象的引用,其中对象存放在堆中,对象的引用存放在栈中: 当在一段代码块定义一个变量时,就在栈中 为这个变量分配内存空间,当该 ...
- JAVA中一些需要记录的知识点(进阶部分)···持续更新
1.JAVA中的相对路径 file = new file("")与file = new file("./")方式相同,该路径为整个project的根目录(实际上 ...
- java 中一些需要注意的知识点
java数组的length属性是容量,而不是数组真实元素的个数: 多线程中的interrupt()方法并不会终止处于"运行状态"的线程,它只是将线程的中断标记设为true. juc ...
- 第79节:Java中一些要点
第79节:Java中一些要点 前言 一些知识点忘了没,可以通过一个点引出什么内容呢?做出自己的思维导图,看看自己到了哪一步了呢 内容 如果有人问jre,jdk,jvm是什么,你怎么回答呢? jre的英 ...
- 【转】Java中的多线程学习大总结
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程 ...
- Java异常的10个关键知识点
前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...
随机推荐
- Hibernate学习7—Hibernate 映射继承
需求:学生有很多照片,分为生活照和工作照: 第一节:每个具体类对应一个表 Student.java: package com.cy.model; import java.util.Set; publi ...
- webView放弃capture()截图的替代方法
float scale = webView.getScale(); height = (int) (webView.getContentHeight() * scale + 0.5); bitmap ...
- Centos6-7安装Python3.5以及SSL的编译安装,识别https
Python3中无法导入ssl模块的解决办法 如果你发现在python3脚本运行过程中发现涉及到ssl模块都无法运行的情况下.那么需要进行如下步骤 第一步: yum install openssl o ...
- C++ 新特性-右值引用
作为最重要的一项语言特性,右值引用(rvalue references)被引入到 C++0x中.我们可以通过操作符“&&”来声明一个右值引用,原先在C++中使用“&”操作符声明 ...
- node中express的中间件之methodOverride
methodOverride中间件必须结合bodyParser中间件一起使用,为bodyParser中间件提供伪HTTP方法支持. index.html代码: <!DOCTYPE html> ...
- netcore中使用log4net日志
第一.控制台程序中使用log4net static void Main(string[] args) { ILoggerRepository repository = LoggerManager.C ...
- PHP处理session跨域
同一根域名下子域名之间的跨域 ini_set('session.name', 'sid'); //设置session_id的键名 ini_set('session.use_trans_sid', 0) ...
- 移动终端App测试点归纳
以下所有测试最后必须在真机上完整的执行. 1 安装.卸载测试 1.1 在真机上.第三方软件(xy苹果助手.91.安卓助手)的安装与卸载 1.2 安装在手机卡上 或 SD卡上 (不同的IOS和安卓版本) ...
- C# 如何将窗体写到Dll中
步骤: 1.解决方案资源管理器窗口->右击项目属性 2.属性窗口->应用程序->输出类型(U)->类库
- 「小程序JAVA实战」小程序视图之条件判断(15)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-15/ 小程序里面也是有条件判断的,我相信大家在开发java if和jstl c:if c:when ...