国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
1. static キーワードの特徴:
二、static關鍵字的誤區(qū)
ホームページ Java &#&はじめる Javaの靜的キーワードの機能は何ですか?

Javaの靜的キーワードの機能は何ですか?

Nov 02, 2020 am 10:42 AM
java 靜的キーワード

Java では、static は修飾子であり、クラス メンバーのメソッドとクラス メンバー変數(shù)を変更するために使用されます。さらに、プログラムのパフォーマンスを最適化するために靜的コード ブロックを作成できます。static キーワードによって変更されたメソッドや変數(shù)は影響を受けません。アクセスするにはオブジェクトに依存する必要がありますが、クラスがロードされている限り、クラス名を通じてアクセスできます。

Javaの靜的キーワードの機能は何ですか?

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

1. static キーワードの特徴:

「Java プログラミングの考え方」の P86 に次の一節(jié)があります:

「靜的メソッドは、これがなければメソッドです。靜的メソッド內(nèi)で非靜的メソッドを呼び出すことはできません。その逆も可能です」可能です。また、オブジェクトを作成せずに、クラス自體を介してのみ靜的メソッドを呼び出すことができます。実際、これが靜的メソッドの主な目的です。」

この段落では靜的メソッドについてのみ説明しますが、特別なstatic キーワードの基本的な機能を一言で説明すると、

オブジェクトを作成せずに (メソッド/変數(shù)) を呼び出すことができるので便利です。

明らかに、static キーワードによって変更されたメソッドや変數(shù)は、アクセスのためにオブジェクトに依存する必要はなく、クラスがロードされている限り、クラス名を通じてアクセスできます。

static は、クラス メンバー メソッドとクラス メンバー変數(shù)を変更するために使用される修飾子です。さらに、プログラムのパフォーマンスを最適化するために靜的コード ブロックを作成できます。

(ビデオ チュートリアルの推奨事項: javaビデオ チュートリアル)

1. 靜的変更メンバー メソッド

靜的変更メソッドは一般に靜的メソッドと呼ばれます。靜的メソッドはオブジェクトに依存せずにアクセスできるため、靜的メソッドの場合, there is no this, because it is notattached to any object. オブジェクトが存在しないので、this は存在しません。また、この機能により、クラスの非靜的メンバー変數(shù)および非靜的メンバー メソッドに靜的メソッドでアクセスすることはできません。これは、非靜的メンバー メソッド/変數(shù)は呼び出す前に特定のオブジェクトに依存する必要があるためです。

ただし、非靜的メンバー メソッドと非靜的メンバー変數(shù)には靜的メソッドではアクセスできませんが、靜的メンバー メソッド/変數(shù)には非靜的メンバー メソッドでアクセスできることに注意してください。例:

#上記のコードでは、print2 メソッドはオブジェクトとは獨立して存在するため、クラス名を使用して直接呼び出すことができます。

非靜的メソッド/変數(shù)が靜的メソッドでアクセスできる場合、メイン メソッドに次のステートメントがあるとします:

MyObject.print2();

このときオブジェクトは存在せず、str2も全く存在しないので矛盾が生じます。メソッドについても同様で、print1メソッドでは非靜的メンバ変數(shù)にアクセスするかどうか予測できないため、靜的メンバメソッド內(nèi)での非靜的メンバ変數(shù)へのアクセスも禁止されています。

非靜的メンバー メソッドの場合、靜的メンバー メソッド/変數(shù)へのアクセスに制限はありません。

したがって、オブジェクトを作成せずにメソッドを呼び出したい場合は、このメソッドを static に設定できます。最も一般的な靜的メソッドは main メソッドですが、main メソッドが靜的である必要がある理由については、これで明らかになりました。プログラムは main メソッドの実行時にオブジェクトを作成しないため、クラス名を介してのみアクセスできます。

2. 靜的に変更されたメンバー変數(shù)

靜的に変更された変數(shù)は、靜的変數(shù)とも呼ばれます。靜的変數(shù)と非靜的変數(shù)の違いは、靜的変數(shù)はすべてのオブジェクトによって共有され、靜的変數(shù)だけが存在することです。メモリ內(nèi)に 1 つあり、クラスが最初にロードされた場合にのみ初期化されるコピー。非靜的変數(shù)はオブジェクトによって所有され、オブジェクトの作成時に初期化されます。複數(shù)のコピーがあり、各オブジェクトが所有するコピーは相互に影響しません。

靜的メンバー変數(shù)の初期化順序は、定義された順序で初期化されます。

3. 靜的変更コード ブロック

static キーワードのもう 1 つの重要な役割は、プログラムのパフォーマンスを最適化するために靜的コード ブロックを形成することです。靜的ブロックはクラス內(nèi)のどこにでも配置でき、クラス內(nèi)に複數(shù)の靜的ブロックが存在する可能性があります。クラスが初めてロードされるとき、各靜的ブロックは靜的ブロックの順序で 1 回だけ実行されます。

靜的ブロックは、クラスが初めてロードされるときに 1 回だけ実行されるという特性により、プログラムのパフォーマンスを最適化できます。次のように:

class Person{
    private Date birthDate;

    public Person(Date birthDate) {
        this.birthDate = birthDate;
    }

    boolean isBornBoomer() {
        Date startDate = Date.valueOf("1946");
        Date endDate = Date.valueOf("1964");
        return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0;
    }
}

