【Java】Java的三个特点

Java的特点

    オブジェクト指向
    Java仮想マシン
    ガベージコレクション

面向对象是以数据为中心思考的方法。

    そもそも本質はデータをどう加工するか、何をしたいのかはデータが中心に考える
    オブジェクト指向ではプログラムの中で扱う対象をモノ(オブジェクト)で表現
    アプリを構成するものは全てオブジェクトによって表現され、その組み合わせによってアプリを構成する
    データとその操作をカプセル/一体化してコードをかく
    よくやりがちな失敗は他のオブジェクトのデータを参照するメソッドを書き、他のオブジェクトのメソッドが別のオブジェクトのデータを参照してしまう
    オブジェクト1のメソッドが意味がなくなる→データオブジェクトという(凝集性が悪い)
    オブジェクト1のデータを参照するのはオブジェクト1のメソッドでないといけない
    基本的にはデータとメソッドは一体化しよう!
1.png

以下是中文的同义句选项:
Java虚拟机能够执行二进制代码。

2.png

C++: C语言的增强版

    PCに電気が入りCPUが動く
    CPUはマシン語で動いてる
    アセンブラ記述(C/C++)→コンパイル→マシン語(バイナリコード)
    アセンブラでかくとダイレクトにマシン語になる
    バイナリコードのみがCPUを直接動かすことができる

Java – Java

    Java仮想マシンの上で動作
    CPUの上にJava仮想マシンを作る
    Java仮想マシンがCPUを直接動かせるバイナリコードである

    JDK、JREをインストールしないとJava仮想マシンが動かない

    Javaをコンパイルすると中間コードを吐き出す

    中間コードはバイナリコードの上で動かす必要

    中間コードを介するので直接CPUを動かすC++より遅い(と言われた)
    Javaなので遅いのではない

3.png

垃圾收集会自动释放内存。

中央处理器/CPU、内存/DRAM和存储器/硬盘驱动器(SSD/HDD)的组成

4.png

内存的机制

    例えばZ80の場合、
    データバス8本+アドレスバス16本 (=CPUがアクセスしたい番地を示す)

    0000 0000 0000 0000 ~ 1111 1111 1111 1111 までアクセスできる
    8bitCPUのZ80の場合、0~65535番地まである

    Java仮想マシンはOSにメモリを使う使わないを要求する

    OSはメモリをブロックで管理する機能がある

    Java仮想マシンはOSに100byteのメモリを要求
    OSが管理している使ってない番地を仮想マシンに返す
    Javaはそのメモリを使うことができる

    メモリリーク:
あるApplicationで仮想マシンが使うと指定して終わりを伝えず死ぬと100byte使ったままになってしまい、他の領域に使えない

    C/C++ではポインタを使いメモリアロケーターを使って割当、解放命令で解放してあげる

    Javaでは、提供するメモリはJDKのJavaマシン管理下

    hoge = null; と書くかJava仮想マシン終了で自動でガベージコレクションがメモリを解放してくれる

5.png
bannerAds