Java面试常考到的东东

1、super与this的区别?

super是我们在子类中想使用被子类隐藏的父类的成员变量或方法时,可以使用的关键字。

this出现在类的实例方法中,代表使用该方法的当前对象。也可以出现在类的构造方法中,代表使用该构造方法所创建的对象。

this()代表当前类对象,super()代表父类对象。

表示在子类访问父类的成员和行为,必须受到类继承规则的约束。

在子类的构造函数中,如果第一行没有写super(),编译器会自动插入。但是如果父类没有不带参数的构造函数,或这个构造函数被私有化了,此时必须加入对父类的实例化构造。而this就没有这个要求,因为其本身就进行了实例化构造。

在方法中super和this的使用就差不多了,只不过super要考虑是否访问其父类的资源。

2、继承的时类的执行顺序问题:

请看源码:

A.父类

package test;

public class FatherClass{

public FatherClass(){

System.out.println("FatherClass Create");

}

}

B.子类

package test;

import test.FatherClass;

public class ChildClass extends FatherClass{

public ChildClass(){

System.out.println("ChildClass Create");

}

public static void main(String[] args){

FatherClass fc = new FatherClass();

ChildClass cc = new ChildClass();

}

}

请写出B中子类执行后的输出结果。

程序执行首先找的是main方法,而其第一句执行的结果是:FatherClass Create。

由于子类的构造方法中的第一行隐藏着super(),所以执行第二句时,首先还是调用父类的构造方法,所以又输出:FatherClass Create,最后才调用子类自己的构造方法,输出:ChildClass Create

所以答案为:

FatherClass Create

FatherClass Create

ChildClass Create

Java面试常考到的东东

时间: 2024-10-12 21:39:14

Java面试常考到的东东的相关文章

Java面试常考知识点

1.  什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译.Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性. 2.  JDK和JRE的区别是什么? Java运行时环境(JRE)是将要执行Java程序的Java虚拟机.它同时也包含了执行app

PHP面试常考内容之Memcache和Redis(1)

你好,是我琉忆.继上周(2019.2-11至2-15)发布的"PHP面试常考内容之面向对象"专题后,发布的第二个专题,感谢你的阅读.本周(2019.2-18至2-22)的文章内容点为以下几点,更新时间为每周一三五,可以关注本栏持续关注,感谢你的支持. 一.什么是Memcache?二.Memcache有什么特征?三.Memcache的内存管理机制是什么样的?四.Memcache和Memcached有什么区别?五.如何操作Memcache?六.如何使用Memcache做Session共享?

计算机网络面试常考总结(二)

目录 简述DNS域名系统及其工作原理. 简述HTTP协议及其工作原理. HTTP报文的格式? HTTP请求报文中的方法有哪些? http1.1和http2.0的区别? http的返回码以及代表的意思? 简述https.https与http的区别? IP数据报格式? TCP数据报格式? UDP数据报格式? 以太网MAC帧格式? 怎么判断两台主机是否连接好? 简述RIP及其工作原理. 简述OSPF及其工作原理. 简述BGP及其工作原理. 写在最前面:本文章所有内容是本人从网络上以及<计算机网络第七版

面试常考数据结构与算法

数据结构部分: 1.数组和链表的区别.(很简单,但是很常考,记得要回答全面) C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小.而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而造成内存空间的浪费.链表是一种常见的数据组织形式,他采用动态分配内存的形式实现.需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费. 从逻辑结构上来看

java面试常问的几个问题

1,作用域public,protected,private,以及不写时的区别 2,ArrayList和Vector的区别,HashMap和Hashtable的区别 3,char型变量能不能定义为一个中文?为什么? 4,多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么? 5,继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 6,内部类的实现方式? 7,垃圾回收机制,如何优化程序? 8,float型float f=3.4是否正确? Jsp方面 1,jsp有哪些内置对象?作用

java面试常问问题及部分答案(2018)

一:java基础1.简述string对象,StringBuffer.StringBuilder区分string是final的,内部用一个final类型的char数组存储数据,它的拼接效率比较低,实际上是通过建立一个StringBuffer,让后台调用append(),最后再将StringBuffer toSting(),每次操作Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.StringBuffer也是final,线程安全的,中采用一个c

Java面试常被问到这道题:如何保证缓存与数据库的双写一致性?

面试原题 如何保证缓存与数据库的双写一致性? 面试官心理分析 你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题? 面试题剖析 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求?"缓存+数据库" 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去. 串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下

Java面试常问题:如何设计一个高并发系统?你该如何优雅的回答

面试原题 如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了.为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先. 如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题.面试官也绝对不会这样来问你,否则他就是蠢. 假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万.那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部

HTTP协议详解(前端面试常考知识点)

分类:杂谈| 发布:佚名| 查看:70 | 发表时间:2014-2-17 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请