A Javaのインタビューの質問の基本

1.「の.java」のソースファイルに複数のクラス(ない内部クラス)を含めることができる場合は、任意の制限はありますか。

  そこ複数のクラスが、唯一つのパブリッククラスことができ、およびパブリッククラス名はファイル名と一致する必要があります。

2.Javaではあり後藤?

  Javaの後藤は、予約語であるが、今のJavaには使用することはありません。

3.違いと&&&の話?

  &&&両側の表現演算子の結果が真である場合、結果は、全体の動作は、次に、限りそれらのいずれかが偽であるように、そうでなければ、真であった、論理AND演算子として使用され、論理的(および)を表すことができます結果はfalseです。

  最初の式は、もはや、第二の発現偽である場合&&も短絡、つまり機能を有していません。

  &ビット単位演算子は、式の両辺をブール演算子でないと、&ビット単位のAND演算を表す場合、我々は、典型的には整数の最下位ビットを得るために、整数にOxOfコンピューティング使用して&も使用することができる4結果Ox31およびOx01 OxOfとしてビット、例えば、。

4.どのように出て、Javaの現在、複数のネストされたループの?

  Javaでは、マルチループアウトに、ラベルは、break文のラベルで、外側のループの前に定義することができ、その後、外側のループの外に、ループ本体層内のコードを使用します。たとえば、

  OK:

  (INTがI = 0、I <10; I ++)のために{ 

           (; J <10; int型J = 0 J ++)用{ 

                    するSystem.out.printlnは、(+ I +を「私は=」「J =」+ J ); 

                    (J == 5)ブレークOKであれば、

           } 

}

 

 

  我々は、通常、2次元配列の数を見つけるために、例えば、このように数字を使用していないが、アウターループの条件式の結果は、ループコードの内層を制御することができる作ります。

  

INT ARR [] [] = {{1,2,3}、{4,5,6,7}、{9 }}。

  以下のためにINT I 0 =; I <arr.length &&見出さ;!私++ ){ 

           ためINT J = 0; J <ARR [I] .LENGTH; J ++ ){ 

                    するSystem.out.printlnは(「私は =」+ I +「J =」+ J)。

                    もし(ARR [I] [J] == 5 ){ 

                             見出さ = 

                             休憩; 

                    } 
           } 
}

 

 

 

5.switch文は、文字列に作用するかどうか、長期に作用するかどうか、バイトに基づいて行動することができますか?

  スイッチ(状態)においては、条件のみ整数式または列挙定数(大きなフォント)とすることができる、整数式は、プリミティブ型intまたはバイト、短いので、包装の整数型であることができる、チャーは、暗黙的に変換することができますint型、およびので、これらのタイプ、およびパッケージの種類のこれらのタイプも可能です。明らかに、長いと文字列型は、スイッチの構文の要件を満たしていない、とswitch文は、文字列に基づいて行動できるように、暗黙的にJavaのバージョン1.7という条件で、int型に変換されますが、Java1.7の新機能することはできません1.7以上。

6.short S1 = 1; S1 = S1 + 1;そこに何も間違っていますか?短いS1 = 1; S1 + = 1;そこに何も間違っていますか?

  かつての場合、S1 + 1が自動的にint型、表現の改善型に変換され、その後、短いタイプに割り当てられた再、コンパイラが間違った変更の義務をインストールする必要が報告されます。

  、所定のJava + =演算子は、コンパイラが彼の特別な処理をJavaのだろう後者の場合、それは正しい翻訳することが可能です。

7.char型変数には、中国語の文字を保存することができますか?なぜ?

  char型変数がUnicode文字エンコーディングを格納するために使用され、Unicodeでエンコードされた文字セットは、文字が含まれているので、当然のことながら、CHAR型変数は、文字を格納することができます。しかし、Unicodeの符号化文字集合に含まれていない一部の特殊文字は、それから、今回char型の変数で特殊文字を格納することはできません。char型の変数は、2つのバイトを占有するので、それは、Unicode文字エンコードが2バイトである、ことは注目に値します。

8.2 * 8は、計算の最も効率的な方法の数に等しいですか?

  2 << 3、正方形の2倍の等価乗じシフト演算、いくつかの左の数、。

9.百億電卓をデザインしてください。

  私たちは、正の範囲のintは31乗、100億を計算するための通常の加算と減算ではありません2000万の表現の大きさである知っている、私たちはクラスjava.math.BigIntegerのに似たクラスを設計することができますこのクラス変数の2人の内側のメンバーは、他のバイナリ値を表すシンボルはバイト配列、コンストラクタ、マルチビットシンボルの値を含む文字列で表され、内部バイト配列に変換します算術関数を提供しました。

