20210816
11385 ワード
今日の勉強内容🏻プログラマーレベル1 2題
https://github.com/sohee0724/programmers Javaオブジェクト向けSpringの入門原理と2 を理解する
abs(x):絶対値合計 列挙関数:リストを渡すインデックスと値 join関数:パラメータリストの各要素を1つの文字列 にマージ zip(*iterable)関数: 関数で、同じデータ型をグループ化 JVMの存在と役割を理解するにはJava開発環境を理解するために必要な ソフトウェア開発ツール=Java開発ツールパッケージ:Java開発ツール
オペレーティングシステム=JRE(Javaランタイム環境:Javaランタイム環境)
ハードウェア-物理計算機=Java仮想マシン(Java Virtual Macgue:Java仮想マシン)
JDKを使用して開発されたプログラムは、仮想マシンJVMでJREによって駆動されます.
配置を容易にするために、JDKはJREを含み、JREは再びJVM を含む. JDKはjavaソースコンパイラjavacです.EXeを含み、JREはJavaプログラムエフェクタjavaです.exeを含む. 開発者は、独自のオペレーティングシステムJVMを使用してプログラムを作成および導入します.
JVMを仲裁者として各プラットフォームでプログラムを実行することに問題はありません=書き込み時にAnywhere を実行します.プログラムがメモリを使用する方法は、コード実行領域+データ記憶領域(静的/スタック領域/スタック領域)である.
-静的領域:クラスの遊園地
-スタックエリア:メソッドの遊園地
-Heapエリア:対象の遊園地
一般開発者はコード実行分野を深く学ぶ必要はありません
プログラミング=gotoを使用しない 構造化プログラミング=関数を使用し、グローバル変数ではなく領域変数を使用し、論理 を繰り返し分割する Javaのプログラム性/構造化プログラミング=シーケンス図と制御文/方法 関数とメソッドの違い:関数はクラスまたはオブジェクトには関係ありませんが、メソッドはクラス定義に存在する必要があります. 例
main()メソッドを実行するために、スタックフレームワークはスタック領域に割り当てられます.(クラスの括弧を定義する以外は、他の括弧に遭遇するたびにスタックフレームが生成されます.括弧に遭遇すると、メソッドのスタックフレームが生成されます.括弧に遭遇すると、スタックフレームは消えます.)さらに、スタックフレームの下部にメソッドパラメータ(args)を格納する変数空間があることを確認する必要がある.このようにメモリを構成してからmain()メソッドの最初の文を実行します.
要約JREはJVM Java仮想マシンを起動し、JVMはメモリ構造を作成し、Javaを追加します.lang.パケットや各種クラスロード、main()メソッドスタックフレーム配置、変数空間配置など.main()メソッドが完了すると、JREはJVMを終了し、JRE自体もオペレーティングシステム上のメモリから消えます.これでTメモリも消えます.
変数はStatic、Stack、Heap領域にあり、各変数には異なる目的があります.クラスメンバー変数:JVMが終了するまでStatic領域 領域変数:スタック領域で、スタックフレーム内に位置します.このスタックフレームでのみ使用可能であり、外部では を使用できません.オブジェクトメンバー変数:heapでは、不要コレクタと呼ばれるhipメモリ回収器がオブジェクトとともに削除されます. squareメソッドのStackフレームワークでは,戻り値を格納変数空間が底部にあり,次いでパラメータを格納変数空間,最後にメソッドの領域変数 である.
スタックフレーム間の変数にアクセスできません.入力値(パラメータリスト)と戻り値に基づいてメソッド間で値を渡すだけで、互いの内部の領域変数 は表示できません.
メソッドの外で宣言された変数は、メソッド間で共有されるグローバル変数になります. スレッドの安定性が損なわれるので、 はなるべく使用しない方がよい.
マルチスレッド:Tメモリモデルで を使用して、スレッド数でスタック領域を分割マルチプロセス:複数のデータ記憶領域(すなわち、複数のTメモリ)を有する構造 マルチプロセスは互いに参照することができず、マルチスレッドは1つのTメモリしか使用しない.スタック領域のみを分割する構造であるため、他のスレッドのスタック領域にアクセスできないが、共有静的領域とheap領域は を使用する.マルチスレッドがマルチプロセスよりも少ないメモリ フィールド=プロパティ=プロパティ
関数=メソッド=機能=動作
https://github.com/sohee0724/programmers
Pythonの定理
abs(-99) = 99
data = enumerate((1, 2, 3))
for i, value in data:
print(i, ":", value)
# 출력
0 : 1
1 : 2
2 : 3
# 구분자.join(문자열 리스트)
"".join([avg>=90 and "A" or avg>=80 and "B" or avg>=70 and "C"
or avg>=60 and "D" or avg>=50 and "D" or "F" for avg in avgs])
print(list(zip([1, 2, 3], [4, 5, 6])))
# 출력
[(1, 4), (2, 5), (3, 6)]
# 2차원 배열 행렬 바꾸기
list(map(list, zip(*scores)))
Javaオブジェクト向けSpringの入門原理を理解する02
オペレーティングシステム=JRE(Javaランタイム環境:Javaランタイム環境)
ハードウェア-物理計算機=Java仮想マシン(Java Virtual Macgue:Java仮想マシン)
JDKを使用して開発されたプログラムは、仮想マシンJVMでJREによって駆動されます.
配置を容易にするために、JDKはJREを含み、JREは再びJVM
JVMを仲裁者として各プラットフォームでプログラムを実行することに問題はありません=書き込み時にAnywhere
-静的領域:クラスの遊園地
-スタックエリア:メソッドの遊園地
-Heapエリア:対象の遊園地
一般開発者はコード実行分野を深く学ぶ必要はありません
public class Start {
public void static main(String[] args){
System.out.println("Hello OOP !!");
}
}
JREは、起動プログラムの開始main()メソッドがあるかどうかをチェックします.main()メソッドが見つかった場合、JREはJVMを起動してプログラムを実行します.起動したJVMはターゲットファイルを受信して実行します.JVMが最初に行うべきことは、前処理プロセスです.すべてのjavaプログラムに含まれるjava.langパッケージを静的領域にインポートします.その後、JVMは、開発者が作成したすべてのインポートパッケージとクラスを静的領域にインポートします.main()メソッドを実行するために、スタックフレームワークはスタック領域に割り当てられます.(クラスの括弧を定義する以外は、他の括弧に遭遇するたびにスタックフレームが生成されます.括弧に遭遇すると、メソッドのスタックフレームが生成されます.括弧に遭遇すると、スタックフレームは消えます.)さらに、スタックフレームの下部にメソッドパラメータ(args)を格納する変数空間があることを確認する必要がある.このようにメモリを構成してからmain()メソッドの最初の文を実行します.
要約JREはJVM Java仮想マシンを起動し、JVMはメモリ構造を作成し、Javaを追加します.lang.パケットや各種クラスロード、main()メソッドスタックフレーム配置、変数空間配置など.main()メソッドが完了すると、JREはJVMを終了し、JRE自体もオペレーティングシステム上のメモリから消えます.これでTメモリも消えます.
領域変数とメモリ:スタックフレームに閉じ込められました!
変数はStatic、Stack、Heap領域にあり、各変数には異なる目的があります.
メソッド呼び出しとメモリ:メソッドスタック2
public void ckass Start4{
public static void main(String[] args){
int k = 5;
int m = squre(k);
}
private static int square(int k){
int result;
k = 25;
result = k;
return result;
}
}
グローバル変数とメモリ:グローバル変数を書かないでと言った!
マルチスレッド/マルチプロセスの理解
その他
関数=メソッド=機能=動作
Reference
この問題について(20210816), 我々は、より多くの情報をここで見つけました https://velog.io/@always/dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol