首页 > 大数据 > Hadoop > 好程序员大数据培训分享大数据面试宝典三
好程序员大数据培训分享大数据面试宝典三 1 、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 ? 【基础】
答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
2 、 String 和 StringBuffer 的区别 ? 【基础】
答:JAVA 平台提供了两个类: String 和 StringBuffer ,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String 类提供了数值不可改变的字符串。
而这个StringBuffer 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用 StringBuffer 。典型地,你可以使用 StringBuffers 来动态构造字符数据。
3 、 String, StringBuffer StringBuilder 的区别。【基础】
答:String 的长度是不可变的; StringBuffer 的长度是可变的,如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用 StringBuffer ,如果最后需要 String ,那么使用 StringBuffer 的 toString() 方法;线程安全; StringBuilder 是从 JDK 5 开始,为 StringBuffer 该类补充了一个单个线程使用的等价类;通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
4 、 Overload 和 Override 的区别。 Overloaded 的方法是否可以改变返回值的类型 ? 【基础】
答:方法的重写Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载 (Overloading) 。 Overloaded 的方法是可以改变返回值的类型。
5 、定义类 A 和类 B 如下:【基础】
class A {
int a=1;
double d=2.0;
void show(){
System.out.println("Class A: a="+a +"\td="+d);
}
}
class B extends A{
float a=3.0f;
String d="Java program.";
void show(){
super.show( );
System.out.println("Class B: a="+a +"\td="+d);
}
}
(1) 若在应用程序的 main 方法中有以下语句:
A a=new A();
a.show();
则输出的结果如何?
(2) 若在应用程序的 main 方法中定义类 B 的对象 b :
A b=new B();
b.show();
则输出的结果如何?
答:输出结果为:
1 ) Class A: a=1 d=2.0 ;
2 ) Class A: a=1 d=2.0
Class B: a=3.0 d=Java program 。
6 、描述一下 JVM 加载 class 文件的原理机制 ? 【基础】
答:JVM 中类的装载是由 ClassLoader 和它的子类来实现的 ,Java ClassLoader 是一个重要的 Java 运行时系统组件。它负责在运行时查找和装入类文件的类。
7 、 char 型变量中能不能存贮一个中文汉字 ? 为什么 ? 【基础】
答:能够定义成为一个中文的,因为java 中以 unicode 编码,一个 char 占 16 个字节,所以放一个中文是没问题的。
8 、 abstract class 和 interface 有什么区别 ? 【基础】
答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class ),。然而可以创建一个变量,其类型是一个抽象类,它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。 Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口( interface )是抽象类的变体。新型多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,所有成员变量都是 publicstatic final 的。一个类可以实现多个接口,当类实现特殊接口时,它定义(即
将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
9 、 Static Nested Class 和 Inner Class 的不同?【基础】
答:Static Nested Class 是被声明为静态( static )的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
10 、 Java 中会存在内存泄漏吗,请简单描述。【基础】
答:会;存在无用但可达的对象,这些对象不能被GC 回收,导致耗费内存资源。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913864/viewspace-2692354/ ,如需转载,请注明出处,否则将追究法律责任。