10.変数のキーワード最後の修正、参照を変更することはできません、または変数の参照は変更することはできないのですか?

  変化まだすることができ、最終的なキーワードを使用して変数を変更する場合、変更することができない参照変数を参照し、コンテンツオブジェクト参照変数が参照しました。

  たとえば、次の文:

   最終的にStringBuffer =新しいStringBufferの(「不変」);
  次の文は、コンパイル時エラーを報告し実行します。

  新しいStringBufferの(「」)= ;
  ただし、次の文は、コンパイラによって実行することができます。

  a.append( "壊れました!");

11.「==」とequalsメソッドは違いがある何ですか?

  二つの値が等しい比較するように設計された「==」演算子、すなわち、メモリに記憶された値に対応する変数を比較するためのデータの2つの基本的なタイプまたは二つの基準変数を比較するために、同じです等しい、唯一「==」演算子あります。

  この方法は、同じ内容を持つ2つの別々のオブジェクトを比較するために使用されているに等しいです。

  一般的に比較文字列が等しいです。

  その価値が注目されているクラスがない場合の独自の定義は、デフォルトで(オブジェクトクラスから継承)メソッドと等しい方法は、使用==オペレータ、また、オブジェクトが同じオブジェクトであるかどうかに二つの変数の点を比較し、この時間を使用することであると等しいです2つの別々のオブジェクトの比較は常にfalseを返す場合、equalsと使用は==、同じ結果が得られます。あなたは、コンテンツの種類を書きたい場合は、そのクラスから作成されたオブジェクトの2つのインスタンスを比較することができ、同じである、あなたは、2つのオブジェクトの内容に考えることができるコードを記述するかを決定するためにあなたにequalsメソッドをオーバーライドする必要があります同じです。

12.静的変数とインスタンス変数の違いは?

  構文定義の違い:旧インスタンス変数が追加されていない一方で、静的なキーワードの前には、静的変数を追加します。

  プログラム実行時の違い:インスタンス変数は、オブジェクトのプロパティに属している、あなたはインスタンス変数は、このインスタンス変数を使用するためにスペースを割り当てられているオブジェクトのインスタンスを作成する必要があります。静的変数は、オブジェクトのインスタンスに属していないが、クラスに属し、また、静的変数にスペースが割り当てられます限り、プログラムがロードされたバイトコードのクラスであるとして、オブジェクトのインスタンスを作成しない、クラス変数として知られ、静的変数をすることができ使用しています。要するに、インスタンスの後に変数がオブジェクトを作成する必要があり、このオブジェクトで使用することができ、あなたは直接クラス名を参照する静的変数を使用することができます。

13.私は、静的メソッド内から非静的メソッドへの呼び出しを発行することはできますか?

  ではありません。非静的メソッドを使用すると、オブジェクトを作成する必要があります後、それはオブジェクトのメソッドを呼び出すことができ、かつ必要が静的メソッド呼び出しを作成する際に、一緒にいたオブジェクトに関連付けられているため非静的メソッドは、一緒にいたオブジェクトに関連付けられているのでオブジェクト、あなたが直接あなたが静的メソッドから非静的メソッドへの呼び出しを発行した場合、オブジェクトのインスタンスを作成することはできません、静的メソッドが呼び出されたときに、他の言葉を呼び出すことができ、非静的メソッドは、そのオブジェクトに関連付けられていますそれは?このロジックを確立することができない、内部の静的メソッドは非静的メソッドを呼び出します。

違い14.Integerとint型?

  int型は、Javaが提供する生データの8種類の一つです。各プリミティブ型パッケージのためのJavaクラスを提供し、整数intはパッケージのJavaクラスを提供することです。INTデフォルト値は0であり、整数デフォルト値は整数で割り当てなく、0の値との差を区別することができ、あるヌルであり、intは検査及び試験を受けていない表現するために、例えば、割り当てずに表現できません違いのための0の結果は、あなただけの整数を使用することができます。JSPの開発では、デフォルト整数EL式のテキストボックスを表示すると、空の文字列、int型のデフォルトおよびデフォルト値は0、表現エル時間のテキストボックスに表示、ときにそれが使用され、nullであります結果は、int型は、ウェブフォームデータ層として適していない、それは、0です。

  OIDもunsaved-セットHBMマッピングファイルに必要int型、のために定義されている場合、オブジェクトは、一時的であるかどうかに応じて判定された場合に休止状態では、OID定義型整数場合、HibernateはNULL値を持つことができ属性値は0です。

  さらに、整数が整数関連の複数の動作方法を提供、例えば、整数の文字列は、整数はまた、最大値を定義し、定数の最小値は整数を表します。

