Javaの基本(1)-キーワード、変数、データ型、演算子、プロセス制御

まず、コメントとは何かを理解しましょう

コメントは、自分や他の人が読みやすいように、コードをわかりやすい言語で説明および説明するためのものです。
1.-単一行コメント:
//注释内容
2.-複数行コメント:
/*注释内容
注释内容
注释内容
*/
3.-ドキュメントノート:
/**注释内容
*注释内容
*注释内容
*/

2. Javaの一般的なキーワード:

特定の意味を持つJava言語の事前定義された識別子は、プログラムの基本要素を構成します。

1.抽象とは抽象を意味します

2、ブール基本データ型

3.ループから抜け出します

4.バイト基本データ型

5.ユースケースとスイッチを一緒に

6.キャッチとトライは、キャッチ例外を示すために一緒に使用されます

7、char基本データ型

8.クラスはクラスを表します

9、ループから抜け出します

10. doとwhileは、ループを示すために一緒に使用されます

11.二重基本データ型

12.それ以外の場合、コロケーションの場合はプロセス制御

13、列挙型列挙型

14、継承を拡張します

15、最終修正定数

16.フロートの基本データ型

17、プロセス制御の場合

18、実装インターフェースを実装

19.インポートは特定のクラスを導入します

20、int基本データ型

21、インターフェースはインターフェースを意味します

22、長い基本データ型

23、ネイティブはローカルメソッドを意味します

24、新しいオブジェクトの作成

25、パッケージはパッケージを意味します

26、プライベート説明プライベート

27、公開

28、戻り値

29、短い基本データ型

30、静的は静的を意味します

31、superは親クラスを意味します

32.スイッチとケースを一緒に使用する

33、同期とはスレッドの同期を意味します

34、これは現在のインスタンスを表します

35、throwは例外をスローします

36.throwsメソッドでアクティブに例外をスローします

37、一緒にキャッチしてみてください

38.無効とは、メソッドに戻り値がないことを意味します

39、volatileは、スレッドが最新の値を読み取ることが保証されていることを意味します

40、whileはループを意味します

3つ、変数

変数には3つの要素があります。

  • データ型(異なるデータは異なるデータ型で表す必要があります)
  • 変数名(メモリアドレスの代わりに独自の名前を選択できます)
  • 変数値(メモリに保存されたデータ)

4、変数を使用する

1.変数のデータ型と変数名(数字、文字、下線、$、スペースなし、演算子、キーワードなし、数字で始まるものを含まない)を宣言します。大文字と小文字を混在させることができます。最初の単語は、小文字にし、その後、単語の最初の文字を大文字にします。

userId、studentName(キャメルケースの命名法)

2.変数の値である値をメモリ空間に割り当てます。

5、Javaデータ型

1.基本データ型(合計8種類)

byte、int、short、long、float、double、char、boolean

(1)数値型(整数、10進数)

バイト1バイト(8ビット)

int 4バイト(32ビット)

短い2バイト(16ビット)

長い8バイト(64ビット)

float 4バイト(32ビット)単精度浮動小数点

double 8バイト(64ビット)倍精度浮動小数点型
(2)非数値型(テキスト)

char文字2バイト(16ビット)

ブール1/8バイト、判定ロジックがtrue 1 / false0を保持するかどうか

2.参照データ型

(1)クラス、(2)インターフェイス、(3)配列
例:文字列型、文字列はプロジェクトで不可欠で最も使用されるデータ型であり、参照データ型の「クラス」のカテゴリに属します。

        Javaは、メモリを2つのタイプに分割します。1つはスタックメモリ呼ばれ、もう1つはヒープメモリと呼ばれます。関数で定義された変数とオブジェクト参照変数のいくつかの基本的なタイプは、関数のスタックメモリに割り当てられます。変数がコードブロックで定義されている場合、javaはスタック内のこの変数にメモリスペースを割り当てます。変数のスコープを超えると、javaは変数に割り当てられたメモリスペースを自動的に解放し、メモリスペースをすぐに使用できます。他の目的のために。ヒープメモリは、newによって作成されたオブジェクトと配列を格納するために使用されます。ヒープに割り当てられたメモリは、Java仮想マシンの自動ガベージコレクターによって管理されます。配列またはオブジェクトがヒープで生成された後、特別な変数をスタックで定義することもできます。この変数の値は、ヒープメモリ内の配列またはオブジェクトの最初のアドレス、およびスタック内の特別な変数と同じです。配列またはオブジェクトの参照変数の後、スタックメモリ内の参照変数をプログラムで使用して、ヒープ内の配列またはオブジェクトにアクセスできます。参照変数は、配列またはオブジェクトのエイリアスに相当します。

      参照変数は通常の変数です。メモリは定義時にスタックに割り当てられ、参照変数はプログラムの実行時にスコープ外に解放されます。配列とオブジェクト自体はヒープに割り当てられます。newを使用して配列とオブジェクトを生成するステートメントが配置されているコードブロックの外でプログラムを実行しても、配列とオブジェクト自体が占有していたヒープメモリは解放されません。 。配列とオブジェクトは、参照なしで変数によってポイントされます。ガベージになると、使用できなくなりますが、メモリを占有し、ガベージコレクターによって無期限に解放されます。これは、Javaがより多くのメモリを占有する主な理由でもあります。実際、スタック内の変数は、Javaのポインタであるヒープメモリ内の変数を指しています。

