基础知识题二

 

1、数组如何定义?

答:String [] test=new String[5]; 或 String [] test=new String[]{“1”,”abc”};String []test={“2”,”3”}

 

2、数组、字符串、集合各自的长度如何获得?

答:数组是 .length 属性。 字符串是 length()方法。 集合 是 .size() 方法

 

3、数组有哪些特点?

答:数组变量存放的是数组第一个元素的空间地址引用,下标表示的是一个元素空间大小的偏移量。因为数组存放空间是连续的,并且空间地址是由系统自动分配,如果一旦能改变大小,那么其增加的空间不一定是空闲的,所以数组的大小一旦建立不可改变。

1.数组的长度是确定的,一旦数组被创建,其大小不可更改

2.只能存放相同类型的元素并且是按顺序存放。

3.数组地址存放空间是连续的。下标从0开始,最大下标是长度减一

4.数组无论存放那种类型的元素都是在堆中。

5.数组存放的元素都是变量。基本数据类型直接存放值,引用类型存放引用地址。

6.数组建好之后内部元素会初始化。基本数据类型是0,引用类型为null

 

 

4、继承用什么关键字?子类继承父类,构造方法第一句应该如何书写?

答:extends  super();

 

5、重写和重载的区别是什么?重写有什么要求?

答:1.重写发生在父类和子类之间 子类重写继承于父类的方法,重载是发生在本类之中

  2.重写的方法,返回类型不可改变,方法的参数不可改变(包括参数数量,类型,顺序),重载是方法名相同,参数类型不同(参数数量不同,参数类型不同,参数顺序不同)

 

重写的要求:

       1.重写的方法访问修饰符的范围只能大于或等于父类该方法的访问修饰符范围。重载是可以随意更改。

       2.重写的方法不能抛出比父类方法更多的异常,但可以抛出运行时异常

 

6、Java中一个类能同时继承多个类吗?所有类的父类是什么?

答:不能。Object

7、构造方法能继承吗?构造方法能重载吗?

答:不能,能

 

8、final、finally、finalize的区别是什么?

答:final 是一个可选修饰符

  1)声明一个常量

  2)声明一个最终类,该类是不能被继承。String 就是一个常见的典型的最终类。

  3)声明一个最终方法,该方法不能被重写,构造器不能被final修饰

  finally  是做异常处理时提供的finally块,finally结构使代码总会执行,无论是否产生异常。可以用来清理非内存资源。

finalize 是一个方法,是在垃圾收集器将对象从内存中清理出去之前做必要的清理工作,这个方法是有垃圾收集器在确定这个对象没有被引用时对这个对象调用。

 

9、访问修饰符有哪些?各自作用范围是什么?

答:访问修饰符有 public protected private , 他们的作用如下

本类   同包子类  同包非子类    不同包子类   不同包非子类

Public            yes       yes      yes              yes          yes

Protected         yes       yes      yes              yes          no

默认             yes       yes      yes              no           no

Private          yes       no         no              no           no

public 表示公有,都可访问。 protected是包内和子类可以访问 不写表示默认,只有包内可以访问、 private 表示私有,只有本类可以访问

 

10、什么是内部类?内部类class文件是怎样命名的?

答:在类里面定义一个类,相当于外部类的一个属性。内部类的产生必须依赖外部类,  内部类也是一个完整的独立的类可以有方法、属性、构造器、代码块。同样可以产生对象。也有独立的.class文件。

 

内部类.class文件名:静态或成员内部类前面要有外部类的类名加上$ 符号加上内部类类名。

如:OutClass1$InnerClass1.class

局部内部类:.class文件名 为外部类类名加上$符号加上表示定义顺序的数字(从1开始)再加上类名。如OutClass1$1InnerClass1.class

 

匿名内部类:

.class文件名为外部类类名加上$符号加上表示定义顺序的数字(从1开始)

如OutClass1$1.class

 

11、什么是多态?多态有什么特点?

答:

多态:允许使用父类变量指向子类对象, 允许使用接口变量指向实现类对象

多态有静态多态:使用重载实现,在编译期就已知方法执行的最终效果

动态多态:使用动态绑定和重写实现,编译期未知,运行期根据绑定对象的不同,有不同的效果。

 