15.Math.round(11.5)はどのくらいに等しいのですか?恐らくMath.round(-11.5)はどのくらいに等しいですか? 

  それは切り上げ表し切り上げ、床、ラウンド、これらの方法および英語での対応する名前の役割を意味し、例えば、英語の意味はceilがある天井、:Mathクラスは丸め関連の3つのメソッドを提供します結果Math.ceilは(11.3)12であり、結果Math.ceil(-11.3)は-11であり、床の英語の意味床は、この方法はのため結果Math.ceil(11.6)の切り捨てを示し11の結果Math.ceil(-11.6)-12、マスターにとって最も困難な手段は、すぐに元の数字プラス0.5の後、アルゴリズムMath.floor(X + 0.5)「を丸め」ラウンド方法は、あります丸めの下で、その結果恐らくMath.round(11.5)が12であると、結果恐らくMath.round(-11.5)-11。

16.保護された、プライベート、パブリックスコープを伝え、その差が書かれていないときにしてください。

  

次の表に示した範囲の4つの可視範囲。

 

注:あなたが表示され変更された要素内の任意のアクセス修飾子を記述しない場合は、(同じパッケージ缶のアクセスのすべてのクラス)に優しいです。

 

 

違い17.Overloadとオーバーライド。オーバーロードメソッドは、戻り値の型を変更できますか?

  過負荷、過負荷は、同じクラスの複数の同じメソッドの名前を表し、これらの方法のパラメータリスト(すなわち、異なる数またはパラメータの種類)を変えます。

 

  重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

 

18.构造器Constructor是否可被Override?

  构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

 

19.接口是否可继承接口?抽象类是否可以实现(implement)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?

  接口可以继承接口。抽象类可以实现接口,抽象类可以继承具体类,抽象类中可以有静态的main方法。

20.写clone()方法时,通常都有一行代码,是什么?

  clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员。

 

21.面向对象的特征有哪些方面?

  封装、继承、抽象、多态

22.java中实现多态的机制是什么?

  靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。

24.abstract class和interface有什么区别?

 

  1.抽象类可以有构造方法,接口中不能有构造方法。

  2.抽象类中可以有普通成员变量,接口中没有普通成员变量

  3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

  4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然

  eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

  5. 抽象类中可以包含静态方法,接口中不能包含静态方法

  6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

  7. 一个类可以实现多个接口,但只能继承一个抽象类。

 

 

25.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronize?

26.什么是内部类?Static Nested Class 和 Inner Class 的不同。

  内部类就是在一个类的内部定义的类,内部类中不能定义静态成员(静态成员不是对象的特性,只是为了找一个容身之处,所以需要放到一个类中而已。

27.内部类可以引用它的包含类的成员吗?有没有什么限制?

  

  完全可以。如果不是静态内部类,那没有什么限制!如果你把静态嵌套类当作内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,

28.Anonymous Inner Class(匿名内部类)是否可以extends(继承)其他类,是否可以implement(实现)interface(接口)?

  

  可以继承其他类或实现其他接口。不仅是可以,而是必须!

 

29.下面程序的输出结果是多少?

 

  

import java.util.Date;
public  class Test extends Date{
	public static void main(String[] args) {
		new Test().test();
	}
	public void test(){
		System.out.println(super.getClass().getName());
	}
}

 

 

  在test方法中,直接调用getClass().getName()方法,返回的是Test类名由于getClass()在Object类中定义成了final,子类不能覆盖该方法,所以,在test方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()方法,等效于调用super.getClass().getName()方法,所以,super.getClass().getName()方法返回的也应该是Test。如果想得到父类的名称,应该用如下代码:getClass().getSuperClass().getName();

 

30.String是最基本的数据类型吗?

  不是,他是final类型的。

31.String s='Hello';s=s+"world!";这两行代码执行后,原始的String对象中的内容到底变了没?

  没有变,只是s所指的对象发生了改变。

32.是否可以继承String类?

  String类是final类故不可以继承。

  

 

おすすめ

転載: www.cnblogs.com/gory/p/12131576.html