3.基本データ型と参照データ型の違い:

      (1)基本データ型が作成されると、メモリがスタック上で分割され、値がスタックに直接格納されます。

      (2)参照データ型を作成するときは、スタック上の参照にメモリを割り当てる必要があり、オブジェクトの特定の情報がヒープメモリに格納され、スタック上の参照がアドレスを指します。ヒープ内のオブジェクトの。

6、データ型変換

1.-自動変換

Javaは特定のデータ型を自動的に変換できます。

規則:下位バイトから上位バイトに、またはその逆にのみ変換します。

バイト(1バイト)->ショート(2バイト)-> int(4バイト)->ロング(8バイト)->フロート(4バイト)->ダブル(8ワード)セクション)

2.-強制型変換

Javaで自動的に変換できないデータ型の場合、開発者は強制的な手段でそれらを変換できます。

double num = 10.0;
int num2 = (int)num;

一般的に、強制型変換は精度の低下を引き起こす可能性があります。

セブン、オペレーター

1.-代入演算子

データ型変数名=値/変数;(等号の右側の値を左側に割り当てます)

//1、创建变量用来记录张三的体重
double weight1 = 70.5;
//2、创建变量表示李四的体重
double weight2 = 60.5;
System.out.println("交换之前:张三的体重是"+weight1+",李四的体重是"+weight2);
System.out.println("进行交换:");
double temp = weight1;
weight1 = weight2;
weight2 = temp;
System.out.println("交换之后:张三的体重是"+weight1+",李四的体重是"+weight2);
2.-算術演算子

-基本的な算術演算子

*+、-、*、/、%(取余运算)、++(自增1)、--(自减1)*

变量1 + 变量2

变量1 - 变量2

变量1 * 变量2

变量1 / 变量2

变量1 % 变量2

变量++、++变量

变量--、--变量

变量++:先操作,再运算。

++变量:先运算,再操作。

-複合算術演算子

+=、-=、*=、/=、%=

变量1 += 变量2:先求出变量1和变量2之和,再把计算结果赋值给变量1,
相当于变量1 = 变量1 + 变量2
3.-関係演算子(通常は比較と判断に使用されます)

==、!=、>、<、> =、<=
(==、!=)これら2つは非数値型に使用でき、最後の4桁は数値型の比較にのみ使用できます

4.-論理演算子

論理演算子は、ブールデータ間の論理関係を決定するためのブールデータ操作にのみ使用でき、、、、、およびではありません。

&(And)、|(or)、!(Not)、&&(短絡および)、||(短絡または)

注:論理演算子に関与する変数はすべてブール型です

変数1と変数2:変数1と変数2の両方が真の場合のみ、結果は真になります。それ以外の場合は偽になります。
変数1 |変数2:変数1と変数2のいずれかが真である限り、結果は真です。それ以外の場合は偽です。
!変数1:変数1が真の場合、結果は偽、変数1が偽の場合、結果は真です。
変数1 &&変数2:変数1と変数2の両方が真の場合のみ、結果は真になります。それ以外の場合は偽になります。
変数1 ||変数2:変数1と変数2のいずれかが真である限り、結果は真です。そうでない場合は、偽です。

注:&&と||は&と|よりも効率的です

int num1 = 10;
int num2 = 11;
//先判断num1和num2是否相等,num1再++变成11
System.out.println(num1++==num2);
//num1++成12,再和num2比较
System.out.println(++num1==num2);
System.out.println((num1++==num2)&(++num1==num2));
System.out.println(num1);

int num1 = 10;
int num2 = 11;
//第一句已经是true了,不用走后一句了
System.out.println((++num1==num2)||(num1++==num2));
System.out.println(num1);

int num1 = 10;
int num2 = 11;
//第一句判断是true,走后一句,后一句也判断是true
System.out.println((++num1==num2)|(num1++==num2));
System.out.println(num1);

int num1 = 10;
int num2 = 11;
//第一句判断是false的,还要走后面的语句
System.out.println((num1++==num2)&(++num1==num2));
System.out.println(num1);

int num1 = 10;
int num2 = 11;
//第一句已经判断是false,就不用走后面的了
System.out.println((num1++==num2)&&(++num1==num2));
System.out.println(num1);
5.-条件付き演算子