12、面向对象的特征有哪些?

答:多态,

封装:指把数据和过程包围起来,对数据的访问只能通过已定义的方法,调用者无需知道具体的实现步骤,实现信息的隐藏

继承:通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新类。是一种联结类的模型,并且允许和鼓励类的重用。

抽象

 

 

13、什么是抽象类?什么是抽象方法?定义抽象类的关键字是什么?

答:用abstract 声明,无法创建对象的特殊类,一个拥有抽象方法的类也必须是抽象类。

抽象方法是用abstract 声明的方法,只有方法的声明部分,没有实现部分。

抽象方式是只有定义而没有实现。

 

 

14、接口如何定义?实现接口用什么关键字?一个类实现接口必须做什么?

答:接口是不同类中相同行为的抽象。Implements  必须实现该接口中定义的方法,如果一个类没有实现完该接口中的方法,那么这个类是抽象类。

 

 

15、接口中定义的方法修饰符是什么?接口中定义的变量修饰符是什么?

答: publicabstract                       publicstatic final

 

16、抽象类和接口的区别是什么?

答:1. 抽象类只能是单继承,而接口可以多实现,接口可以继承多接口

       2.抽象类可以implements用继承接口,但是接口只能extends 接口

       3.抽象类强调所属关系。接口强调特定功能的实现。

       4.抽象类中并不是所有方法都是抽象方法,子类继承抽象类可以选择实现也可以选择声明其是一个抽象方法而不实现(有抽象方法的类,必须是抽象类)。

       5.抽象类是接口与类的中介。

       6.抽象类的变量默认是friendly类型,其值可以在子类中重新定义,也可以重新赋值,但是接口的变量默认是public static final,实现类中无法重新定义,不能改变其值

 

 

抽象类

定义语法:

1. abstract class 

2.访问修饰符都可以

3.里面可以是任意属性 

4.有构造器

5.抽象的方法必须写 abstract  

6.可以有实现方法

使用语法:

1.可以被子类继承,单继承

设计思想:

1.把一脉相承,与生俱来的属性和方法设计在抽象类之中。

 

 

接口:

定义语法:

1. interface

2.访问修饰符只能是 public 和默认

3.里面只能是公共静态常量狗 

4.无构造

5.抽象方法可以不写 abstract .

6.1.8版本以前里面无实现方法,1.8可以添加default关键字 添加实现方法

使用语法:

1.  可以被子接口继承,多继承,可以被实现类实现,多实现

2.  接口中的方法不能被static

设计思想:

1.把外部可以附属添加的行为设计到接口中

 

17、异常的API结构是怎样的?Error和Exception有什么区别?

答:java把异常当作对象来处理,并且定义了一个基类java.lang.Throwable,其下有2个子类,一个为 Error 错误类,一个是Exception 异常类。 在Exception 类的子类中,分为,检查时一场,和运行时异常。 error是指程序无法处理的错误,这些异常发生时,JVM一般会选择线程终止。Exception 是程序本身可以处理的一场,这种异常分为检查时异常和运行时异常。

 

 

18、异常的执行顺序怎样?如果在try块中有return,finally会执行吗?

答:先执行try块,若无异常则执行 finally块(如果有的话),然后结束try/catch 块,执行异常捕获后的代码

如果执行try块中产生了一个异常,则会终止try块的运行,并进入catch块中,当执行完后依旧会执行finally块(如果有的话),并结束 try/catch块,执行异常捕获后的代码。

 

try块中有return也会执行finally,需要注意的是如果try块中无异常,最终返回的值依旧是try块中的值,而不是finally块。

 

 

19、finally是否在任何时候都会执行?

答:否。(System.exit(0)时就不会执行了)

 

20、throw 和throws的区别是什么?

答:throw关键字是用于方法体内部,用来抛出一个异常,如果抛出的异常是检查时异常则必须在方法声明部分写上可能抛出的异常类型,该方法的调用者也必须检查处理抛出的异常。

throws关键字是用于方法的声明部分,用来声明该方法会抛出一个异常,如果抛出的异常是检查时异常,那么方法的调用者必须处理或者重新抛出该异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值