java面试基础知识

来源:互联网 发布:网络建站公司 编辑:程序博客网 时间:2024/06/06 13:08

     java面试基础知识如下:

1.jrejdk

2.环境变量pathclasspath是这样用的?

   Classpath路径下配置的都是程序所需的包jar,zip,rar等;path路径下配置的是程序运行时的可执行程序bin

3.内存分为哪几个区?作用?

   静态存储区,堆区,栈区,堆区存放实例化的对象,栈区放对象的引用

4.引用.

5." =="和equals

   两个对象在内存中同属一段内存,也就是完全克隆的两个对象,这时用“==”,两个对象的一部分属性一样,用“equals,

6.重写和重载(

  重写:对方法进行重新实现,一般实现接口需对方法进行重写。

  重载:方法名一样,但其参数等不一样,调用时不需再对方法进行重新实现。

7.接口,抽象,多态,继承,派生,封装

  接口:interface  接口不能实例化,不能继承,其内部都是抽象abstract方法名,没有对方法进行具体的实现,也就是说只有方法名没有方法体。(只是提供了其功能,不对功能进行实现)。

  抽象:abstract对具体问题(对象)进行概括,抽出这一类对象的公共性质并加以描述的过程。抽象类不能实例化,可以被用来继承。内容:数据抽象---描述某类对象的属性或状态(对象相互区别的物理量);代码抽象---描述某类对象的共有的行为特征或具有的功能。

 多态性:同名不同的功能实现形式。即在基类中提供一种方法的实现,但可以在子类对该方法加以重写并给出自己的实现但要求保持功能的实现形式相同。

作用:利用对象的多态特性,可以在解决某一类问题时提出一般的解决方法但允许子类根据自己的问题的具体要求加以自己的特殊实现方式。

实现的两种方法:

v    采用接口:类实现接口的成员

v    采用继承:继承的子类可以覆盖其上层基类的成员

 

 

8.类及属性限制

9.,方法的权限..public .protect private default final..

public该类可以被本包中或其它包中类成员函数使用。1。可以在本类中通过对象或直接访问它eat()/people.eat()2。在同一包中也可以在子类中通过对象或直接访问它。3.也可以在另一包中通过对象访问它people.eat(). 4. 在另一包中也可以在子类中通过对象或直接访问它).

protected它可以被相同包或不同包中的这个类本身及它的子类的成员访问;但通过对象来访问时,只可以被相同包中的任何形式的类对象来访问,而不能被不同包中的任何形式类对象访问。

default缺省末指定的类:该类只能被它所在的包中所有类使用。

 

限制(Modifier

Applies to

Description

Public

class, interface, field variables, methods, constructors, inner class

可以被定义它们的包之外的类访问

Protected

field variables, methods, constructors, inner class

同一个包内可以访问,或包外的子类可以访问(类不能是protected的)

Private

field variables, methods, constructors, inner class

只可以由本类内访问(类不能是private的)

No modifier

(friendly)

class, interface, field variables, methods, constructors, inner class

同一个包内可以访问

 

10.上传型,下转型

Man ,Amarancian,Chinese.

Man man=new Chinese();

man.eat();

man.eat()调用的是子类的方法,也是用基类进行声明,调用子类的子类的方法,这样一个机制就是下转形,new Chinese();说明在内存中已创建此对象。然后通过父类调用,子类派生出的方法不能被调用。

 

11.this,super

  This指的是当前对象this.eat()/people.eat();

  Super是调用当前对象父类的方法。Super.eat()子类编译加载时加载父类的方法。

 这两个对象是对象在内存中创建时缺省就已存在。

12Static 方法类方法和普通方法实例方法

   它是类的变量(该类的各个对象共享某一相同的属性量的值,即与具体的对象无关,如中国人的肤色例);可以不必在创建对象时就可以访问它

   People.eat().

   一次编译,多处运行,在加载类时首先加载static方法,故静态方法不能调用非静态变量,只能调用静态变量;实例方法只能调用实例变量;在静态方法中不能用this,super对象

13.final,finally,finalize区别

   public static final  ;三个配合使用

   抛异常时  try{}catch{}finally{}