三項演算子、三項演算子、三項式
**異なる条件に従って、同じ変数に異なる値を割り当てます、変数=条件?値1:値2 **
条件が真(真)の場合、左側に?を割り当てますの値を変数に割り当てます。それ以外の場合(false)は、右側の値を変数に割り当てます。

public class Test001 {
    
    
	public static void main(String[] args) {
    
    
		int num = 1<2?1:0;
		System.out.println(num);
	}
}

1 <2が成り立つため、出力結果は1になります。

public class Test001 {
    
    
	public static void main(String[] args) {
    
    
		int num = 1<2?1:0;
		System.out.println(num);
		int score = 90;
		System.out.println("本次答题的得分是:"+score);
		String str = score>80? "恭喜您获得优惠券一张":"很遗憾,您没有中奖";
	    System.out.println(str);
	}

}

出力結果は次
のとおりです。この回答のスコアは次のとおりです
。90クーポンを取得しておめでとうございます

6ビット演算子

(1)10進数と2進数の間の変換:

10進数から2進数:ターゲット番号を2で除算します。除算できる場合は、ビットは0として記録され、除算できない場合は、ビットは1として記録され、商を2で除算し続けます。 、商が0になるまで、各ビットの結果を逆の順序で組み合わせると、対応するバイナリになります。

10:1010
17:10001

(2)2進数から10進数:ターゲット番号の最後の側から開始して、ローカル桁の値にローカル桁の重みを掛けます。重みは、2の桁数から1の累乗を引いたものであり、値は各桁のを加算して取得します。結果は対応する小数です。

1010:0 1(2の0の累乗)+ 1 2(2の1の累乗)+ 0 4(2の2の累乗)+ 1 8(2の3の累乗)= 10

(3)ビット演算子

&(ビットごとのAND)、|(ビットごとのOR)、^(ビットごとの排他的論理和)、<<(左シフト)、>>(右シフト)

  • 変数1と変数2:最初に変数1と変数2を2進数に変換し、各桁の桁を1対1で対応させ、比較して判断します。両方が1の場合、ビットは1として記録され、それ以外の場合は0として記録されます。

  • 変数1 |変数2:最初に変数1と変数2を2進数に変換し、比較と判断のために各桁を1対1に対応させます。1が1である限り、ビットは1として記録され、それ以外の場合は0として記録されます。

  • 変数1 ^変数2:最初に変数1と変数2を2進数に変換し、比較と判断のために各桁を1対1に対応させます。同じものを0として記録し、差を1として記録します。

  • 変数1 <<変数2:変数1 x2の2乗

    2 << 3:2 * 8 = 16

  • 変数1 >>変数2:変数1を2で2の累乗で割った値

    2 >> 3:2/8 = 0

7.-オペレーターの優先順位

!>算術演算子>関係演算子>論理演算子(&&> ||)

8.プロセス制御

(1)-それ以外の場合

特定の条件が真であるかどうかを判断し、さまざまな論理演算を実行するために使用されます。

基本構文:

if(判断条件){
    
    
  //条件成立的代码
}else{
    
    
  //条件不成立的代码
}

(2)- 多重 if

int height = 176;
if(height < 173) {
    
    
   System.out.println("M码");
}else if(height > 173 && height <= 178) {
    
    
	System.out.println("L码");
}else {
    
    
	System.out.println("XL码");
}

出力結果は次のとおりです。Lコード

  • 条件の後には
  • それ以外の場合、条件を続けることはできません
  • それ以外の場合は、{}を続けることができます。

(3)-スイッチケース

ifとは異なり、switch-caseは同等の判断しか完了できませんが、判断サイズを完了できません。

2つの値が等しいかどうかを判断する場合は、switch-caseを使用できます.2つの値の大きさを比較する場合、switch-caseは使用できません。

このスイッチは、int、short、byte、char、enumeration、String型をサポートしていますが、ブール型はサポートしていません。

基本的な文法

switch(变量){
    
    
	case1:
		//业务代码
	breakcase2:
		//业务代码
	break;
	...
	default:
		//业务代码
	break;
}
ケースは、変数が特定の値に等しいかどうかを判断し、デフォルトは、すべてのケースが無効な場合に実行されるコードを表します。
  • 1報酬2000
  • 2報酬1000
  • 3報酬500
  • そうでなければ報酬はありません
        int placing = 3;
		/*if(placing ==1 ) {
			System.out.println("奖励2000元");
		}else if(placing == 2) {
			System.out.println("奖励1000元");
		}else if(placing == 3) {
			System.out.println("奖励500元");
		}else {
			System.out.println("没有奖励");
		}*/
		switch(placing) {
    
    
		case 1:
			System.out.println("奖励2000元");
			break;
		case 2:
			System.out.println("奖励1000元");
			break;
		case 3:
			System.out.println("奖励500元");
			break;
		default:
			System.out.println("没有奖励");
			break;
		}
		

参照リンク1
参照リンク2

おすすめ

転載: blog.csdn.net/qq_40220309/article/details/104653214