008天
行百里者半九十,想要在一个行业里成为顶尖人才,一定满足一万小时定律,要想学好JAVA,需要持之以恒不断地努力
近期发现的迷惑问题,已解决,每天都要勤思考,善于询问,解决问题!!!!
Static关键字_内存分析静态变量和静态方法
Static修饰变量称之为什么?static修饰方法称之为什么?
静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。static修饰方法称之为静态方法.
被static修饰的变量和方法从属于谁?没被static修饰的变量和方法从属于谁?
从属于类,没有被static修饰的变量和方法属于对象.
在同一个类中,在非静态方法中,如何调用本类的静态方法和静态变量?
在同一个类中,在静态方法中,如何调用本类的静态方法和静态变量?
在同一个类中,在静态方法中,如何调用本类的非静态方法和非静态变量?
在不同类中,A类的方法如何调用B类的非静态方法或者非静态变量?
在不同类中,A类的方法如何调用B类的静态方法或者静态变量?
静态初始化块_继承数的追溯
静态初始化块的作用是什么?什么时候执行静态初始化块?
静态初始化块,用于类的初始化操作!在静态初始化块中不能直接访问非static成员,当开始加载时,与之同时开始加载.
Java的参数传值机制_值传递
写代码解释为什么说java中参数传递是值传递
基本数据类型传递和引用数据传递一样么?
不一样,基本数据类型传递是值传递,引用数据类型是内存地址传递.
Java包机制_package的使用_jdk提供的常见包的作用
Java中Package的作用是什么?
便于管理类文件
Jdk有哪些常见包,分别什么作用?
Import详解_静态导入详解
什么情况下需要导包?
在需要其他包的类时,不然就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。
怎么导入一个包下的所有类?java默认导入了什么包?
import java.util.*;//导入该包下所有的类。会降低编译速度,但不会降低运行速度。
默认导入java.lang包,这是java的核心包,可以直接调用
如果需要使用不同包下的同名类怎么办?
在使用时加上类的包名就可以了
什么是静态导入?
其作用是用于导入指定类的静态属性,这样我们可以直接使用静态属性。
面向对象三大特征_继承
用你的理解阐述一下什么是继承
子类继承父类的属性和方法,比如儿子继承父亲的财产,但是不能继承父亲私有的方法和属性,比如儿子不能继承父亲的经验.
继承一个类,使用什么关键字?一个类能继承多个类么?
extends,不能,java中一个类只能继承一个父类
如果A继承B ,B继承C,那么A能获得B和C的所有属性和方法么?
可以的,但是无法继承私有属性和方法
继承的好处是什么?
提高代码重用性,避免大量的重复代码出现
InstancOf关键字的作用是什么? instanceOf的返回值是什么?
比较左边的的对象是否是右面类或子类所创建对象的,返回值是Boolean类型,即true和flase.
子类对象 instanceOf 父类,返回值是什么?
返回ture
继承_方法的重写override_返回值类型问题
为什么需要重写?
重写是为了满足子类的需要
构成重写的要素是什么?
1.“==”: 方法名、形参列表相同。
2.“≤”:返回值类型和声明异常类型,子类小于等于父类。
3.“≥”: 访问权限,子类大于等于父类。
继承_object类的用法_重写toString方法
什么是object类?
object类是所有类的父类,所有类都默认继承object类
任何一个类都可以使用object类的所有方法和属性,这句话对么?
对的
打印一个对象,其实是在调用这个对象的什么方法?打印出来的是什么?
调用该对象的toString()方法,默认会返回“类名+@+16进制的hashcode”
继承_equals方法的重写_阅读object和String源码
== 操作符的作用是什么?
代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。
Object类的Equals方法的作用是什么?
Object 的 equals 方法默认就是比较两个对象的hashcode,是同一个对象的引用时返回 true 否则返回 false。但是,我们可以根据我们自己的要求重写equals方法。
String类中重写了equals方法了么?为什么?
string类,它覆盖了Object的equals()方法。因为Object的equals()的实现是比较引用地址。
而string是字符串变量,比较的话需要比较每一个字符,当然得覆盖Object的equals()来达到要求了。
继承_super 父类对象引用_继承树追溯问题
Super关键字的作用是什么?
super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。
实例化子类对象之前必先实例化其父类对象,这句话对么?为什么?
对的,因为构造方法第一句总是:super(…)来调用父类对应的构造方法。所以,流程就是:先向上追溯到Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。