Java 中的一些知识点

与C++相关【了解的不是很多】

  • 在Java程序中:一个方法以 ; 结尾,并且修饰符列表中有 native 关键字

  • 代表:底层调用C++写的dll程序【dll动态连接库文件】

toString方法

  • 来源:

    toString方法源自 java.lang.Object 中的方法

  • 因为所有的类默认继承Object所有,几乎所有类都有toString方法

  • toString方法实现

        // 以下是官方原文
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    // 返回:类名字@哈希加密的内存地址
    }
  • toString方法的作用是什么?

    作用:将“java对象”转换“字符串形式”

  • toString方法的特性

        System.out.println(引用.toString());
    等价
    System.out.println(引用);
  • toString方法的价值:一般用于重写后用在开发时,数据的打印查看

    示例:

    public class ToStringTest {
    
        public static void main(String[] args) {
    
            MyDate date1 = new MyDate();
    MyDate date2 = new MyDate(2022, 1, 18); // toString()方法已经重新
    System.out.println(date1.toString());
    System.out.println(date1); System.out.println(date2.toString());
    System.out.println(date2);
    } } class MyDate { private int year;
    private int month;
    private int day; public MyDate() {
    this(1970,1,1);
    } public MyDate(int year, int month, int day) { this.year = year;
    this.month = month;
    this.day = day;
    } public String toString() {
    return this.year + "年" + this.month + "月" + this.day + "日";
    } }

super

  • super 是一个关键字

  • super和this对比学习

    this:

    • this能够出现在实例方法和构造方法中

    • this的语法是: this.this()

    • this不能使用在静态方法中

    • this. 大部分情况都可以省略

    • this. 什么时候不可以省略?

      public void setName(string name){
      this.name = name;
      }
    • this() 只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中的其他构造方法

    super:

    • super能够出现在实例方法和构造方法中

    • super的语法是: this.this()

    • super不能使用在静态方法中

    • super. 大部分情况都可以省略

    • super. 什么时候不可以省略?

      如果父类和子类中有重名属性,你需要访问父类则必须使用 super.

    • super() 只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中的其他构造方法;目的:构建子类对象的时候,先初始化父类特征

  • super()

    表示通过子类的构造方法调用父类的构造方法

  • 重要结论:

    当一个构造方第一行,没有this()或super()的话,会默认存在一个super()【无参】

    一个类如果手动提供一个构造方法,那么无参数构造系统将不再提供

  • 注意:this()与super()不共存

  • super(实参列表)初始化当前对象的父类型特性

总结

this: 本类

super: 当前类的父类

可以使用super访问或调用在当前类中被覆盖的方法和属性【注意静态问题,super是相对与this】

可以粗浅的理解:super相当于当前类的父类的this【并不准确,下面测试】

// 测试
public class Test{ public static void main(String[] args){ Test test_1 = new Test(); test_1.doSome();
} // 实例方法
public void doSome(){ // Test@2f89e2d1
System.out.println(this);
// println输出 "引用" 默认调用toString()方法 System.out.println(super); // 报错
}
}

通过这个测试得出的结论:

  • super 不是引用,不保存内存地址,也不指向任何对象
  • super 只是代表当前对象内部的那一块父类型的特征

Java 中的一些知识点的更多相关文章

  1. java中的小知识点

    1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...

  2. 面试中关于Java中涉及到知识点(转)

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...

  3. Java中继承相关知识点

    继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...

  4. Java中关键的知识点

    JVM,运行是内存模型 Java 反射 Java 注解 函数式接口 lambda表达式/流式计算 动态代理

  5. Java中多态相关知识点

    多态 1.多态概述 同一个对象在不同时刻表现出的不同形态 多态的前提和体现: 有继承/实现关系 有方法重写 有父类引用指向子类对象(Animal a = new Cat();) 2.多态中的成员访问特 ...

  6. Java中StringBuilder相关知识点

    StringBuilder 1.StringBuilder概述 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免.我们可以通过StringB ...

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

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

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

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

  9. 关于Java中的String类知识点小总结

    Java中的String类知识点 前言 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 如何创建字符串 最简单的方式 String str = "he ...

  10. Java语言中的这些知识点有没有用过,工作中有没有入过这些坑?

    在Java语言中,有一些相对生僻的知识,平时用的机会可能不是很多,但如果不了解不掌握这些知识点的话,也可能会掉入陷阱之中,今天我们就来初步梳理一下: 1. goto是java语言中的关键字. &quo ...

随机推荐

  1. Windows Server 2022 安装

    获取 Windows Server 2022 https://www.microsoft.com/zh-cn/evalcenter/evaluate-windows-server-2022 查看 Wi ...

  2. 5分钟明白LangChain 的输出解析器和链

    本文介绍 LangChain 的输出解析器OutputParser的使用,和基于LangChain的LCEL构建链. 1. 输出解析器OutputParser 1.1.为什么需要OutputParse ...

  3. Android OpenMAX - 开篇

    Android Media是一块非常庞大的内容,上到APP的书写,中到播放器的实现.封装格式的了解,下到OMX IL层的实现.Decoder的封装,每一块都需要我们下很大的功夫学习.除此之外,我们还要 ...

  4. QuickApp 快应用中 或 nodejs 中 API接品调用时 GBK转UTF8

    请求接口地址:https://doc.quickapp.cn/features/system/fetch.html?h=fetch 第一步,安装包: npm install iconv-lite as ...

  5. 云原生时代的"应用级"多云管理

    作者:张齐 当前云计算有多种形态公有云.私有云.边缘云.虚拟机等,如何高效管理多云是当前面临的问题,在云原生时代,又该如何利用云原生技术实现多云管理?本文将讲解通过 Rainbond实现"应 ...

  6. Swift全局变量的线程安全分析

    一.示例代码 import UIKit let obj = TestObj() class TestObj { init() { print("\(type(of: self)) init& ...

  7. kettle从入门到精通 第三十一课 mysql 数据连接连接池配置

    无论开发应用程序还是做ETL研发,都离不开连接池的应用,如下是kettle中mysql 连接池设置界面,今天重点讲解下连接池中的参数配置. defaultAutoCommit 当 defaultAut ...

  8. Linux扩展篇-shell编程(五)-流程控制(一)-if语句

    基本语法: (1)单分支 if [ condition ];then statement(s) fi 或 if [ condition ] then statement(s) fi (2)多分支 if ...

  9. EF 从设计器改为 DB First时遇到 Keyword not supported: 'data source'.

    EF 从设计器改为 DB First时遇到 Keyword not supported: 'data source'. 解决方法: 把providerName="System.Data.En ...

  10. Spring扩展——@Import注解

    引言 在Spring中有许多Enable开头的注解,比如以下常见注解 @EnableTransactionManagement @EanbleAsync @EnableCache @EnableAsp ...