> 文档中心 > java基础面试题一--金三银四

java基础面试题一--金三银四

java基础面试题一--金三银四

  • 金三银四让人坐立不住
    • 作用域public,protected,private,以及不写时的区别
    • super()与this()的区别
    • 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制
    • Final类有什么特点
    • Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
    • 抽象类和接口的区别
    • 排序都有哪几种方法
    • 什么是类的返射机制
    • 类的返射机制中的包及核心类
    • 得到Class的三个过程是什么

金三银四让人坐立不住

今年的金三银四和往年不一样,往年的三四月份很多朋友都会讨论准备去哪家公司,待遇怎么怎么样,多少都能找到跳槽的理由,而今年讨论的更多的是公司业务怎么样,会受疫情吗,会受环境影响吗,公司大概能撑多久?都不敢轻易换工作了,今年的疫情确实不管是国内环境还是外部环境都多少让人担心,很多公司业务时间进度被打乱了,所以手上活还是要慢慢干,基础的试题也要慢慢的巩固,希望环境慢慢变好。

作用域public,protected,private,以及不写时的区别

Public:不同包、同一包、类内都可用
Private:类内
Protected: 不同包的子类、同一包、类内都可用
不写时:同一包内、类内

super()与this()的区别

This():当前类的对象,super父类对象。
Super():在子类访问父类的成员和行为,必须受类继承规则的约束
而this他代表当前对象,当然所有的资源都可以访问.
在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.

一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制

可以。如果这个类的修饰符是public,其类名与文件名必须相同。

Final类有什么特点

属性常量
方法不可以overridding
类不可以继承

Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

方法的重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。
重载Overloading 一个类多个方法,名称相同,参数个数类型不同。
两者都是Java多态性的不同表现。
Overloaded的方法是可以改变返回值的类型。

抽象类和接口的区别

(1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)
当功能需要累积时用抽象类,不需要累积时用接口。

排序都有哪几种方法

排序的方法有:
插入排序(直接插入排序、希尔排序),
交换排序(冒泡排序、快速排序),
选择排序(直接选择排序、堆排序),
归并排序,
分配排序(箱排序、基数排序)
快速排序的伪代码。

什么是类的返射机制

通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。

类的返射机制中的包及核心类

java.lang.Class
java.lang.refrection.Method
java.lang.refrection.Field
java.lang.refrection.Constructor
java.lang.refrection.Modifier
java.lang.refrection.Interface

得到Class的三个过程是什么

对象.getClass()类.class或Integer.type(int) Integer.class(java.lang.Integer)
Class.forName();