ホームページ Java &#&面接の質問 Java の基本的な面接の質問 (1)

Java の基本的な面接の質問 (1)

Aug 24, 2020 pm 04:08 PM
java 面接の質問

Java の基本的な面接の質問 (1)

1.「.java」ソース ファイルには複数のクラス (内部クラスではない) を含めることはできますか?制限事項は何ですか?

クラスは複数存在できますが、パブリック クラスは 1 つだけ存在でき、パブリック クラス名はファイル名と一致している必要があります。

(その他のインタビュー質問の推奨事項: Java インタビューの質問と回答)

2. Java には goto がありますか?

Java の予約語は、現在 Java では使用されていません。

3. & と && の違いについて話します。

& と && は、論理 AND (and) を示す論理 AND 演算子として使用できます。演算子の両側の式の結果が true の場合、演算結果全体が true になります。それ以外の場合は、 as 当事者の 1 つが false の場合、結果は false になります。

&& には短絡機能もあります。つまり、最初の式が false の場合、2 番目の式は評価されなくなります。たとえば、if(str!= null&& !str.equals() s)) 式、str が null の場合、次の式は実行されないため、NullPointerException は発生しません。&& が & に変更されると、NullPointerException がスローされます。 If(x==33 & y>0) y は成長しますが、If(x==33 && y>0) は成長しません

& は、& 演算子がオンの場合、ビット演算子としても使用できます。両側 式がブール型ではない場合、& はビット単位の AND 演算を表します。通常、0x0f を使用して整数で & 演算を実行し、整数の下位 4 ビットを取得します。たとえば、0x31 & 0x0f の結果は次のようになります。 0x01。

4. JAVA の現在の複数のネストされたループから抜け出すにはどうすればよいでしょうか?

Java では、複数のループから抜け出す場合は、外側のループ ステートメントの前にラベルを定義し、内側のループ本体のコード内でそのラベルを含む Break ステートメントを使用して抜け出すことができます。外側のループの。

例:

for(int i=0;i<10;i++){
   for(intj=0;j<10;j++){
       System.out.println(“i=” + i + “,j=” + j);
       if(j == 5) break ok;
   }
}
ログイン後にコピー

また、私は個人的にラベルを使用せず、代わりに、外側のループの条件式の結果を内側のループ本体のコードで制御できるようにしています。たとえば、2 次元配列内の数値を検索するとします。

int arr[][] ={{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length&&!found;i++)       {
        for(intj=0;j<arr[i].length;j++){
              System.out.println(“i=” + i + “,j=” + j);
              if(arr[i][j] ==5) {
                      found =true;
                      break;
              }
        }
}
ログイン後にコピー

(推奨学習: java 入門チュートリアル )

5. switch ステートメントは byte で動作するか、long で動作するか、上の String で動作するか?

switch(e) では、 e は整数式または列挙定数 (大きいフォント) のみです。整数式は int 基本型または Integer ラッパー型です。byte、short、char のため、暗黙的に int に変換できるため、これらの型およびこれらの型のパッケージ化型も可能です。明らかに、long 型も String 型も switch の構文に準拠しておらず、暗黙的に int 型に変換できないため、switch ステートメントでは使用できません。

switch 文が String に使用できるかどうかを言うのは間違いです。この記述方法は Java 1.7 以降ですでにサポートされています。

6. short s1= 1; s1 = (s1 1 は int 型で等号の左側は short 型なので強制する必要があります) 1 1; どうしたのですか? short s1 = 1; s1 = 1;何が問題ですか? (何も間違っていません)

簡単に言うと、s1= 1; s1 = s1 1;s1 1 は演算中に式の型を自動的に昇格させるため、結果は int 型になり、型が s1 の場合、コンパイラは型キャストを必要とするエラーを報告します。

略して s1= 1; s1 = 1; = は Java 言語で指定される演算子であるため、Java コンパイラはこれに対して特別な処理を実行し、正しくコンパイルできます。

7. 中国語の文字は char 変数に格納できますか? なぜですか?

char 変数は、Unicode でエンコードされた文字を格納するために使用されます。Unicode でエンコードされた文字セットには中国語の文字が含まれているため、 , もちろん、char型変数には漢字も格納できます。ただし、特殊な中国語文字が Unicode エンコード文字セットに含まれていない場合、特殊な中国語文字をこの char 変数に格納することはできません。追加説明: Unicode エンコーディングは 2 バイトを占有するため、char 型の変数も 2 バイトを占有します。

8. 2 に 8 を掛けた値を計算するには、最も効率的な方法を使用してください?

2<< 3, (3 桁左シフト) 数値を n だけ左にシフトするため、これは、2 の n 乗に相当します。すると、数値を 8 倍するときは、3 ビットだけ左にシフトするだけで済みます。CPU が直接サポートするビット演算が最も効率的です。最も効率的な数は 2 に 8 を掛けたものですか? 方法は 2<<3 です。

9.final キーワードを使用して変数を変更する場合、参照は変更できませんか、または参照先のオブジェクトは変更できませんか?

final キーワードを使用して変数を変更する場合、参照変数は変更できませんが、参照変数が指すオブジェクトの内容は変更できることを意味します。たとえば、次のステートメントの場合:

finalStringBuffer a=new StringBuffer("immutable");
ログイン後にコピー

次のステートメントを実行するとコンパイル時エラーが報告されます:

a=new StringBuffer("");
ログイン後にコピー

ただし、次のステートメントを実行するとコンパイルされます:

a.append(" broken!");
ログイン後にコピー

誰かがメソッドのパラメータを定義するとき、メソッドが渡されたパラメータ オブジェクトを変更しないように次の形式を使用することがあります。

public void method(final  StringBuffer param){
}
ログイン後にコピー

実際には、これは不可能です。メソッド内に追加することもできます。次のコードを使用してパラメータ オブジェクトを変更します:

param.append("a");
ログイン後にコピー

(学習ビデオの推奨事項: java course)

10.静的変数とインスタンス変数の違いは何ですか?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。

public class VariantTest{
        publicstatic int staticVar = 0;
        publicint instanceVar = 0;
        publicVariantTest(){
              staticVar++;
              instanceVar++;
              System.out.println(staticVar +instanceVar);
        }
}
ログイン後にコピー

以上がJava の基本的な面接の質問 (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

未来を創る: まったくの初心者のための Java プログラミング 未来を創る: まったくの初心者のための Java プログラミング Oct 13, 2024 pm 01:32 PM

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

See all articles