Javaの基本_研究ノート


typora-copy-images-to:./
typora-root-url:./

一般的に使用されるdosコマンド

# 盘符切换
# 查看当前目录下的所有文件 dir
# 切换目录 cd change directory
cd ..
# 清理屏幕  cls  (clear screen)
# 退出终端 exit
# 查看电脑ip  ipconfig

# 打开应用
calc  # 打开计算器
mspaint # 画板
notepad # 打开记事本

# 文件操作
md 目录名	 # 创建目录名
rd 目录名   # 移除目录
cd>文件名  # 创建文件
del 文件名  # 删除文件

JDKをアンインストールします

  1. Javaインストールディレクトリを削除します
  2. JAVA_HOMEを削除します
  3. パスの下のJavaに関するディレクトリを削除します
  4. Javaバージョンを表示

JDKをインストールします

  1. ダブルクリックしてjdkをインストールします

  2. インストールパスを覚えておいてください

  3. 環境変数を構成する

    1. マイコンピュータ->右クリック->プロパティ

    2. 環境変数-> JAVA_HOME
      ここに画像の説明を挿入します

    3. パス変数を構成します ここに画像の説明を挿入します

    4. インストールが成功したかどうかをテストします

      java version
      

HelloWorldを作成して実行する

  1. コードを書く

    public class Hello{
          
          
    	public static void main(String[] args){
          
          
    		System.out.print("Hello,world");
    	}
    }	
    
  2. .javaファイルをコンパイルすると、ファイルが生成され.classます

    F:\4_学习资料>javac F:\4_学习资料\code\Hello.java
    # javac 命令后写绝对路径+文件名即可,如果文件在当前路径下,直接写文件名即可;
    
  3. .classファイルを実行します

    java Hello  # java + 文件名,不用带后缀(需要在Hello目录下运行)--包路径下运行
    
  4. 操作機構

    • 編集済み
    • 解釈

ここに画像の説明を挿入します

強制変換

byte、short、char-> int-> long-> float-> double

強制:(タイプ)変数名高低

自動変換:低-高
ブール型に
変換できませんオブジェクト型を無関係な型
に変換できません大容量を低容量に変換
する場合、強制変換でメモリオーバーフローまたは変換中の精度の問題が発生する可能性があります

変数

  1. ローカル変数:宣言して初期化する必要があります。スコープはメソッド内にあります
  2. インスタンス変数:オブジェクトに従属し、値は初期化されていない場合の型のデフォルト値です。ブール型のデフォルト値はfalseです。
  3. クラス変数:静的変更

ビット演算

A = 0011 1100

B = 0000 1101

A&B = 0000 1100 // l両方とも1であり、1のみ

A | B = 0011 1101 // 1つは1、つまり1

A ^ B = 0011 0001(または)位置が同じ場合は0、位置が同じでない場合は1

〜B = 1111 0010 //反転

休憩和続行

  • ループステートメントの主要部分では、breakを使用してループのフローを制御できます。Breakは、ループ内の残りのステートメントを実行せずに、ループを強制的に終了するために使用されます。(breakステートメントはswitchでも使用されます)
  • ループステートメントでcontinueステートメントを使用してループプロセスを終了します。つまり、ループ本体で実行されていないステートメントが送信されたため、次回ループを実行するかどうかを判断する必要があります。

メソッドのオーバーロード

オーバーロードは、関数名は同じで仮パラメーターが異なるクラスで転送されます。

  1. メソッドのオーバーロードのルール:
    • メソッド名は同じである必要があります
    • パラメータリストは異なっている必要があります(数が異なる、タイプが異なる、パラメータの順序が異なるなど)。
    • メソッドの戻り値の型は聞こえるか、異なる可能性があります
    • 異なる戻り値の型だけでは、メソッドのオーバーロードには不十分です
  2. 実現理論:
    • メソッド名が同じ場合は、呼び出し元のメソッドのパラメーター数やパラメーターの種類に応じて1つずつ照合し、対応するメソッドを選択します。照合に失敗した場合は、エラーを報告します。

可変パラメータ

メソッドで指定できる変数パラメーターは1つだけであり、メソッドの最後のパラメーターである必要があります。通常のパラメーターは、その前に宣言する必要があります。

ヒープ:

スタック:

メソッドエリア:

アレイ

  • その長さが決定されます。配列が作成されると、そのサイズは不変になります。

  • 要素は同じタイプである必要があり、混合タイプは許可されていません。

  • 配列内の要素は、基本型と参照型を含む任意のデータ型にすることができます。

  • 配列変数は参照型であり、配列はオブジェクトと見なすこともできます。配列内の各要素は、オブジェクトのメンバー変数と同等です。

    配列自体はオブジェクトであり、Javaのオブジェクトはヒープ内にあるため、配列が元の型または他のオブジェクト型を保存するかどうかに関係なく、配列オブジェクト自体はヒープ内にあります。

