zoukankan      html  css  js  c++  java
  • Java 基础

    Java基础

    Java如何运行的?

    开发的java源代码,通过javac编译成为平台无关的字节码文件(class),然后通过JVM的解释器将字节码解释成对应的机器码

    “一次编译,到处运行”的理解

    说的是java的跨平台特性,与JVM密不可分,不同环境和平台安装好JDK就有java运行环境,并不是说java是跨平台语言;到处运行的关键和前提是JVM,在可以运行JVM的地方都内含着一个JVM操作系统,从而使Java提供了各种不同平台上的虚拟机制,因此实现了到处运行的效果

    JDK、JRE、JVM的区别

    JDK java开发工具包
    JRE java运行时环境,包含JVM和Java类库
    JVM 虚拟机,运行java字节码的运行时环境

    什么是封装,继承,抽象?

    封装 隐藏对象的属性和实现细节,仅对外提供公共访问方式--安全性、复用性
    继承 is-a的关系,子类接受共有的属性和方法,并加入独有的属性和方法
    抽象 共有的方法名和类,具体实现交给子类

    继承注意事项

    1、子类只能继承父类所有非私有的成员(成员方法、成员变量)

    2、子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法

    equals和==的区别

    == 比较的是变量在内存中堆内存地址,判断两个对象的地址是否相同,即是否指向同一个对象
    equals 比较两个对象内容是否相等,Object类也有equals,但调用==,如果类不重写equals方法,则调用Object的equals

    HashCode和equals的一些约定

    a:equals 相等,hashCode 一定要相等

    b:重写了 hashCode 也要重写 equals

    c:hashCode 需要保持一致性,状态改变返回的哈希值仍然要一致

    怎么理解多态?好处?为什么要用多态?

    多态:父类的引用指向子类

    好处:子类的功能可以被父类的方法或引用变量所调用

    为什么用:复用性,高内聚低耦合,可扩展性

    super和this的区别

    this 代表本类的对象引用
    super 代表本类的父类的引用,代表父类存储空间的标识

    代码块执行顺序

    静态代码块(只执行一次)-> 构造代码块(每次执行构造方法前都执行)-> 构造方法

    普通类初始化顺序

    静态属性(变量、方法)-> 静态代码块-> 成员属性 -> 构造代码块 -> 构造函数

    继承的子类初始化顺序

    父类静态属性 -> 父类静态代码块 -> 子类静态属性 -> 子类静态代码块 -> 父类成员变量 -> 父类构造代码块 -> 父类构造方法 -> 子类成员变量 -> 子类构造代码块 -> 子类构造方法

    final、finally、finalize的区别

    final

    修饰类:类不可被继承

    修饰变量:基本数据类型的变量不可重新赋值,引用类型的变量不可指向其他对象

    修饰方法:方法不可被重写,即该方法无需进行扩展

    finally

    finally语句块总会被执行,通常是资源的回收(数据库关闭,IO关闭,网络关闭等)

    finalize

    保证对象在被垃圾收集之前完成特定的资源回收

    Java异常类相关

    Error 未检查异常,系统级别错误,无法恢复和预防,如系统崩溃,虚拟机错误,内存空间不足
    Exception 分RuntimeException(未检查)和IOException(需检查),程序级别错误,可恢复和预防,创建一个类继承Exception是需检查异常
    throw 用在方法体内,抛出异常对象名,可以抛出任意Throwable,需由方法体内的语句或throws抛出处理
    throws 用在方法名后,跟的是异常名,表示可能抛出异常,并不一定发生这些异常,由方法调用者处理异常

    接口和抽象类的区别

    接口

    1、不包含非常量成员

    2、都是静态抽象方法,可多继承

    3、只能public,没有构造方法,没有main函数不可运行

    4、主要作用:API定义和实现分离的目的

    抽象类

    1、可以有普通成员变量

    2、可有成员方法也可有抽象方法,单继承

    3、public、protected、private都可以,有构造方法,有main函数

    4、主要作用:代码重用

  • 相关阅读:
    Codeforces Round #271 (Div. 2) C. Captain Marmot
    Codeforces Round #271 (Div. 2) F. Ant colony
    hdu 5002 Tree
    hdu 5052 Yaoge’s maximum profit
    hdu5044 Tree
    Codeforces Round #267 (Div. 2) D. Fedor and Essay
    hdu 4991 Ordered Subsequence
    暑假
    hdu4632 Palindrome subsequence
    【Oracle】【32】TRUNC 截取
  • 原文地址:https://www.cnblogs.com/poloyy/p/12116913.html
Copyright © 2011-2022 走看看