java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-23 16:43:59 | 查看: 450| 回复: 0

1OOP(面向对象)语言的三大特征是?

   封装性,继承性,多态性

2:请描述方法定义的完整的语法结构

   权限修饰符 修饰符 返回类型 方法名(参数例外{

        方法体;}

   访问权限+访问修饰符+返回值+方法名+参数列表+例外列表+()方法内部代码

3:什么是重载?什么情况下出现?

    在一个类中出现相同的方法名但参数列表不同时,这种情况就是重载

    其本质是创建一个新的成员方法

    此方法在同一个类中出现

4:简述重载的规则

   1.方法名相同,参数列表不同

   2.返回类型可以不同

   3.重载父类的方法时访问权限只能放大,例外列表只能少

5:什么是构造和析构方法?功能是? 

   构造方法:每个类至少有一个构造方法,类构成实例化时调用的方法

     1.方法名和类名相同 

     2.无返回值类型

   格式:访问权限 类名 {}

     1.有构造时,则无默认

     2.无构造方法时,默认为空(无参数,方法体为空)

      jc垃圾回收

   析构方法:finalize

             类销毁时,自动调用方法

             当对象在内存中被删除时,自动调用该方法

             在此方法中可以写回收对象内部的动态空间的代码

   构造方法:类初始化时调用的方法。可写可不写,如果不写就会有一个默认  

       的构造方法          

析构方法:当对象被从内存中删除时调用的方法,在析构成员方法内,可以填写

     用来回收对象内部的动态空间的代码

6:简述thissuper的功能和用法

   this : 访问当前类的属性或方法,不可以在静态方法中使用,在调用其它构造方法时,

     必须放在该构造方法的第一行

     能调用除构造方法以外所有的属性,方法;

     通过This (.) 来调用方法和属性

   super :访问父类

         super 只能调用父类的方法和属性,

     在调用父类的构造方法时必须放在子类构造方法下面的第一行;

        通过 Super (.) 来调用父类的属性和方法

7:简述Java的访问修饰符类型?分别有什么功能?

   public 公开的,任何一个类都有可以访问 

   private 私有的,只能在本类中被访问 

   protected 同包同类,只可被它的子类访问

   default 只能被同一个包中类访问   

8:分别说明:在类上、在属性上、在方法上等能使用那些访问修饰符

   在类上:public  

   在方法上: 访问权限:public protected private default

              方法修饰符:static 

                          final

              返回类型 : void

  在属性上:public protected private default

            static 

            final

9:简述什么是包?包的功能

   包:  对所定义的多个JAVA类进行分组,将多个功能相关的类定义到一个包(文件)

   功能: 1.易于查找和使用适当的类

         2.包不止包含类和接口,还可以包含其它包,形成层次的包空间

         3.有助于避免命名冲突

10:请写出5个以上的JDK中的包,以及他们的基本功能

    java.awt :包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面

    java.lang  :  提供java编成语言的程序设计的基础类

    java.io   : 包含提供多种输出输入功能的类,

    java.net  : 包含执行与网络有关的类,如URLSCOKETSEVERSOCKET

    java.applet : 包含java小应用程序的类

java.util  : 包含一些实用性的类 

11:什么是包装类?Java中都有哪些包装类

     Boolean  Byte  Short  Integer  Long  Float  Double  Charactor

     在JDK中针对各种基本类型分别定义相应的引用类型 --------------称为封装类

12:分别表述类的三大特性及其他们的功能

   封装性  继承性 多态性

   封装:隐藏类的实现细节、迫使用户去使用一个接口去访问数据、使代码更好维护

继承:子类可以直接继承使用父类的方法,程序员只需要做的是定义额外特征或规定将适用的变化

多态性:同一种功能拥有许多不同的实现方式

13:如何实现继承?继承的规则?

   public class A extends B{

   }

  1.单继承性

  2.构造方法不能继承

  3super引用父类,调用父类的属性,方法

  4.当子类中出现与父类的方法名,返回类型,参数列表相同的方法时要覆盖此方法

14:什么是方法的覆盖?什么情况下出现?

    方法覆盖:

    子类可以修改从父类继承过来的行为,子类可以创建一个与父类方法有不同功能的方法

    在同类型中出现 相同的名称、返回类型 方法名和参数列表的方法时  

    在父子类时 

15:方法覆盖的规则?

    方法名要和父类中被覆盖的方法名相同,返回类型相同

    参数列表要和父类中被覆盖方法的参数列表相同

    访问权限要大于等于被覆盖方法的权限

    例外列表要小于等于被覆盖方法的例外列表

16:如何调用父类的构造方法?如何调用自己的构造方法?

    要调用父类的构造方法通过  在子类的构造方法中第一行写super(参数)能给父类传参;

    要调用自己的构造方法通过  this(参数)或者直接调;

17:如何确定在多态的调用中,究竟是调用的那个方法?   

   new的是哪一个类就是调用的哪个类的方法

18static修饰符的功能是?可以用在什么地方?怎么访问?

   static  修饰符功能:

1.共用一块内存区域,也就是一个变量或成员方法对所有类的实例都

是相同的

                2.静态成员方法和静态变量的优点在于他们能在没有创建类的任何一个  实例的情况下被引用

          3.可以用在方法或属性上

         访问方式:

               1.直接使用类名调

               2new 一个实例,用实例调 

19static的基本规则

   1.类中的静态方法不允许调用非静态的属性和方法,只可以调用静态的属性和方法

   2.可以用类名直接调用静态类中的属性和方法

   3.静态方法中不允许出现thissuper

   4.静态方法不能被非静态方法覆盖        

   5.构造方法不允许声明static  

   6.静态变量为类变量,可以直接调

   7.非静态变量为实例变量,通过实例调用

20final修饰符的功能是?可以用在什么地方?

    功能:标记所有通用的功能,不能随意更改

    可以 用在类、属性和方法上

21final的基本规则

   final类不能被继承

     final成员变量只允许赋值一次,且只能通过构造方法里赋值

     final局部变量即为常量,只能赋值一次

     final方法不允许被子类覆盖

     final一般用于标记那些通用性的功能不能随意修改

22:什么是抽象类?

     抽象类: 一个类中声明方法存在而不是实现,以及带有对已知行为的方法的实现,这样的类通常被称做抽象类

23:抽象类的规则

 类内部至少包含一个没有实现体的方法

 用abstract修饰

 不能够直接使用抽象类,必须通过子类继承并且实现

24:什么情况下使用抽象类

     当一个类的一个或多个方法是抽象类时;

     当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时;

     当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时

25equals方法和”==”的功能和区别 

    功能:判断对象是否相等

    区别:

    equals方法比较的是对象的值

    = =:比较的是对象值的内存地址,对基本数据类型来说==比较的也是值

26toString方法的功能和基本写法

   返回一个String类型

   public String toString(){

   }

30String的方法的功能和基本使用方法,请描述5个以上

     substring(参数1,参数2);  功能:取字符串中参数1到参数2的的所有字符;  "String".subString(0,1);

     replace(参数1,参数2);    功能:用参数1中的值替换字符串中所有参数2的值  "String".replace(ing,tt);

     equals();                 功能:判断两个字符串是否相等 

 "String".equals("tt");

   trim();                   功能:去掉字符串两边的空格  

  "String".trim();

    indexof();                功能:查找字符串中参数所在位置,并返回字符串第一个出该参数的下标  

"String".indexOf("ing");

   split();                功能:根据参数分割该字符串   "String".split("-");

31:为什么使用StringBuffer类?有什么功能和优点?

  --只创建一个对象

 –StringBuffer 对象的内容是可以被修改的

 –除了字符的长度之外,还有容量的概念

 –通过动态改变容量的大小,加速字符管理

32:举例说明如何使用StringBuffer

     StringBuffer sb = new StringBuffer();

     sb.append("aaa");

     sb.flush();

33:如何给Java代码设置系统属性?如何在程序中使用它们

     设置在一个扩展名为properties的文件,内容为keyvalue的映射例如“a=2;

     System.getProperties();

     System.setProperties();

34:简述properties文件的结构和基本用法

    结构:

      key=value

    用法:

     System.getProperties 方法返回系统的Properties 对象。

 System.getProperty(String propertyName)方法返回对应名字属性的值。

System.getProperty(String name, String value)重载方法当没有name指定的属性时,返回value 指定的缺省值。

 

35:什么是接口?接口的定义规则?

   接口就是定义多种方法,通过实现接口中所有方法的抽象类.

   public interface  Tt {

     public void outPut();

     public int tt();

   }

36:接口的作用?为什么使用接口?

    多重继承

    封装、隔离

    功能,实现的分离

多态

    便于后期维护

    接口是可插入性的保证。

37:什么是多重接口

    就是一个类实现多个接口

38:描述接口的基本思想?

封装 隔离

接口及相关机制的最基本作用在于:通过接口可以实现不相关类的相同行为,

而不需考虑这些类之间的层次关系。

根据接口可以了解对象的交互界面,而不需了解对象所属的类。

面向对象程序设计讲究“提高内聚,降低耦合”。

39:如何在代码中使用接口?

   public class MyCast implements Tt{

     public void outPut(){}

    public int tt(){

     return 0;}}

   

40:举例说明如何把接口当作类型使用

   public interface Animal(){

      public void tt();   }

   public class Dog implements Animal{

      public void tt(){}}

     Animal ani = new Dog();

41:如何选择接口和抽象类?为什么?

    1.优先选择接口

    2.优先使用对象组合,少用继承

    3.抽象类一般用在定义子类的行为而父类又有特定行为的子类情况中

4.在接口和抽象类的选择上,必须遵守这样一个原则:行为模型应该总是通过接口而不是抽象类定义。

42:什么是异常?

程序中导致程序中断的一些情况叫做异常,一般程序员可以处理

43:简述处理异常的两种方式?

抛出和catch语句处理

43:简述try块的功能和规则

try块内部一般写一些编程人员认为可能会出现异常的代码,使程序运行不会因为出现异常而中断

44:简述catch块的功能和规则

功能:可以截获所声明的异常,并在语句块内对其进行处理

规则:catch(Exeption e){

     System.out.println("this is an Exeption!");

    }

45:简述finally块的功能和规则

finally块一般写一些不论是否发生异常都必须执行一次的代码

例如关闭与数据库的连接等

46: 简述throwthrows的功能和使用方法

throw 指编程人员主动抛出一个异常 

throw new NullPointerExeption();

throws指程序遇到异常情况自动的被动抛出一个异常

public void test() throws Exeption{}

47:异常的分类?

错误(Error):    JVM 系统内部错误、资源耗尽等严重情况,程序员不可控制

例外(Exception):其它因编程错误或偶然的外在因素导致的一般性问题,程序

可以控制

48:什么是预定义异常

java程序中预先定义好的异常叫做预定义异常

49:简述自定义异常的规则

    写一个类继承Exception

  用户自定义异常通常属Exception范畴,依据惯例,应以Exception结尾,应该由人工创建并抛出。

50:什么是断言?

用来证明和测试程序的假设。

51:如何使用断言?举例说明

一种是assert<<布尔表达式>>;另一种是assert<<布尔表达式>><<细节描述>>

assert  a= =10 : "这里a等于10";

 

52:什么是集合?什么是元素?

可以包含其他对象的简单对象就叫集合

集合框架中所包含的对象就叫做元素

53:描述出Java集合框架中集合的接口关系

Collection----SetList

Set----HashSetSortedSet

List----ArrayListLinkedList

Map----HashMapSortedMapTreeMap

54:代码示例:Collection接口的使用,包括如何定义、初始化、赋值、取值、修改值除值

Collection col = new ArrayList();

String oldValue = "abcd";

String newValue = "1234";

//增加

col.add(oldValue);

Iterator it = col.iterator();

while(it.hasNext()){

//取值

String str = (String)it.next();

if(str.equals(oldValue)){

//删除

col.remove(oldValue);

//修改

col.add(newValue);

}

}


55:代码示例:List接口的使用,包括如何定义、初始化、赋值、取值、修改值、删值

List col = new ArrayList();

String oldValue = "abcd";

String newValue = "1234";

col.add(oldValue);

Iterator it = col.iterator();

while(it.hasNext()){

String str = (String)it.next();

if(str.equals(oldValue)){

col.remove(oldValue);

col.add(newValue);

}

}

56:代码示例:Set接口的使用,包括如何定义、初始化、赋值、取值、修改值、删值

Set col = new HashSet();

String oldValue = "abcd";

String newValue = "1234";

col.add(oldValue);

Iterator it = col.iterator();

while(it.hasNext()){

String str = (String)it.next();

if(str.equals(oldValue)){

col.remove(oldValue);

col.add(newValue);

}

}

57:代码示例:Map接口的使用,包括如何定义、初始化、赋值、取值、修改值、删

Map map = new HashMap();

String oldValue = "abcd";

String newValue = "1234";

//增加

col.put("1",oldValue);

Set set = map.keySet();

Iterator it = set.iterator();

while(it.hasNext()){

String key = (String)it.next(); 

//取值

String value = map.get(key);

}

//修改

map.put("1",newValue);

//删除

map.remove("1");

}

58:描述List接口、Set接口和Map接口的特点

List接口中的对象按一定顺序排列,允许重复

Set接口中的对象没有顺序,但是不允许重复

Map接口中的对象是keyvalue的映射关系,key不允许重复

59:如何给集合排序?

实现comparable接口



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018