-
封装、继承、多态
封装:利用抽象的数据类型将数据和基于数据的操作封装在一起,尽可能的隐藏和保护数据和过程,只暴露一些对外的接口保持和外界的交互,很好的减少了非法操作,可以方便的加入存取控制语句
继承: 如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造方法,则系统会默认先调用父类的无参构造 方法.在这种情况下写不写super()语句效果都是一样.如果子类的构造方法中通过super显示调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。 如果子类的构造方法中通过this显示调用自身的其他构造方法,在相应 构造方法中应用以上两条规则.特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止.
多态:多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。 -
类的加载过程
以user.java类为例,先编译为.class文件,然后将.class文件加载到jvm中,此时user u1 = new user();先在栈内存中为u1开辟空间,然后创建的实例化对象会在堆内存中开辟一个空间,栈内存中的u1指向了堆内存中的地址,完成对该操作 -
堆、栈、方法区(留作疑问)
java中的垃圾回收机制?
静态变量的存储和生命周期- 这里引申出了一个常见的问题,= =和equals的区别:= =所比较的是栈内存中存放的堆内存地址的值,对于基本数据类型,比较的就是变量的值而equals是object类中的一个方法,所以所有的类都默认有这个方法,在object类的该方法中,返回的也是= =的值,但是在对象为引用类型(非基本数据类型的变量)时,这个方法可以被重写,比如string和integer类型,它们比较的就是变量的值,在没有重写的时候,两者应该是等效的。
-
线程
线程的两个实现方法:继承thread类、实现runnable接口;
启动线程的方法 :“线程名”.start 线程任务所在的方法:“线程名”.run
求职日记(java面试题学习)
最新推荐文章于 2021-04-14 09:48:09 发布