Java基础面试题1

来源:互联网 发布:洛阳市博物馆 知乎 编辑:程序博客网 时间:2024/05/17 07:07

1.环境变量:

操作系统中应用程序获取一些运行参数的地方;

2.java、javac的作用:

java是将源文件编译成.class文件,java是执行该文件JVM虚拟机的任务

3JVM虚拟机的任务

加载编码,编译代码,运行代码(一次编译,处处运行)

4.变量的命名规则和注意事项

  • 由大小写字母,下划线,数字,$组成 
  • 数字不能开头
  • 关键字不能用
  • 严格区分大小写
5.基本数据类型(大小范围)

(byte[-128,127],short,int long,char,float,double,boolean)

6.基本数据类型的转换

a.大类型向小类型的转换(需要强制转换) b.小类型向大类型的转换(自动转型) c.intchar类型之间的转换(char转换成int调用charac的getNumbericValue())

7.三元运算符

 (变量=条件判断?表达式一:表达式二)

8.分支语句

 (if语句,if-else语句,Switch语句)

9.数组

声明方式: 数据类型[] 数组名=null;数据类型数组名[]=null.

初始化方式:动态初始化和静态初始化。

静态初始化时编译时就已经赋值,由JVM确定它的长度

动态初始化是在程序运行时才分配内存空间,需指定数组长度-进行赋值,初始值是0;


10.面向对象:

什么是面向对象

首先进行需求分析,看需求是由哪些功能,然后寻找包含这些已经实现功能函数的类,通过实例化对象来调用这些函数;

如果没找到,就自己创建一个类,在里面编写实现功能的函数,通过实例化对象实现功能)

PS:面向对象是基于面向过程的,二者不互相排斥.

11.什么是类,什么是对象

类表示客观世界某个类群的一些基本特征的抽象(属性和方法),而对象就是一个个具体的东西

12.什么是构造函数,构造函数的特性

又叫做构造器,由java虚拟机自动调用,在对象创建时就给属性(对象的成员变量)赋值

没有static修饰,函数名与类名一致,没有返回值类型

可以有多个构造函数,构造函数重载

对象初始化,可以通过构造函数进行属性初始化

13.继承:

什么是继承

在Java中,可以使用关键字:extends在两个类中建立一种关系,使其中一个类可以使用另外一个类中的非私有的成员;继承的目的就是减少代码的冗余,提供代码的重复利用率,就是为了方法的重写,为了多态。

继承的特性

在继承关系中,子类可以无条件拥有父类的非私有的成员;

什么是方法重写?

在子类中定义和父类中相同的函数,直接调用函数时,实际使用的是子类中的函数,这种情况叫做方法的重写(覆写)


14.多态:

什么是多态

  在java中,将子类型的对象赋值给父类型的引用变量,就是java中的多态;

  (将实现类类型的对象赋值给接口类型的引用变量) 

多态的表现形式--运行时多态和编译时多态

  多态中成员的使用:

  静态成员不参与多态,编译运行都是左边;

  非静态成员,编译期都看左边,运行期函数看右边;

15.抽象类

什么是抽象类

一种类专门用来当做父类,通过抽象类派生出新的类,再由它来创建新的类


抽象类的特征

  • 包含一个抽象方法的类必须是抽象类;
  • 抽象类和抽象方法必须都要用abstract来修饰;
  • 抽象方法只要声明,不需要实现;
  • 抽象类必须被子继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法

抽象类和普通类的区别

多定义个抽象方法&抽象类不能进行对象实例化操作


什么是抽象方法

在抽象类中存在,由abstract修饰,只需声明不需实现的方法(由继承子类重写所有抽象方法);

   

16.接口

什么是接口

可以理解成一种特殊的类,由公共的抽象方法和全局常量所组成。


接口的作用

可以用来描述继承体系额外的功能;

通过多态使用接口,可以提高程序的可拓展性;

可以实现java的多继承;

可以定义规则


接口的特性

只能有全局常量和抽象函数(方法)


接口和抽象类的区别

接口和抽象类的区别

相同点:都有抽象函数,都不能实例化;

不同点:抽象类只能单继承,接口可以实现多继承多实现,接口只能继承接口

        抽象类可以定义所有成员,接口只能有常量和抽象方法

        抽象类可以有构造函数,接口不能有构造函数


18.解释static关键字

静态函数:静态函数是不需要对象的,直接可以使用类名来调用

          静态函数不可调用非静态函数,非静态可以调用静态

          静态函数中不能有关键字this\super

          静态函数不能使用非静态成员变量


19.final关键字

修饰类—不能被继承

修饰函数—不能被重写

修饰变量—不可改变(引用变量指向不可改变)


20.内部类(访问权限的比较)?

普通内部类:

局部内部类:可以使用其所在方法中的final变量,不能在外部访问

静态内部类:可以定义静态成员

匿名内部类:不能添加构造方法,不包含static成员,没有任何修饰符


21.异常

  • 什么是异常:

在程序执行的过程中发生的错误叫做异常

  • 异常的分类

    运行时异常:RuntimeException和它的子类都是运行时异常   常见的运行异常:数组越界异常,空指针异常,类型转换异常

            

    检查异常:程序本身并没有问题,而是由于外部原因导致的异常。常见的检查异常:ClassNotFoundException , SqlException

throw和throws的区别:

  •   throws:抛出的是异常类型,声明在方法之后,可以同时抛出多个异常类型.使用throws不一定发生异常
  •   throw:抛出的是异常对象,声明在方法体中,只能抛出一个异常对象.一旦执行了throw肯定会发生异常







  














0 0
原创粉丝点击