栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-21 Java基础面试题简化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-21 Java基础面试题简化

JVM JRE和JDK的关系

什么是跨平台性?原理是什么?

java编写的程序,一次编译,多个系统平台运行。

只要该系统可以安装的响应的java虚拟机,该系统就可以运行java。

Java语言特点

        简单易学(近似C++)

        面向对象(封装--继承--多态)

        平台无关性(Java虚拟机实现)

        支持网络编程(Java简化网络编程设计)

        多线程(同一时间并行执行多项任务)

        健壮性(Java将类型机制 异常处理 垃圾自动收集等)

        安全性

字节码

Java源代码经过虚拟机编译器编译后产生的文件(.class文件),只面向虚拟机,变相任何特定处理器。

数据类型

八大基本类型

        数值型:

        整数类型(byte,short,int,long)                

        浮点型(float,double)

        字符型:char

        布尔型:boolean

注释

        分类:

                单行注释://      多行注释:     文档注释:

访问修饰符

运算符         &和&&的区别

        &运算符符两种用法:按位与; 逻辑与

        &&运算符是短路与。

        二者都要求运算符左右两端都为true 整个表达式才是true。

        &&左边表达式的值是false,右边的表达式会被直接短路掉,不进行运算。

final有什么用?

用于修饰类,属性和方法

        被final修饰的类不可以被继承,方法不可以被重写,变量不可以被改变

        被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容可以改变。

关键字 this关键字用法

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

1.普通的直接引用,this相当于是指向当前对象本身。

2.形参与成员名字重名,用this来区分

public Person(String name,int age){
    this.name = name;
    this.age =age; 
}

3.引用本类的构造函数

class Person{
    private String name;
    private int age;

    public Person(){
}
    public Person(String name){
        this.name = name;
}
    public Person(String name,int age){
        this(name);
        this.age = age;
    }
}
super关键字的用法

1.普通的直接引用

2.子类中的成员变量或方法与父类中的成员变量或方法同名时,用super进行区分

3.引用分类构造函数

        super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)

        this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)

this与super的区别

    super:它引用当前对象的直接父类中的成员。(super.变量名 super.成员幻术据名(实参))      this:它代表当前对象名()用this来指明当前对象;如果函数的形参与林中的成员数据同名,这是需用this来指明成员变量名。

    super()在子类中调用父类的构造方法,this()在本类内调用本类的其它构造方法。

    super和this需放在构造方法内第一行。

    this和super不能同事出现在一个构造函数里面,同意构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

    this和super都指的是对象,均不可以在static环境中使用。包括static变量,static方法,static语句块。

    本质上,this是指向本对象的指针,然而super是一个Java关键字

static

        被static修饰的变量或者方法 不属于任何一个实例对象,而是被类的实例对象所共享。

     static应用场景:

        1、修饰成员变量

        2、修饰成员方法

        3、静态代码块

        4、修饰类【只能修饰内部类也就是静态内部类】

        5、静态导包

     static注意事项:

        1.静态只能访问静态  2.非静态即可以访问非静态的,也可以访问静态的。

面向对象

优点:易维护,易复用,易扩展,可以设计低耦合的系统,灵活,易于维护

缺点:性能比面向过程低

面向对象三大特性

封装 继承 多态

封装:隐藏对象的属性和实现细节,对外提供公共访问方式,提高复用性,安全性

继承:提高代码复用性,继承是多态的前提。

多态:提高程序扩展性。在Java中两种实现多态的方法:继承(多个子类同一方法进行重写)和接口(实现接口并覆盖接口中同一方法)

Java实现多.多态三个表要条件:继承,重写,.向上转型

抽象类能使用final修饰吗

不能,抽象类是让其他类继承的,如果定义为final该类就不能被继承,会彼此矛盾

变量与方法

成员变量:方法外部,类内部定义的变量

局部变量:  类的方法中的变量

储存位置:

成员变量:随着对象的创建而存在,随着对象消失而消失。储存在堆中。

局部变量:方法调用完,语句结束后,自动释放。储存在栈中。

作用域:

成员变量:针对整个类有效

局部变量:只在某个范围内有效(语句体内)

生命周期:

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:当方法调用完,或者语句结束后,就自动释放

初始值:

成员变量:有默认初始值

局部变量:没有默认初始值,使用前必须赋值

构造方法特性

名字与类名相同;

没有返回值,但不能用void声明构造函数;

生成类的对象时自动执行,无需调用。

返回值

        方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。

        返回值的作用:接收出结果,是的他可以进行其他操作!

内部类

        分为四种:成员内部类,局部内部类,匿名内部类,静态内部类

重写与重载 构造器是否可被重写

         构造器不能被继承,因此不能被重写,但可以被重载。 

重载和重写的区别

        重载:发生在同一类中,方法名相同参数列表不同(参数类型不同,个数不同,顺序不同),与方法返回值和访问修饰符无关

        重写:发生在父子类中,方法名,参数列表必须相同,返回值小于等于父类,跑出的异常小于等于父类,访问修饰符大于等于父类;

注意:父类方法访问修饰符为private则子类中就不是重写。

==和equals的区别

        ==:判断两个对象是不是同一个对象。(地址值是否相同)

        equals:它的作用也是判断两个对象是否相等。

说明:

        String中的equals方法是被重写过得,object中的equals方法是比较的对象内存地址,而String的equals方法比较的是对象的值

hashCode与equals(重要) 为什么重写equals时必须重写hashCode方法?

        hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写hashCode(),则该class的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)

IO流 Java中IO流分为几种?

按照流向分:可以分为输入流和输出流;

按照操作单元划分:可以划分为字节流和字符流;

按照流的角色划分:节点流和处理流。

 按操作对象分类结构图:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号