zoukankan      html  css  js  c++  java
  • 学习面试题Day04

    1、简述Java派生类中的构造方法如何为父类传递参数。
         在Java中,使用super关键字加括号()的形式来为父类的构造方法提供参数,通过参数的数目和类型来决定调用哪个构造方法。如果调用
    的是父类的默认的无参数构造方法,则可以不必显式地使用super()。
    2、简述接口和抽象类的区别。
         抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是
    一种特殊形式的抽象类,在Java语言中,抽象类表示一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
    3、简述一下内部类的实质是什么。
         内部类根据定义的情况可以分为以下4种:
         (1)静态内部类:它相当于外部类的静态成员一样,使用static修饰的内部类,它隶属于外部类,使用起来相当于一个独立的外部类;
         (2)成员内部类:它相当于外部类普通的成员一样,隶属于外部类的具体对象,在定义它的时候,需要先创建外部类对象,再创建它的实
    例;
         (3)局部内部类:它定义在一个方法的方法体中,它往往仅作为方法短暂的使用,只能访问用final修饰的局部变量;
         (4)匿名内部类:它也定义在方法体中,但是它没有一个具体的名字,具有非常大的灵活性,工作本质与局部内部类类似。
    4、包应该如何被创建及使用。
         包是Java程序中关于命名空间的一种手段,它可以有效的解决类重名的问题。当需要把一个类定义在某个包下的时候,需要使用package关
    键字进行定义;当需要使用其他包下的类的时候,则需要使用import关键字进行导入。
    5、说明private,protected,public和default的区别。
         它们都是访问控制符,他们的区别如下:
         (1)public:可以被所有其他类访问;
         (2)private:只能被自身访问和修改;
         (3)protected:自身,子类及同一个包中类可以访问;
         (4)default(默认):同一个包中的类可以访问,声明时没有加修饰符,认为是friendly。
    6、int和Integer有什么区别?
         int是基础数据类型,字节长度为4,它的创建不会在堆内存中开辟空间,一般保存在栈内存里,可以用算术运算符进行加减乘除等操作。在
    参数传递的时候,直接传递它的值。
         Integer是int的包装类,而本质是一个类,它的创建会在堆内存中开辟一块新的空间。它的含义也表示一个整型的数字,但是,算术运算符
    不能操纵它。在参数传递的时候,传递的是它所代表的对象的一个引用。
    7、如何用八进制和十六进制来表示整型数据?
         Java中八进制字面量采用0开头,十六进制采用0x开头。
    8、如何用BigDecimal类进行精确运算?
         使用BigDecimal类来进行精确的算术计算,也就是使用它所提供的一系列的API,主要分为以下步骤。
         (1)用float或double变量构建BigDecimal对象。通过构造方法或valueOf()方法;
         (2)通过调用BigDecimal的加、减、乘、除等,相应的方法进行算术运算;
         (3)把BigDecimal对象转换成float、double、int等类型,通过类似xxxValue()等方法进行转换。
    9、boolean和它的包装类的区别在哪里?
         boolean是基础数据类型,Boolean是类;
         boolean一般存于栈空间中,Boolean对象存放在堆空间中;
         boolean有true和false两种值,Boolean除了true和false以外,还有null;
         Java5.0以前,不能把Boolean用于条件语句,需要转换为boolean以后在使用。
    10、char能否存储汉字?
         char是可以存储汉字的,每个中文字符都有对应的Unicode编码。
    11、字符串字面量是否自动生成一个String对象?
         答案是肯定的。字符串类具有一定的特殊性,JVM在执行双引号操作符的时候,会自动的创建一个String对象,并返回这个对象的引用。
    12、字符串对象池的作用是什么?
         对象池的存在是为了避免频繁的创建和销毁对象而影响系统性能。当JVM在运行用双引号引起来一个字符串的代码时,会到String的对象池
    中去检查是否有一个字符序列相同的对象。如果有,就取现成的对象,如果没有,则在对象池中创建一个对象,并返回。
    13、StringBuffer和StringBUilder存在的作用是什么?
         在Java程序中,如果有大量拼接字符串的需要的话,应该使用StringBuffer和StringBuilder类,它们可以避免不必要的String对象的产生
    ,以提高程序的性能。它们两者的作用相似,只不过StringBuilder线程是安全的。
    14、如何输出反转过后的字符串?
         实现字符串的反转一般来说有两种手段,第一是利用字符串存储字符数据的原理,取出它的char数组,进行重新排列并保存;第二则是生成
    StringBuffer对象,直接使用StringBuffer的reverse()方法。
    15、如何使用指定的字符集创造String对象?
         使用带有字符集编码的String的构造方法就可以用指定的字符集来重新创造字符串对象了,该方法的参数包括两个:一个是byte数组;另一
    个则是字符集编码的字符串形式,例如,UTF-8、GBK、ISO-8859-1等。

  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5622301.html
Copyright © 2011-2022 走看看