ブランドJAVAプログラミング

6895 ワード

ブランドのJAVAProgrammingの本を勉強しながら、新しく学んだ知識をこの文章に加えて復習します:)毒性はあまり強くありませんが、勉強の過程で、似たような問題で出会った人に役に立つことを望んでいます.後で時間があれば細かく整理します
Javaの略語
CTRL+F 11:実行クラス
Ctrl + Shift + F : Code Formatting
CTRL+ALT+方向キー:必要な行をコピー
CTRL+/:コード内のコメント
CTRL+Space:自動補完コード
CTRL+SHIFT+O:自動インポート
CTRL+SHIFT+T:クラスの検索
CTRL+1:キャリブレーションソース
CTRL+SHIFT+M:オブジェクトのインポート文を自動的に生成
CHAPTER 1
keyword
  • WORA (Write Once Run Anywhere)
  • Java is independent from platform
  • Java仮想マシン&バイトコード
  • CHAPTER 3
    charAt()
  • はデータ型がなく、1文字
  • しか受信できません.
  • ロール.文字を抽出し、
  • 文字列を入力します.
  • かっこの数字は、文字列内の文字の順序
  • を表す.
    活用方法
    sc.next().charAt(0);
    sc.nextLine().charAt(3);
  • int形式で文字を受信する場合は、
  • と入力します.
    a = sc.next().charAt(0)
    int x = a - ‘a’ + 1;
  • 数字が文字列型の場合、
  • String a = sc.next();
    int x = a.charAt(0) - ‘0’;
    System.out.printf()
    System.out.printf()
  • 変数に入力値を並べ替えて出力する必要がある場合は
  • である.
  • 大量変数を一度に出力場合、可読性を向上させるため、
  • .
  • printfのfはフォーマットされ、すなわちフォーマットで出力される.
  • System.out.format()
  • に変更できます.
    活用方法
    System.out.printf(“%d, %s, %f”, 10, “안녕”, 3.5);
    %d:整数
    %c:文字
    %f:実数
    %s:文字列
    System.out.printf(“5d, %-5s, 10, “안녕”);
  • 入力時右揃え出力
  • の負の値を入力ときに左揃え後に
  • を出力する.
    System.out.printfは第3章第8問の実習問題を解く際に参考を提供した.
    C言語のように右揃えで出力しようと思ったのですが、適切なコードが思いつかなかったので検索してみたら、C言語に似たprintf関数を使って無事にソートできました.
    実習問題3-8
    整数を格納するには、キーボードから数(100未満)を入力し、整数配列を生成し、ここに1~100の範囲の整数をランダムに挿入します.並べ替えを同じにしないで、並べ替えを印刷します.
    いくつの整数ですか.24
    48 33 74 94 17 39 55 8 59 81
    72 31 63 90 75 2 85 19 84 24
    98 32 86 58
    最初は例を見て、非指向性配列を考えました.
    まず「いくつか」に対応する整数を入力し、2次元配列を宣言し、繰り返し文で10単位で切断し、非指向配列と宣言します.今から見れば、後で配列を出力するときは、10単位で切断すればいいのです.コードは複雑ですが、この過程で何かを学んだと思います.
    後でこのコードを見て反省して初心者のコードをアップロードしたいです.
    public static void main(String[] args) {
    		
    		Scanner scanner = new Scanner(System.in);
    		System.out.print("정수 몇개?");
    		int num = scanner.nextInt();
    		Random r = new Random();
    		int [] number = new int [100];
    		for(int i=0;i<100;i++)
    			number[i] = (i+1);
    		int [][] n = new int[num/10+1][];
    		int len = num/10;
    		for(int s=0;s<=len;s++)
    		{
    			if(num>=10) {
    				n[s] = new int [10];
    				num-=10;
    			}
    			else
    				n[s] = new int [num];
    		}
    		
    		for(int j=0;j<n.length;j++)
    		{
    			for(int k=0;k<n[j].length;k++)
    			{
    				int ra = r.nextInt(99);
    				if(number[ra]==0) {
    					int ra2 = r.nextInt(99);
    					n[j][k] = number [ra2];
    				}
    				else {
    					n[j][k] = number[ra];
    					number[ra] = 0;
    				}
    				System.out.printf("%2d%s", n[j][k],' ');
    
    			}
    			System.out.println();
    		}
    	}
    実習問題3-10
    4 x 4の2 D配列を作成し、ここでランダムに1から10の範囲の整数を10個生成し、任意の位置に挿入します.同じ整数があっても大丈夫です.残りの6つの数字はすべてゼロです.生成された2 D配列を画面に出力します.
    5 0 8 6
    0 7 9 5
    2 4 0 8
    0 0 0 8
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	Random r = new Random();
    		
    	int n [][] = new int [4][4];
    	int cnt = 0;
    		
    	
    	for(int i=0;i<4;i++)
    	{
    		for(int j=0;j<4;j++)
    		{
    			int rand = r.nextInt(10)+1;
    			n[i][j] = rand;
    		}
    	}
        
    	while(true)
    	{
    		int rand1 = r.nextInt(4);
    		int rand2 = r.nextInt(4);
            
    	if(n[rand1][rand2]!=0)
    		{
    			n[rand1][rand2] = 0;
    			cnt++;
    		}
    			
    		if(cnt==6)
    			break;
    	}
    		
    	for(int i=0;i<4;i++)
    	{
    		for(int j=0;j<4;j++)
    		{
    			System.out.print(n[i][j]+"  ");
    		}
    		System.out.println();
    	}
    }
    まず4×4配列に乱数を加え,次に無限ループゲートを別途作成し,0を加える.
    0を足すごとにカウント変数は1増加し、カウント変数が6になるまで無限ループが実行されます.ただし、すでに0が含まれている配列のインデックスについては、カウント変数は単独で増加しません.
    .javaファイルコマンドプロンプトで実行
    実験例では、コマンドプロンプトで実行するコードがあるが、どのように実行するか分からないため、努力している.段階的に教えてあげたいです.
    (1)まず筆者は,cmdとは全く異なるJava IDE Eclipseを用いた.したがって、cmdを使用してjavaをコンパイルするにはoracleを使用します.会社は配置されたjdkを別途インストールする必要があります.
    (2)インストール後、ウィンドウシステム設定に入り、環境変数を設定する.設定の方法は後で詳しく議論します.
    環境変数で登録が完了したら.Javaファイルの場所を見つける必要があります.
    JDKをインストールした後もJavaファイルの場所が見つからず困っています.
    (3) .JAvaファイルはeclipse-workspaceフォルダ内にあります.
    (4) .Javaファイルの場所が見つかったら、cdコマンド(パスに移動)でファイルの場所に移動し、javacコマンドを実行すると正常に動作します.
    もっと詳しい内容は後で説明します.
    実習問題3-12
    次のように動作するadd:Javaを作成します.コマンドラインパラメータから整数の合計のみを選択します.
    C:\Temp>java Add 2 3 aa 5 6.5 5
    10
    C:\Temp>java Add Hell 3 4 4.3 c
    7
    これは整数出力を加える問題です.この場合、try&catch文を使用できます.
    public static void main(String[] args) {
    		
    		int sum=0;
    		for(int i=0;i<args.length;i++)
    		{
    			try {
    				sum+=Integer.parseInt(args[i]);
    			}
    			catch(NumberFormatException e) {
    			}
    		}
    		System.out.println(sum);
    	}
    ここでは例外処理関数を使用します.したがって、非整数はcatch文によって自然にフィルタリングされることができる.
    valueOf()
  • の整数を文字列に変換するための関数
  • 活用方法
  • String.valueOf(Number)
  • Integer.toString(番号)は
  • でも使用できます.
    String.eqauls(name)
  • 文字列の関数
  • を比較する
    実習問題3-15
    積を求めるために2つの整数を入力するクラスがある場合は、エラーが発生した場合に例外処理を行い、整数を再入力します.
    public static void main(String[] args) {
    		Scanner scanner = new Scanner(System.in);
    		do {
    			System.out.print("곱하고자 하는 두 수 입력>>");
    			try {
    				int n = scanner.nextInt();
    				int m = scanner.nextInt();
    				System.out.print(n + "x" + m + "=" + n*m);
    				break;
    			} catch(InputMismatchException e) {
    				System.out.println("실수는 입력하면 안됩니다.");
    				scanner.nextLine(); // <Enter> 키까지 읽어서 버린다.
    				continue;
    			}
    		} while(true);
    
    		scanner.close();
    	}
    do~while繰返し文で入力エラーが発生した場合、異常処理後にcontinueし、整数値が正常に入力された場合、break文を使用して繰返し文を終了します.
    try/catch関数を使用すると少し混乱しますが、例外処理が発生するとcatch文に移動し、その後continueで繰り返し文の最初のループをよく覚えておく必要があります.
    スキャナはまた、入力バッファをクリアすることもできます.nextLine(); 使用にも注意.
    例外クラス
    ArithemicException:整数を0で割ったときに発生
    NullPointerException:nullリファレンス参照時に発生
    ClassCastException:オブジェクトを変換できないタイプに変換する場合に発生します.
    OutOfMemoryError:メモリ不足時に発生
    ArrayIndexOutOfBoundsException:アレイの範囲外のアクセス
    IllegalArgumentException:無効なパラメータを渡すときに発生
    IOException:I/O操作が失敗または中断した場合に発生する
    NumberFormatException:文字列によって表される数字と、主要でないタイプの数字に変換した場合に発生します.
    InputMitchException:ScannerクラスのnextInt()を整数入力として呼び出そうとしますが、ユーザーが入力した文字は「a」などです.
    CHAPTER 4
    スタティツクメソッド
  • は静的メソッドと呼ばれ、オブジェクトを作成することなくメモリに割り当てることができます.
    -オブジェクトを作成する必要がないということは、new演算子を使用してオブジェクト
  • を設定する必要がないことを意味します.
  • メモリ継続参照
  • 静的およびメモリ領域
  • 一般的に静的領域に
  • クラスが作成される
  • new演算によりHeap領域にオブジェクト
  • を作成する.
  • Staticキーワードによって生成される、Static領域に割り当てられたメモリは、すべてのオブジェクトが共有するメモリという利点があるが、Garbage Collectorの管理領域以外でよく使用すると、メモリ割り当てが頻繁になり、システムに悪影響を及ぼす可能性がある
  • .
  • ステータスメソッドにアクセスするには、ステータス変数
  • を宣言する必要があります.
  • ステータスメソッドは、実用的なメソッド
  • の作成に有利である.
  • 常に一定の値が独立したメモリ領域で作成されている場合は、Static宣言によってマージすることが望ましい.
    Question
    1.配列をパラメータとして受け入れる方法について、Staticを貼り付ける必要がありますか?