第99週WIL|航海
今日は航海99 2週間後の状況を発表します.🌊🚣♀️🌊
ここでは,オブジェクト向けプログラミングとは何か,JVMとは何かを理解する.
プログラマやJAVA言語を使う人であれば、「お客様向け」という言葉をよく耳にするかもしれません.
まず宿屋を知ります.
オブジェクト向けプログラミングはコンピュータプログラミングのモードです.コンピュータプログラムの用語リストから、複数の独立した単位(すなわち「オブジェクト」)の集合と見なすことを望んでいる.各オブジェクトは、メッセージの送受信とデータの処理を行うことができます.これらのオブジェクト向けプログラミングで使用される言語をオブジェクト向け言語と呼ぶ.
「オブジェクト」は、オブジェクト向けのプログラミングを構成するために必要です.実際の世界では、プログラムで物事の概念をオブジェクトと見なすことができます.人を例にとると、一人いる.そしてその人は名前、年齢、身分証明書番号などの情報があり、歩いたり走ったりすることができます.この例では、1人がオブジェクトになります.オブジェクトには、名前、年齢、身分証明書番号などのステータス(ステータス)があり、歩くことや走ること(動作)ができます.
人だけでなく、車も対象で、時速50キロで走ることができ、加速することができます.これにより、すべてのものを個々のオブジェクトに分割し、その動作を見つけることができます.
Javaはオブジェクト向けの言語で、オブジェクトを作成する設計図として使用されるクラスを作成します.
カプセル化は、変数と関数を1つのユニットに組み合わせることです.Javaでは、これらのデータバインドはclassによって実現され、クラスのインスタンスを作成することで、クラスに含まれるメンバー変数やメソッドに簡単にアクセスできます.このパッケージでは、情報を非表示にできます.データとコードの外観を不明にします.モジュール間の結合度を低減し、柔軟性とメンテナンス性を向上させます.
親クラスのすべてのコンテンツは、子クラスによって継承されます.クラスを再利用可能にし、継承によってパッケージを維持します.
継承に関連付けられた語は、オブジェクトを異なる状態と動作に再編成できます.オーバーロードと書き換えは一例です.オーバーライド率:親のメソッドを子として再定義することによって使用されるテクノロジー. 過負荷:技術 、複数の同名方法を有し、異なるパラメータタイプと数を提供することができる
継承は、プログラミング時のコードの再利用性を向上させることができます.
設計されたクラスを作成し、独立したオブジェクトを使用することで、開発効率を向上させます.ctrl+v神功は後で修正が発生したときに一つ一つ検索して置き換える必要がありますが、クラスは1つの場所で置き換えるだけです.
現実世界の物事をオブジェクトとしてプログラミングすることで、クラスを実装するときに日常生活の物事と比較し、自然に実現することができます.
パッケージはモジュール間の依存性を低減します.これは、プログラムの追加や変更などのメンテナンスに役立ちます.
継承などの概念は維持しやすいが、複数の継承であれば複雑になる.これは、設計段階でクラス間の関係を正確に理解する必要があるため、開発速度が低下する可能性があります.
ほとんどのオブジェクト向け言語では、機能を組み合わせる場合は、追加の関数呼び出しや計算中にポインタ演算を実行する必要があります.メンバー関数の場合は、どのオブジェクトの関数かを指定する必要があります.そのため、追加のポインタサイズと計算コストが必要です.そのため、プログラム化されたプログラミングよりも重いです.
多重継承は開発者にとって大きな難題である.継承は重複を解消しますが、親と子の関係を理解する必要があります.
JVMは、Java仮想マシン、Java仮想マシンの略です.(仮想マシンは、プログラムを実行するためのソフトウェア実装の物理マシンに類似したマシンです.)JVMの役割は、クラス・ローダを介してJavaアプリケーションを取得し、Java APIとともに実行することです.また、JVMは、JAVAとOSとの間で仲介者として機能し、JAVAがOSに制限されずに再利用できるようにしている.次に、最も重要なメモリ管理、Garbage Collectionを実行します.また、JVMはスタックベースの仮想マシンです.ARMアーキテクチャのようなハードウェアはレジスタベースであり、JVMはスタックベースである.
限られたメモリを効率的に使用して、最適なパフォーマンスを得るために答えが分からない.メモリ効率を向上させるには、メモリ構造を理解する必要があるからです.同じ機能のプログラムでも、メモリ管理によってパフォーマンスが異なります.メモリを管理していない場合は、速度が低下したり跳ね返ったりする可能性があります.だから、もしあなたが知っていたら、これは良い、あなたが知っているべき部分を超えています.
プログラムが実行されると、JVMはオペレーティングシステムからプログラムに必要なメモリ割り当てを取得します.JVMは、これらのメモリを用途に応じて複数の領域に分けて管理します.
JAvaコンパイラ(javac)はjavaソース(.java)を取得し、javaバイトコード(.class)に変換します.
class loaderでclassファイルをJVMにロードします.
ロードされたクラスファイルはExecution Engineで解析されます.
解釈後のバイトコードはRuntime Data Areasに配置され,真の機能を実現する.
これらの実行中、JVMは必要に応じてthread同期やGCなどの管理タスクを実行します.
オブジェクトとJVMを理解しましたが、プログラミングの面では掘れば掘るほど深くなるようです.プログラミングは容易なことではないことを改めて感じました.
航行の2週目には、アルゴリズムのトラブルシューティングによってjava言語が多く使用され、自然にコードを書く能力も向上しているようです.アルゴリズムの問題を解くこととチームメンバーと振り返る時間を説明することで、これは本当に実力向上の効果が最大化された.今週の車は先週の車よりも呼吸ができるので、心理的にはもう快適な1週間でしたが、間もなく来る1週間も怖くて仕方がありません.😂 残りの航海も努力して成長した開発者になるだろう.
ここでは,オブジェクト向けプログラミングとは何か,JVMとは何かを理解する.
プログラマやJAVA言語を使う人であれば、「お客様向け」という言葉をよく耳にするかもしれません.
まず宿屋を知ります.
オブジェクト向け言語とは?
オブジェクト向けプログラミングはコンピュータプログラミングのモードです.コンピュータプログラムの用語リストから、複数の独立した単位(すなわち「オブジェクト」)の集合と見なすことを望んでいる.各オブジェクトは、メッセージの送受信とデータの処理を行うことができます.これらのオブジェクト向けプログラミングで使用される言語をオブジェクト向け言語と呼ぶ.
対象とは?
「オブジェクト」は、オブジェクト向けのプログラミングを構成するために必要です.実際の世界では、プログラムで物事の概念をオブジェクトと見なすことができます.人を例にとると、一人いる.そしてその人は名前、年齢、身分証明書番号などの情報があり、歩いたり走ったりすることができます.この例では、1人がオブジェクトになります.オブジェクトには、名前、年齢、身分証明書番号などのステータス(ステータス)があり、歩くことや走ること(動作)ができます.
人だけでなく、車も対象で、時速50キロで走ることができ、加速することができます.これにより、すべてのものを個々のオブジェクトに分割し、その動作を見つけることができます.
Javaはオブジェクト向けの言語で、オブジェクトを作成する設計図として使用されるクラスを作成します.
public class Person {
String name;
int age;
public Person() {
}
public void run() {
// 생략
}
}
次に、次のようにオブジェクトを作成できます.Person geumyong = new Person();
Person dragon = new Person();
実例ともいう.🟧オブジェクト言語向けフィーチャー
1.カプセル化
カプセル化は、変数と関数を1つのユニットに組み合わせることです.Javaでは、これらのデータバインドはclassによって実現され、クラスのインスタンスを作成することで、クラスに含まれるメンバー変数やメソッドに簡単にアクセスできます.このパッケージでは、情報を非表示にできます.データとコードの外観を不明にします.モジュール間の結合度を低減し、柔軟性とメンテナンス性を向上させます.
2.継承
親クラスのすべてのコンテンツは、子クラスによって継承されます.クラスを再利用可能にし、継承によってパッケージを維持します.
3.多形性
継承に関連付けられた語は、オブジェクトを異なる状態と動作に再編成できます.オーバーロードと書き換えは一例です.
🟦 オブジェクト向け言語の利点
1.再利用
継承は、プログラミング時のコードの再利用性を向上させることができます.
2.生産性の向上
設計されたクラスを作成し、独立したオブジェクトを使用することで、開発効率を向上させます.ctrl+v神功は後で修正が発生したときに一つ一つ検索して置き換える必要がありますが、クラスは1つの場所で置き換えるだけです.
3.自然モデリング
現実世界の物事をオブジェクトとしてプログラミングすることで、クラスを実装するときに日常生活の物事と比較し、自然に実現することができます.
4.保守性
パッケージはモジュール間の依存性を低減します.これは、プログラムの追加や変更などのメンテナンスに役立ちます.
🟥オブジェクト向け言語の欠点
1.開発速度が遅い。
継承などの概念は維持しやすいが、複数の継承であれば複雑になる.これは、設計段階でクラス間の関係を正確に理解する必要があるため、開発速度が低下する可能性があります.
2.運転速度が遅い。
ほとんどのオブジェクト向け言語では、機能を組み合わせる場合は、追加の関数呼び出しや計算中にポインタ演算を実行する必要があります.メンバー関数の場合は、どのオブジェクトの関数かを指定する必要があります.そのため、追加のポインタサイズと計算コストが必要です.そのため、プログラム化されたプログラミングよりも重いです.
3.コードの難易度が上がる。
多重継承は開発者にとって大きな難題である.継承は重複を解消しますが、親と子の関係を理解する必要があります.
JVMとは?
JVMは、Java仮想マシン、Java仮想マシンの略です.(仮想マシンは、プログラムを実行するためのソフトウェア実装の物理マシンに類似したマシンです.)JVMの役割は、クラス・ローダを介してJavaアプリケーションを取得し、Java APIとともに実行することです.また、JVMは、JAVAとOSとの間で仲介者として機能し、JAVAがOSに制限されずに再利用できるようにしている.次に、最も重要なメモリ管理、Garbage Collectionを実行します.また、JVMはスタックベースの仮想マシンです.ARMアーキテクチャのようなハードウェアはレジスタベースであり、JVMはスタックベースである.
なぜJavaは上位機を知る必要があるのか
限られたメモリを効率的に使用して、最適なパフォーマンスを得るために答えが分からない.メモリ効率を向上させるには、メモリ構造を理解する必要があるからです.同じ機能のプログラムでも、メモリ管理によってパフォーマンスが異なります.メモリを管理していない場合は、速度が低下したり跳ね返ったりする可能性があります.だから、もしあなたが知っていたら、これは良い、あなたが知っているべき部分を超えています.
Javaプログラム実行プロセス
プログラムが実行されると、JVMはオペレーティングシステムからプログラムに必要なメモリ割り当てを取得します.JVMは、これらのメモリを用途に応じて複数の領域に分けて管理します.
JAvaコンパイラ(javac)はjavaソース(.java)を取得し、javaバイトコード(.class)に変換します.
class loaderでclassファイルをJVMにロードします.
ロードされたクラスファイルはExecution Engineで解析されます.
解釈後のバイトコードはRuntime Data Areasに配置され,真の機能を実現する.
2週間航行した後
オブジェクトとJVMを理解しましたが、プログラミングの面では掘れば掘るほど深くなるようです.プログラミングは容易なことではないことを改めて感じました.
航行の2週目には、アルゴリズムのトラブルシューティングによってjava言語が多く使用され、自然にコードを書く能力も向上しているようです.アルゴリズムの問題を解くこととチームメンバーと振り返る時間を説明することで、これは本当に実力向上の効果が最大化された.今週の車は先週の車よりも呼吸ができるので、心理的にはもう快適な1週間でしたが、間もなく来る1週間も怖くて仕方がありません.😂 残りの航海も努力して成長した開発者になるだろう.
Reference
この問題について(第99週WIL|航海), 我々は、より多くの情報をここで見つけました https://velog.io/@dnjsgml418/WIL-항해99-2주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol