• JAVA基础知识面试题


      一个JAVA文件可以定义多个类,但是只能有一个是public(也可以没有public类),并且该public的类的名称和JAVA文件名称相同。同时一个java文件可以有多个main方法,只有和java文件名相同的那个类的main方法才是程序的入口。在编译的时候,多个类会被分别编译成不同的.class文件。

      在JAVA语言中,静态代码块会在类的加载过程中被调用,因此静态代码块可以在main()方法之前执行。

      静态代码块是在类加载时自动执行的,非静态代码块在创建对象自动执行的代码,不创建对象不执行该类的非静态代码块。 顺序: 静态代码块--》非静态代码块--》类构造方法。

      Java初始化顺序结论:
    1. 继承体系的所有静态成员初始化(先父类,后子类,静态代码块和静态变量的顺序依赖于在代码中的位置)
    2. 父类初始化完成(普通成员的初始化-->构造函数的调用)
    3. 子类初始化(普通成员-->构造函数)

      Java中的变量分为:成员变量(随对象的创建和销毁而创建和销毁)、静态变量(随类的加载和卸载而创建和销毁)、局部变量(作用于在花括号内)。

       private和protected不能修饰外部类只能修饰内部类。接口的访问控制符只能是public和默认。接口内可以申明变量但是只能被public和默认修饰符(在编译的时候会编译为public static final)。没有声明任何方法的接口被称为标示接口,用来表明实现它的类属于一个特定的类型。Java中的标识接口包括Cloneable和Serializable。

      构造函数不能被继承,因此不能覆盖。子类可以通过super关键字来调用父类构造函数,当父类没有提供无参数的构造函数时,子类构造函数必须显示调用父类构造函数。如果父类构造函数提供了无参的构造函数,子类的构造函数就可以不显示的调用父类的构造函数。子类在实例化时会先执行父类的构造函数。普通方法可以和构造方法同名。构造方法伴随着new关键字一起使用,且不能被编写者调用只能有系统调用。

      处于阻塞状态的线程的共同特点是:放弃CPU,暂停运行,只能等到导致阻塞的原因消除才能恢复运行;或者被其他线程中断,该线程退出阻塞状态,并抛出InterruptedException。

      在JAVA中内存泄露主要有两种情况:1,在堆中申请的空间没有释放;二是对象已不再使用,但任然在内存中保留。在JAVA语言中引起内存泄露的原因主要包括:1.静态集合类。它们的生命周期和程序一致,那么容器中的对象在程序结束前不能释放。2.各种连接,例如数据库连接、网络连接。

  • 相关阅读:
    使用cmd命令行窗口操作SqlServer
    .net core compatibility windows & windows compatible Linux
    Microsoft Azure Tutorial: Build your first movie inventory web app with just a few lines of code
    Running ASP.NET Core applications on Windows Subsystem for Linux
    Simple Use IEnumerable<T>
    JSON in SQL Server 2016
    [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
    NotBacon
    Create an Azure SQL database in the Azure portal
    Cisco IP 电话 将它的voice mail 发送到手机
  • 原文地址:https://www.cnblogs.com/wxgblogs/p/5662971.html
Copyright © 2020-2023  润新知