isBornBoomer は、その人が 1946 年から 1964 年の間に生まれたかどうかを判斷するために使用されます。次のように変更すると、より効率的になります。

class Person {
    private Date birthDate;
    private static Date startDate, endDate;

    static {
        startDate = Date.valueOf("1946");
        endDate = Date.valueOf("1964");
    }

    public Person(Date birthDate) {
        this.birthDate = birthDate;
    }

    boolean isBornBoomer() {
        return birthDate.compareTo(startDate) >= 0 && birthDate.compareTo(endDate) < 0;
    }
}

したがって、一度だけ実行する必要がある多くの初期化操作は、靜的コード ブロックに配置されます。

二、static關鍵字的誤區(qū)

1. 與C/C++中的static不同,Java中的static關鍵字不會影響到變量的變量或者方法的作用域。在Java中能夠影響到訪問權限的只有private、public、protected這幾個關鍵字。示例如下:

提示錯誤,說明static關鍵字并不會改變變量和方法的訪問權限。

2. 雖然對于靜態(tài)方法來說沒有this,但是我們在非靜態(tài)方法中能夠通過this訪問靜態(tài)方法成員變量。如下:

public class Test {

    static int value = 11;

    public static void main(String[] args) {

        new Test().printValue();

    }

    private void printValue() {
        int value = 22;
        System.out.println(this.value);
    }
}

輸出的結(jié)果是:11

這里的this表示的是當前對象,那么通過new Test()來調(diào)用printValue的話,當前對象就是通過new Test()生成的對象。而static變量是被對象所享有的,因此在printValue中的this.value的值毫無疑問是11。在printValue方法內(nèi)部的value是局部變量,根本不可能與this關聯(lián),所以輸出11。需要記住的是:靜態(tài)成員變量雖然獨立于對象,但是不代表不可以通過對象去訪問,所有的靜態(tài)方法和靜態(tài)變量都可以通過對象訪問(只要權限足夠)。

3. 在C/C++中static關鍵字是可以作用于局部變量的,但是在Java中是不允許使用static修飾局部變量的。這是Java語法的規(guī)定。

更多編程相關知識,請訪問:編程教學??!

以上がJavaの靜的キーワードの機能は何ですか?の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

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 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設定して部分的なロールバックを達成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時刻を取得します。 3。of()メソッドを使用して特定の日付と時刻を作成します。 4.プラス/マイナスメソッドを使用して、時間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

ネットワークポートとファイアウォールの理解 ネットワークポートとファイアウォールの理解 Aug 01, 2025 am 06:40 AM

ネットワークポートアンドファイアワルクトグテルトエナブルコマニケーションwhiledensuringsecurity.1.networksarevirtualendpointsnumbered0–655 35、withwell-knownportslike80(http)、443(https)、22(ssh)、および25(smtp)識別pecificservices.2.portsoperateovertcp(信頼できる、c

Garbage CollectionはJavaでどのように機能しますか? Garbage CollectionはJavaでどのように機能しますか? Aug 02, 2025 pm 01:55 PM

JavaのGarbage Collection(GC)は、メモリを自動的に管理するメカニズムであり、到達不可能なオブジェクトを取り戻すことでメモリ漏れのリスクを軽減します。 1.GCルートオブジェクトからのオブジェクトのアクセシビリティ(スタック変數(shù)、アクティブスレッド、靜的フィールドなど)、および到達不可能なオブジェクトはゴミとしてマークされています。 2。マーククリアリングアルゴリズムに基づいて、すべての到達可能なオブジェクトをマークし、マークのないオブジェクトをクリアします。 3.世代の収集戦略を採用する:新世代(Eden、S0、S1)は頻繁にMinorGCを?qū)g行します。高齢者のパフォーマンスは少なくなりますが、MajorGCを?qū)g行するのに時間がかかります。 Metaspaceはクラスメタデータを保存します。 4。JVMはさまざまなGCデバイスを提供します。SerialGCは小さなアプリケーションに適しています。 ParallelGCはスループットを改善します。 CMSが減少します

ユーザーデータにHTML「入力」タイプを使用します ユーザーデータにHTML「入力」タイプを使用します Aug 03, 2025 am 11:07 AM

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるURL、色、範囲、検索などの新しいタイプを追加します。 3.プレースホルダーと必要な屬性を使用して、フォームフィリングの効率と精度を改善しますが、プレースホルダーがラベルを置き換えることはできないことに注意してください。

HTTPミドルウェアロギングの例を例に進めます HTTPミドルウェアロギングの例を例に進めます Aug 03, 2025 am 11:35 AM

GOのHTTPログミドルウェアは、リクエストメソッド、パス、クライアントIP、および時間がかかることを記録できます。 1. http.handlerfuncを使用してプロセッサをラップします。2。next.servehttpを呼び出す前後の開始時間と終了時間を記録します。完全なサンプルコードの実行が検証されており、中小のプロジェクトの開始に適しています。拡張機能の提案には、ステータスコードのキャプチャ、JSONログのサポート、リクエストIDトラッキングが含まれます。

Javaビルドツールの比較:Maven vs. Gradle Javaビルドツールの比較:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

gradleisthebetterchoiceformostnewprojectoitssuperorfficability、performance、andmoderntoolingsupport.1.gradle’sgroovy/kotlindslismoreconciseandexpressiveethanmaven’sverboseml.2.gradleorformsmavenbenbumebutedwitedwitedwitedspedexは

See all articles