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中比较容易混淆的知识点的更多相关文章

  1. 【Java基础】Java中你必须知道的知识点

    目录 Java中面向对象的基础知识 1. 什么是面向对象  2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...

  2. Java中容易遗漏的小知识点( 一 )(为了和小白一样马上要考试的兄弟准备的,希望小白和大家高过不挂)

    笔者csdn博客同文地址:https://blog.csdn.net/weixin_45791445/article/details/106597515 我是小康小白,一个平平无奇的Java小白.热爱 ...

  3. Java中main()的args的知识点浅谈

    我们先来了解下Java中main()方法的默认定义格式: public static void main(String[] args){ }1.main方法是程序执行的入口,除了args这个形参变量可 ...

  4. java中string内存的相关知识点

    (一):区别java内存中堆和栈: 1.栈:数据可以共享,存放基本数据类型和对象的引用,其中对象存放在堆中,对象的引用存放在栈中: 当在一段代码块定义一个变量时,就在栈中 为这个变量分配内存空间,当该 ...

  5. JAVA中一些需要记录的知识点(进阶部分)···持续更新

    1.JAVA中的相对路径 file = new file("")与file = new file("./")方式相同,该路径为整个project的根目录(实际上 ...

  6. java 中一些需要注意的知识点

    java数组的length属性是容量,而不是数组真实元素的个数: 多线程中的interrupt()方法并不会终止处于"运行状态"的线程,它只是将线程的中断标记设为true. juc ...

  7. 第79节:Java中一些要点

    第79节:Java中一些要点 前言 一些知识点忘了没,可以通过一个点引出什么内容呢?做出自己的思维导图,看看自己到了哪一步了呢 内容 如果有人问jre,jdk,jvm是什么,你怎么回答呢? jre的英 ...

  8. 【转】Java中的多线程学习大总结

    多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程 ...

  9. Java异常的10个关键知识点

    前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...

随机推荐

  1. java------------break;

    总结: package com.mmm; public class Pnal { public static void main(String[] args) { int i = 0; while ( ...

  2. Java 方法签名

    方法签名格式: 方法名   参数列表 例如: public class A{ protected int method (int a, int b) { return 0; } } class B e ...

  3. python中break continue exit() pass区别

    1.break break是终止本次循环,比如你很多个while循环,你在其中一个while循环里写了一个break,满足条件,只会终止这个while里面的循环,程序会跳到上一层while循环继续往下 ...

  4. Nmon、nmon analyse安装及使用

    性能监控算是性能测试中的一部分,测试人员需要去分析各类系统指标,CPU.网络.内存.磁盘I/O等等.嗯.通常linux系统下有诸如top.netstat.iostat等命令进行查看:而有时需要看某数据 ...

  5. 009:JSON

    一. MySQL JSON类型 1. JSON介绍 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级 ...

  6. each函数遍历select标签下的所有option选项

    如下: <select id="asd" name="sweet1"> <option value=1>--四川--</optio ...

  7. Svg 和 canvas的区别

    Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个 ...

  8. Python Issue: ValueError unknown locale: UTF-8 on OS X (Spyder)

    In your bash_profile you lack of something. add export LANG="en_US.UTF-8" export LC_COLLAT ...

  9. SharePreferences基本用法

    Android提供的轻量级数据储存方法,一般存少量数据,比如配置什么的.方式是通过键值对存取,比较方便. 下面通过一个 记住密码 的简单例子来说明 public class MainActivity ...

  10. 转载:详解在visual studio中使用git版本系统(图文)

    很多人已经在使用git(或正在转移到git上),在github.com上,也看到不少国内同学的开源项目,非常不错.但相关教程似乎不多,所以趁着我自己的开源项目源码托管(https://github.c ...