Java 中的一些知识点
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 中的一些知识点的更多相关文章
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- 面试中关于Java中涉及到知识点(转)
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...
- Java中继承相关知识点
继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...
- Java中关键的知识点
JVM,运行是内存模型 Java 反射 Java 注解 函数式接口 lambda表达式/流式计算 动态代理
- Java中多态相关知识点
多态 1.多态概述 同一个对象在不同时刻表现出的不同形态 多态的前提和体现: 有继承/实现关系 有方法重写 有父类引用指向子类对象(Animal a = new Cat();) 2.多态中的成员访问特 ...
- Java中StringBuilder相关知识点
StringBuilder 1.StringBuilder概述 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免.我们可以通过StringB ...
- 【Java基础】Java中你必须知道的知识点
目录 Java中面向对象的基础知识 1. 什么是面向对象 2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...
- Java中容易遗漏的小知识点( 一 )(为了和小白一样马上要考试的兄弟准备的,希望小白和大家高过不挂)
笔者csdn博客同文地址:https://blog.csdn.net/weixin_45791445/article/details/106597515 我是小康小白,一个平平无奇的Java小白.热爱 ...
- 关于Java中的String类知识点小总结
Java中的String类知识点 前言 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 如何创建字符串 最简单的方式 String str = "he ...
- Java语言中的这些知识点有没有用过,工作中有没有入过这些坑?
在Java语言中,有一些相对生僻的知识,平时用的机会可能不是很多,但如果不了解不掌握这些知识点的话,也可能会掉入陷阱之中,今天我们就来初步梳理一下: 1. goto是java语言中的关键字. &quo ...
随机推荐
- 最全SpringBoot日志配置-按照日期和日志级别进行归档
指定日志文件路径 在 spring的配置文件中配置: logging: config: classpath:logback.xm 日志配置 <?xml version="1.0&quo ...
- 音视频学习--H264解析渲染
一.H264文件获取 下载一段MP4文件,通过FFMPEG转换成MP4 ffmpeg -i Gravity.mp4 -vcodec h264 out_2.264 二.通过解析H264成帧,然后刷新 这 ...
- 一文带你理解透MyBatis源码
本文分享自华为云社区<一文彻底吃透MyBatis源码!!>,作者:冰 河. 写在前面 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis.而且,很多大厂在 ...
- windows报错
如果说你dns没有权威的话1.先去long.com上面右键属性把"区域传送给所有服务器打勾"2.右键属性,在名称分析器中,输入要添加为辅助dns的服务器的ip显示解析成功就可以了
- 如何保留 Excel 表头和第一行数据并追加 CSV 数据
准备工作 在开始之前,确保你的 Python 环境中已经安装了 openpyxl 和 pandas 库.可以使用以下命令进行安装: pip install openpyxl pandas 第一步:编写 ...
- m3u8文件转换mp4 ffmpeg
m3u8文件转换mp4 ffmpeg 命令行执行下面语句: ffmpeg -i input.m3u8 -c copy output.mp4 ffmpeg.exe 和 input.m3u8 放在同一目录 ...
- requests高级操作
requests的Cookie处理 有时相关的需求会让我们去爬取基于某些用户的相关用户信息,例如爬取张三人人网账户中的个人身份信息.好友账号信息等. 那么这个时候,我们就需要对当前用户进行登录操作,登 ...
- == 和 equals 的区别是什么
== : 它的作用是判断两个对象的地址是不是相等.即,判断两个对象是不是同一个对象.(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址) equals() : 它的作用也是判断两个 ...
- Spring源码——ConfigurationClassPostProcessor类
引言 Spring容器中提供很多方便的注解供我们在工作中使用,比如@Configuration注解,里面可以在方法上定义@Bean注解,将调用方法返回的对象交由Bean容器进行管理,那么Spring框 ...
- 解读MySQL 8.0数据字典的初始化与启动
本文分享自华为云社区<MySQL全文索引源码剖析之Insert语句执行过程>,作者:GaussDB 数据库. 本文主要介绍MySQL 8.0数据字典的基本概念和数据字典的初始化与启动加载的 ...