java基础篇 之 super关键字的理解】的更多相关文章

​ 之前一直认为,super指向的是父类对象.到今天,仔细查询了资料,自己做了实验,确认这个结论是不对的.我们分一下几个点讨论下: super的作用: 第一种:用来访问父类被隐藏的成员变量 第二种:用来调用父类中被重载的方法 第三种:用来调用父类的构造函数 super真的指向父类对象吗? 代码直接分析: public class Super { public void test() { System.out.println("super test 执行了"); } } public c…
​ final,字面上是最终的意思,通常来说,我们用它来作为修饰符的时候,都是代表"这是无法改变的"的意思.不想改变可能出与两种理由:设计或效率.由于这两个原因相差甚远,所以我们在使用final关键字的时候很容易误用. ​ 主要从三个方面来讲 final修饰变量 final修饰方法 final修饰类 final修饰变量 修饰基本数据类型 当我们使用final修饰基本数据类型时,代表我们申明了一个编译时的常量,编译器会在编译时就将其代入到表达式中进行计算,减少了一些我们在运行时的负担 修…
java基础篇 java基础 目录 1.java是一种什么语言,jdk,jre,jvm三者的区别 2.java 1.5之后的三大版本 3.java跨平台及其原理 4.java 语言的特点 5.什么是字节码,字节码的好处 6.java 和 c++ 的区别 7.java的三大特性 8.java中的基本数据类型和引用数据类型及其区别 9.switch(expr),expr支持哪些数据类型 10.int 和 Integer 有什么区别,怎么理解自动拆箱,自动装箱 11.计算2^3效率最高的方法是 12.…
这是Java基础篇(JVM)的第二篇文章,紧接着上一篇字节码详解,这篇我们来详解Java的类加载机制,也就是如何把字节码代表的类信息加载进入内存中. 我们知道,不管是根据类新建对象,还是直接使用类变量/方法,都需要在类信息已经加载进入内存的前提下.在Java虚拟机规范中,类加载过程也就是类的生命周期包括7个部分:加载.验证.准备.解析.初始化.使用.卸载.不过我们先不写这几个阶段,先讲讲类加载器的知识,然后再来看具体的类加载过程. 1. 类加载器 关于类加载器,我主要关注两个方面,一是类加载器的…
Java基础篇: 题记:本系列文章,会尽量模拟面试现场对话情景, 用口语而非书面语 ,采用问答形式来展现.另外每一个问题都附上“延伸”,这部分内容是帮助小伙伴们更深的理解一些底层细节的补充,在面试中可能很少直接涉及,权当是提高自身水平的知识储备吧. 第一部分:java容器相关 1.问:List 和 Set 都有什么区别? 分析:这种问题面试官一般想考察的都是你对这两种数据结构的了解,已经使用时候的选择依据,所以可以从数据结构和一些使用案例入手分别做个介绍 答:List,列表,元素可重复.常用的实…
package com.cn.This; /** * this与super的区别: * 1.this相当于指向本类的对象的指针,调用本类的另一种类型的构造方法 * 2.super调用的是父类中形参相同的构造方法 * 3.两者都需要放在构造方法内的第一行 * 4.两者不能同时出现在一个构造函数中,因为this必然会调用其他的构造函数,进而会产生两个super * 5.两者都指对象,所以不能在含有static的环境中使用 * @author P0111220 * */ class Person{ p…
接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream).使用对象输出流输出序列化对象的步骤,有时也成序列化,而使用对象输入流读入对象的过程,有时也称为反序列化 一个对象产生之后实际上是在内存中为其开辟了一个存储空间,方便存储信息. 对象序列化就是把一个对象变成二进制的数据流的一个方法,通过对象序列化可以反驳的…
java基础篇 之 构造器内部的多态行为 ​ 我们来看下下面这段代码: public class Main { public static void main(String[] args) { new Son(5); } } class Person{ void draw(){ System.out.println("person draw"); } Person (){ System.out.println("before person draw"); draw(…
JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**javadoc:文档注释 *有功能,@ */ 标识符和关键字 关键字: 标识符命名规则: 所有标识符都应该以大小写字母,美元符($),下划线(_)开始: 首字母之后可以是大小写字母,美元符,下划线或数字的任何字符组合: 不能用关键字作为变量名和方法名: <阿里巴巴Java开发手册>编写程序时可以用来参…