バブルソート

  1. 配列内の2つの隣接する要素を比較し、最初の数値が2番目の数値より大きい場合は、それらの位置を入れ替えます

  2. 比較ごとに、最大数または最小数が生成されます。

  3. 次の村は1回少なくソートできます

  4. 最後まで順番に循環します

        public static int[] sort(int[] array){
          
          
            //临时变量
            int temp = 0;
            // 1.外层循环,判断要走多少次
            for (int i = 0; i < array.length; i++) {
          
          
                boolean flag = false; //  通过flag标识位减少没有意义的比较
                //2.内层循环,比较判断两个数,如果第一个数比第二个数大,就交换位置
                for(int j=0;j<array.length-1-i;j++){
          
          
                    if(array[j+1]>array[j]){
          
          
                        temp=array[j];
                        array[j]=array[j+1];
                        array[j+1]=temp;
                        flag=true;
                    }
                }
                if(flag==false) {
          
          
                    break;
                }
            }
            return array;
        }
    

スパース配列

  • 配列内のほとんどの要素が0、または同じ値の配列である場合、スパース配列を使用して配列を保存できます。
  • スパース配列を処理する方法は次のとおりです。
    • レコード配列には合計でいくつかの行と列があり、そこにはいくつの異なる値がありますか
    • 要素、ランク、値を異なる値で小規模な配列に記録し、それによってプログラムのサイズを縮小します

オブジェクト指向

エッセンス:クラスの方法でコードを整理し、オブジェクトの方法でデータを整理(カプセル化)します
.3つの特性:カプセル化、継承、およびポリモーフィズム

オブジェクトメモリ分析を作成する

ここに画像の説明を挿入します

オブジェクト指向

1.スーパーとこれ

  1. スーパーノート:

    1. Superは、親クラスの構築メソッドを呼び出します。これは、構築メソッドの最初のメソッドである必要があります。
    2. superは、サブクラスのメソッドまたはコンストラクターにのみ表示される必要があります
    3. スーパーとこれは同時にコンストラクタを呼び出すことはできません
  2. この:

    1. 表示されるオブジェクトは異なります。

      これ:発信者のオブジェクト

      super:親クラスオブジェクトのアプリケーションを表します

    2. 前提:

      これ:継承なしで使用できます

      スーパー:継承条件下でのみ使用できます

    3. 工法:

      this():このクラスの構造

      super():親クラスの構築

2.書き直し

オーバーライド:継承関係と、親クラスをオーバーライドするサブクラスのメソッドが必要です。

  1. メソッド名は同じである必要があります
  2. パラメータリストは同じである必要があります
  3. 修飾子:スコープは拡張できますが、縮小することはできません
  4. 例外がスローされました:スコープを縮小することはできますが、拡大することはできません

書き換え:サブクラスと親クラスのメソッドは同じである必要があり、メソッド本体は異なります

書き直す理由:親クラスの機能であるサブクラスは、必ずしもそれを必要としない場合や、必ずしも満たす必要がない場合があります。

3.ポリモーフィズム

  1. ポリモーフィズムはメソッドのポリモーフィズムであり、属性にポリモーフィズムはありません
  2. 親クラスと子クラスが接続され、
  3. 存在条件:継承関係、メソッドを書き換える必要がある、親クラス参照が子クラスオブジェクトを指すFather f = new Son();

4.抽象クラス

  1. あなたは新しくなることはできません、あなたはそれを実装するためにサブクラスにのみ頼ることができます:制約
  2. 通常のメソッドは抽象クラスで書くことができます
  3. 抽象メソッドは抽象クラスに含まれている必要があります

5.インターフェース

  • さまざまなカテゴリ:具体的な実装のみ
  • 抽象クラス:特定の実装と仕様の両方(抽象メソッド)
  • インターフェース:仕様のみ;自分でメソッドを作成できない-専門的な制約

6.内部クラス

  • メンバー内部クラス
  • 静的内部クラス
  • ローカルインナークラス

例外処理

プロパティにポリモーフィズムはありません
。2。親クラスと子クラスが関連してい
ます。3。存在条件:継承関係、メソッドを書き直す必要があり、親クラスの参照が子クラスオブジェクトを指します。Fatherf= new息子();

4.抽象クラス

  1. あなたは新しくなることはできません、あなたはそれを実装するためにサブクラスにのみ頼ることができます:制約
  2. 通常のメソッドは抽象クラスで書くことができます
  3. 抽象メソッドは抽象クラスに含まれている必要があります

5.インターフェース

  • さまざまなカテゴリ:具体的な実装のみ
  • 抽象クラス:特定の実装と仕様の両方(抽象メソッド)
  • インターフェース:仕様のみ;自分でメソッドを作成できない-専門的な制約

6.内部クラス

  • メンバー内部クラス
  • 静的内部クラス
  • ローカルインナークラス

例外処理

おすすめ

転載: blog.csdn.net/qq_40084325/article/details/114684730