java の静的メソッドと非静的メソッドの違い
1. 静的メソッド (静的メソッド)
静的メンバー変数と同様、これらはクラス自体に属します。クラスがロードされるときにメモリにロードされ、自動的に破棄されません。JVM が実行されるまでメモリ内に残ります。閉じられています;2. 非静的メソッド
インスタンス化メソッドとも呼ばれ、インスタンス オブジェクトに属します。メモリはインスタンス化後に割り当てられ、参照する必要があります。インスタンス オブジェクトが JVM によってリサイクルされると、インスタンス オブジェクトも消えます静的メソッドとインスタンス メソッドの違い
1ライフ サイクル
静的メソッドのライフ サイクルは、プロセスの作成時に開始され、プロセスの終了時に終了します。したがって、静的メソッドはグローバルであり、プロセス全体を通じて実行されます。インスタンス メソッドのライフ サイクルは、オブジェクトのインスタンス化から始まり、プロセスの終了まで続きます。インスタンス化されたオブジェクトは、登録解除およびリサイクルされた後に終了します。したがって、インスタンス メソッドのライフ サイクルは短くなります。これは、インスタンス メソッドで静的メソッドを呼び出すことができない理由でもあります。2 .メソッドの呼び出し
静的メソッドを呼び出す場合外部的には、「クラス名.メソッド名」メソッドまたは「オブジェクト.メソッド名」メソッドを使用できます。つまり、静的メソッドを呼び出すときです。オブジェクトを作成する必要はありません。インスタンス メソッドで実行できるのは、 「object.method name メソッド」を使用します。//-----------hasStaticMethod.java----------------- public class hasStaticMethod{ //定义一个静态方法 public static void callMe(){ System.out.println("This is a static method."); } }次のプログラムでは、2 つの形式を使用して静的メソッドを呼び出します。
//-----------invokeStaticMethod.java----------------- public class invokeStaticMethod{ public static void main(String args[]){ hasStaticMethod.callMe(); //不创建对象,直接调用静态方法 hasStaticMethod oa = new hasStaticMethod(); //创建一个对象 oa.callMe(); //利用对象来调用静态方法 } }3. アクセス制限 静的メソッドがこのクラスのメンバーにアクセスする場合、静的メンバー (つまり、静的変数と静的メソッド) へのアクセスのみが許可されます。インスタンス メンバー変数およびインスタンス メソッドにアクセスします。インスタンス メソッドにはこの制限はありません。インスタンス メンバー変数はオブジェクトに属しており、静的メソッドの実行時にオブジェクトが存在するとは限りません。同様に、静的メソッドが許可されている場合は、メソッドがインスタンス メンバー メソッドにアクセスする場合、インスタンス メンバー変数に間接的にアクセスできるため、インスタンス メンバー メソッドにはアクセスできません。同じ理由に基づいて、キーワード this
//-----------accessMember.java----------------- class accessMember{ private static int sa; //定义一个静态成员变量 private int ia; //定义一个实例成员变量 //下面定义一个静态方法 static void statMethod(){ int i = 0; //正确,可以有自己的局部变量sa = 10; //正确,静态方法可以使用静态变量 otherStat(); //正确,可以调用静态方法 ia = 20; //错误,不能使用实例变量 insMethod(); //错误,不能调用实例方法 } static void otherStat(){} //下面定义一个实例方法 void insMethod(){ int i = 0; //正确,可以有自己的局部变量 sa = 15; //正确,可以使用静态变量 ia = 30; //正确,可以使用实例变量 statMethod(); //正确,可以调用静态方法 } }4 は使用できません。 4. 実行シーケンス ClassLoader によってクラスファイルが JVM にロードされると、メソッドの命令はスタックに保存されますが、このときヒープにはデータはありません。エリア。その後、プログラム技術者は命令の実行を開始します。静的メソッドの場合、命令コードは順番に直接実行されます。もちろん、この時点では命令コードは Heapshuju データ領域にアクセスできません。インスタンス メソッド (インスタンス メソッドには、JVM によって与えられる暗黙的な受信パラメータがあります。このパラメータは、スタック内のインスタンス オブジェクトのメモリ アドレスであるため、インスタンス メソッドはヒープ内で独自のデータを見つけることができます。オブジェクトは必ず必要です。呼び出す前にインスタンス化され、ヒープにデータが割り当てられ、スタック内のメモリ ポインタが JVM の暗黙的なパラメータを介してインスタンス メソッドに渡されます。インスタンス化せずに直接呼び出すと、暗黙的なパラメーターに値がないため、エラーが報告されます。 ###
以上がJavaの静的メソッドと非静的メソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、さまざまなJava Garbage Collectionアルゴリズム(シリアル、パラレル、CMS、G1、ZGC)、そのパフォーマンスへの影響、および大きなヒープを持つアプリケーションの適合性について説明します。

この記事では、Java Virtual Machine(JVM)について説明し、さまざまなプラットフォームでJavaプログラムを実行する際の役割について詳しく説明しています。 JVMの内部プロセス、主要コンポーネント、メモリ管理、ガベージコレクション、およびパフォーマンスの最適化について説明します

Javaのナショーンエンジンは、Javaアプリ内でJavaScriptスクリプトを可能にします。重要な手順には、ナショーンのセットアップ、スクリプトの管理、パフォーマンスの最適化が含まれます。主な問題には、ナショーンのdeprecによるセキュリティ、記憶管理、将来の互換性が含まれます

Javaのリソースでの試行は、ファイルストリームやデータベース接続などのリソースを自動的に閉じることでリソース管理を簡素化し、コードの読みやすさと保守性を向上させます。

Java Enumsは、固定された値のセットを表し、カスタムメソッドとコンストラクターを介してタイプの安全性、読みやすさ、および追加の機能を提供します。それらはコード組織を強化し、効率的なバリューハンドリングのためにスイッチステートメントで使用できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
