2018-06-05

2018-06-05  本文已影响7人  Arroganter
1、 在Java中,方法覆盖(重写)的规则:
  • 在子类中的覆盖方法与父类中被覆盖的方法应具有:
  • 相同的方法名
  • 相同的参数列表(参数数量、参数类型、参数顺序都要相同)
  • 相同的返回值类型
  • 子类覆盖方法的访问权限要不小于父类中被覆盖方法的访问权限

2、简述Java中数组的概念和特点

  • 数组是存储多个相同类型变量的对象。数组的所有元素保存在堆内存中。
  • 创建一个数组就是在堆中创建一个数组对象。
  • 数组创建后立即拥有默认值。
  • 索引从0开始。
  • 连续分配
  • 有固定的空间大小

3、 在Java中什么是接口,描述接口及类的继承关系

  • 1.接口:只包含常量和抽象方法,而没有变量和方法的实现
  • 2.接口可以实现多继承
  • 3.多个无关的类可以实现一个接口,一个类可以实现多个无关的接口。
  • 一个类可以在继承一个父类的同时,实现一个或多个接口
  • 一个类要实现一个接口,那么这个类就必须实现接口中所有抽象方法。否则这个类只能声明为抽象类

4、在Java中,简述垃圾回收机制原理

  • Java的垃圾回收机制是自动的,实际上是JVM内部运行的一个优先级比较低的后台线程。
  • 垃圾回收机制仅仅作用于堆内存,与栈内存无关。
  • 确定对象为垃圾需要回收的条件如下:
  • 对象的引用被赋值为null
  • 一次性使用的匿名对象
  • 超出生命周期

5、 在Java中,简述this关键字概念及使用this关键字的情况

this关键字:

  • 代表对象自身的引用,通常在类的方法定义中使用
  • 用this关键字的情况:
  • 方法中的变量与成员变量重名
  • 在一个构造器中,调用其它重载的构造器
  • 返回当前对象的引用

6、在Java中,讲述子类实例化的过程中,子类创建构造器要求有什么?

  • 在子类中创建构造器时,必须调用父类的构造器
  • 子类可以在自己的构造器中使用super关键字来调用父类的构造器,代码如下:
  • super (参数1,参数2,…);
  • 如果使用super关键字调用父类构造器,必须写在该子类构造器的第一行
  • 如调用的是父类中无参的构造器,则可以不写super( )
  • 如果子类中调用了父类无参的构造器,而父类中没有无参构造器则系统编译出错

7.在Java中,数据类型如何转换(上溯和下溯):

1、基本数据类型转换:

  • 1.1 自动转换规则
    boolean类型不可以转换为其他的数据类型
    整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵守以下原则:
    ​byte、short、char之间不会相互转换,他们三者在计算时首先会转换为int类型
  • 1.2 强制类型转换
    容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换,其格式如下:
    变量 = (目标类型) 值
    在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出

2、引用数据类型的转换:

  • 1.1 向上转型(Upcasting)
    子类转换为父类(具有继承或实现关系) — 自动转换
    向上转换损失了子类新扩展的属性和方法,仅可以使用从父类中继承的属性和方法
  • 1.2 向下转型(Downcasting)
    将父类对象显示的转换成子类类型 — 强制转换
    曾经向上转换过的对象,才能再向下转换。对象不允许不经过上溯造型而直接下溯造型

8.在Java中,static关键字可以修饰的元素有哪些?说明静态变量(类变量)的特点和访问形式,说明静态方法(类方法)的特点、访问形式、作用和使用的注意事项,什么是静态代码块,静态代码块中的代码什么时候执行,静态代码块作用

  • static可以修饰的元素:
    属性、方法、代码块
    1)静态变量特点:
  • 所有对象共享
  • 在类被载入时创建,只要类存在,static变量就存在
  • 两种方式访问:
  • 直接访问:类名.属性;
  • 实例化后访问:对象名.属性

2)静态方法特点:

  • 不需要实例化,可以直接访问
    
  • 两种方式访问:
  •  直接访问:类名.方法名()
    
  •  实例化后访问:对象名.方法名()
    
  • static方法的作用:
  •  简化方法的使用;
    
  •  便于访问静态属性;
    
  • 注意事项
  •  静态方法里只能直接访问静态成员,而不能直接访问类中的非静态成员
    
  •  静态方法中不能使用this、super关键字
    
  •  静态方法不能被非静态方法覆盖,静态方法不能修饰构造器
    

3)静态代码块: 一个类中由static关键字修饰的,不包含在任何方法体中的代码块

  • 当类被载入时,静态代码块被执行,且只被执行一次
  • 静态块经常用来进行静态属性的初始化

9.在Java中,final关键字修饰的元素有哪些,及final元素的特点。

final可以修饰的元素:

  • 1)类:不能被继承
  • 2)变量(属性和局部变量):不能被重新赋值
    在声明时赋值,或在构造器中赋值
    系统不会对final属性默认的赋初始值
  • 3)方法:不能在子类中被覆盖,即不能修改。
上一篇下一篇

猜你喜欢

热点阅读