Java基础总结(一)

来源:互联网 发布:lic授权软件破解 编辑:程序博客网 时间:2024/05/02 04:27

文中★部分,为面试常考题。

1、  ★数组和循环下标从0开始的原因

与数据的存储方式,偏移量有关。

第一个元素:首地址 + sizeof(数据类型) * 0 ;

第二个元素:首地址 + sizeof(数据类型) * 1 ;

第三个元素:首地址 + sizeof(数据类型) * 2 ;

从零开始,有便于计算机取首位。

2、★JAVA中是否有引用传递?

         JAVA中无论什么类型的数据都只有值传递。传参时,是把实参的值传递给形参。

3、★区分基本数据类型和引用数据类型在做值传递时的差异。

由于两种数据的保存形式的不同。

基本数据类型传递的是值。

引用数据类型传递的是引用的值。

所以在方法里如果同时改变两个个数据的话

基本数据类型是不会改变的(因为在内存中它指向的数据的地址没改变,所以不会发生改变)改变的只是形参。

引用数据类型如果改变的话,他改变的是引用指向的堆中的数据。所以方法结束后也会改变

4、构造方法的执行步骤。

         ①划分空间 ②在该空间划分属性 ③对属性进行初始化 ④执行我们在构造方法里面书写的代码。

5、什么是标准JAVA类。

         ① 必须要有公共无参构造。

         ② 必须为属性提供符合命名规范的get/set方法。

         ③ 应该实现serializable接口。

6、★请问final/finally/finalize的区别。

    Final:关键字。修饰变量成为常量,修饰方法不能被重写,修饰类不能继承

    Finally:关键字。异常捕获时使用

    Finalize:方法名。Object中的一个方法finalize();由gc调用

7、★抽象类和接口的区别

    ① 在语法上的不同:抽象类的声明部分需要用abstract关键字修饰,通常情况下,抽象类都会有抽象方法。接口的方法只能是公共抽象方法。两者都不能产生对象。

    ②设计目的的不同:抽象类,通常作为多个子类的父类,其中的方法是其与生俱来的行为。而接口,可以有多个不同的类来实现,是其中的方法附属添加的行为。

8、★throw 与 throws 的区别,以及说出几个常见的异常类名。

    Throw与 Throws的区别详见总结2。

    常见异常类名:

运行时异常RuntimeException:NullPointerException、ClassCastException

    编译时异常:IOException、SQLException、IllegalClassFormatException

9、★String str= new String(“hello”);

    该语句产生了几个对象?

    共产生了三个对象:

①     加载期放入字符串常量池的字符串对象 

②     运行时new出来放在堆区的字符串对象

③     类加载时创建的字符串模板对象

 

0 0
原创粉丝点击