2017/6/14面试问题整理

已有 62 次阅读2017-6-15 17:25 |个人分类:javaSE面试题库|系统分类:学习纪录| javaSE面试题

1.什么是变量?
  运行过程中可以改变的量
2.变量的定义规则
   变量名首字母必须为字母(a-z或A-Z),或者下划线(_),或者美元符号($)开始
3.什么是javadoc?
   从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
4.什么是实例变量?类变量?局部变量?final变量?各个变量的规则?
   实例变量:类中定义的变量即类成员变量,不用static修饰。只有在实例化对象后才可以使用,变量归对象所有。每当实例化一个对象时,总会创建一个副本并初始化,如果没有进行显式的初始化,则会初始化一个默认值。各个实例化对象的副本之间互相独立,之间没有耦合。
   类变量:用static修饰的变量,随着类的加载而可以使用(类名.变量名),属于类所有。在程序中仅加载一次,分配独立的存储空间(静态区),所有实例化的对象共享类变量。
   局部变量:定义在方法中,使用之前必须进行初始化,且只有在该方法中访问。
   final变量:final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
5.instanceof、?:、&、&&的作用
   instanceof :用来在运行时指出对象是否是特定类的一个实例。通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
  " ?  : "  : 三目运算符
  &   : 位运算符
  && : 逻辑运算符
6.什么是强制类型转换?自动类型转换?向上造型?
   强制类型转换:目标类型存储范围小于原类型
   自动类型转换:目标类型存储范围大于原类型
   向上造型:即父类引用指向子类对象,可以自动转换。如:Father father = new Son();这里应用father指向内存中对象实质还是Son类型,不过对象的功能临时削弱为father。
7.完整的 if 条件的控制语句格式?switch格式?do....while格式?它们各自的效率是怎样的?
8.break 与 continue 的功能与用法
   break:用于完全结束一个循环,跳出循环体执行循环后面的语句。
   continue:跳过当次循环中剩下的语句,执行下一次循环
9.什么是构造方法?什么是析构方法?
   构造方法:创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。
   构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括没有void)。另外,构造方法一般都应用 public 类型来说明,这样才能在程序任意的位置创建类的实例也就是对象。
   有参构造和无参构造,都能创建实例,两个唯一不同:是否初始化变量。
   注意点:
1、每个类至少有一个构造方法。如果不写一个构造方法,Java 编程语言将提供一个默认的,该构造方法没有参数,而且方法体为空。如果一个类中已经定义了构造方法则系统不再提供默认的构造方法。
2、尽量不在类的构造器中创建、初始化大量的对象或执行某种复杂、耗时的运算逻辑。
  
   析构方法:当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。如果在程序终止前垃圾回收器始终没有执行垃圾回收操作,那么垃圾回收器将始终不会调用无用对象的finalize()方法。在Java的Object基类中提供了protected类型的finalize()方法,因此任何Java类都可以覆盖finalize()方法,通常,在析构方法中进行释放对象占用的相关资源的操作。
10.描述java 的访问修饰符的类型
     public:成员可以被同一个类或同一个包或不同包下的类都可以访问。
     private:成员可以被于同一个类访问,不能被同一个包或不同包下的类访问。
     protected:成员可以被同一个类或同一个包下的类可以访问,不能被不同包下的类访问。
     default:任何处于本包下的类、接口、异常等,都可以相互访问
11.类,属性,方法能够使用哪种修饰符
    类:public  private protected
    属性:public private protected default static final
    方法:public private protected default static final void
12.包的功能
    1.将类分组
    2.易于查找
    3.表面冲突
13.jdk常用的jar包有哪些
     1.java.lang:语言包

2.java.util:实用包

3.java.awt:抽象窗口工具包

4.javax.swing:轻量级的窗口工具包,这是目前使用最广泛的GUI程序设计包

5.java.io:输入输出包

6.java.net:网络函数包

7.java.applet:编制applet用到的包(目前编制applet程序时,更多的是使用swing中的JApplet类)。

14.描述OOP 语言的特点
    继承:继承是面向对象的三大特征之一,也是实现代码复用的重要手段。Java的继承具有单继承的特点,即只能继承自一个父类,每个子类只有一个直接父类,但是其父类又可以继承于另一个类,从而实现了子类可以间接继承多个父类,但其本质上划分仍然是一个父类和子类的关系。
    封装:封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。封装的特性使得类(对象)以外的部分不能随意存取类(对象)的内部数据(属性),保证了程序和数据不受外部干扰且不被误用。
    多态:多态性是指在继承关系中的父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法在父类及其各子类类中具有不同的含义。

    Java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态(Polymorphism)

15.什么是抽象方法与抽象类
     抽象方法:abstract修饰的方法,只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需 要实现。
     抽象类:abstract修饰的类,不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是 根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对 象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。
16.equals 与  ==  的区别
      equals:比较对象的值
      == :比较地址
17.String 中的方法
length() 字符串的长度
    equals()和equalsIgnoreCase() 比较两个字符串
    compareTo()和compareToIgnoreCase() 比较字符串
    trim() 去掉起始和结尾的空格
      valueOf() 转换为字符串

    indexOf()和lastIndexOf()  indexOf() 查找字符或者子串第一次出现的地方。
   lastIndexOf() 查找字符或者子串是后一次出现的地方。

    substring() 它有两种形式,第一种是:String substring(int startIndex)
           第二种是:String substring(int startIndex,int endIndex)

18.为什么要使用 stringBuffer




路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )