ホームページ  >  記事  >  Java  >  Javaの演算方法と基本データ型の解析(コレクション)

Javaの演算方法と基本データ型の解析(コレクション)

黄舟
黄舟オリジナル
2017-07-17 10:02:011294ブラウズ

以下のエディターでは、Java の基本的なデータ型と操作方法に関する記事 (必読の記事) をお届けします。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう

エンコーディング

ASCII--0~127 65-A 97-a

西欧コード表---ISO-8859-1---0-255- --1バイト

gb2312----0-65535---gbk---2バイト

Unicodeエンコーディングシステム---utf-8---3バイト

in f

bit Byte 1Byte = 8bit 1KB = 1024B MB GB TB PB --- コンピューター内のストレージユニット

定数

整数定数 --- すべての整数 3,99,107

10 進数定数 --- すべて 10 進数 3.5 100.9

文字定数- -- 文字、数字、または記号を識別するには一重引用符を使用します。 'a' '=' ' '

文字列定数 --- 1 つ以上の文字を識別するには二重引用符を使用します。 "abc " "234" "q2" " "

ブール定数---論理値を表すために使用---true/false

null定数---null

5-整数、5.0-10進数の「5」-文字" 5" - 文字列 '5.0' - 「5.0」の誤った書き込み - 文字列

ベース

バイナリ: 完全なバイナリを 1 つにまとめたもの、0~1 1+1=10 0b10011 0b0011、JDK1.7 以降、を識別するために 0b で始めることが許可されています。 2 進数としての数値

8 進数: 8 から 1、0~7、7+1=10 0 06 015 で始まる必要があります

10 進数: 10 から 1、0 ~9

16 進数: 完全な 16 進数, 0~9,, A~F, 9+1=A f+1=10 は先頭に 0x が必要です 0x5 0xad

16進数の変換

10進数2進数への変換: 2で割り続けて取得します余りを返し、余りを反転します

2進数を10進数に変換: 下位から順に、2の2乗を乗じて合計します

2進数を8進数に変換: から始めます最低位から 3 桁ごとにグループに分け、残りの 3 桁に 0 を加えて 8 進数を生成します

8 進数を 2 進数に変換します: 1 つが 3 になります - -- 1 つの 8 進数から 3 つの 2 進数が生成されます。

2進数から16進数への変換: 4対1のプロセス

変数

System.out.println(i);

int i = 5;---いいえ---変数は使用する前に最初に宣言する必要があります

int i;

System.out.println(i); --- いいえ ---- 変数は使用前に初期化する必要があります

データ型

基本データ型

数値型

整数型

byte- --バイトタイプ---1バイト--- -2^7~2^7-1 --- -128~127

バイトb = 5;バイトb2 = -128;

short---short- --2 バイト --- -2^15~2^15-1 --- -32768~32767

short s = 54 ; short s = -900;

int---整数---4 バイト- -- -2^31~2^31-1

int i = 100000;

int j = 100_000_000;- - JDK1.7 以降で許可されます。これらはコンパイル中に自動的に無視されます_ -> int j = 100000000;

int i = 00001111; --- 8 進数

Java のデフォルトの整数型は int

long --- long integer ---8 バイト--- -2^63~2^63-1--- この数値がlong型数値であることを示すためにLで終わります

long l = 3L;

浮動小数点型

float--- 単精度- --4 バイト---f

float f = 3.2f;で終わる必要があります

double---倍精度---8 バイト

Java のデフォルトの 10 進数型は double 型です

double d = 3.5;

double d = 4.6D;---はい

double d = 3.9e4; //10進法での科学表記です

double d = 0x3p2; //16進数での科学表記です 数え方-> 12

Character

char---2バイト---0 ~65535

char c = 'a';

char c = '中';

Boolean

boolean---true/false

boolean b = false;

参照データ型

クラス---クラスインターフェース---インターフェース配列---[]

データ型変換

hidden数式変換/自動型変換

byte b = 100;
int i = b;
long l = 63;---可以---当整数的值在int类型的范围内的时候,可以不用添加L这个结尾

ルール 1: 小さな型は大きな型に変換できます---byte->short->int->long float->double

int i = 5;
float f = i;
long l = 6;
float f = l;

ルール 2: 整数は 10 進数に変換できますが、精度が失われる可能性があります。発生します

char c = ‘a';
int i = c;

ルール3: 文字型は整数に変換できます

short s = ‘a';---可以
char c = 100;---可以
char c = ‘a';
short s = c;---不可以

char型の変数cが定義されており、値を代入する際に特定の文字エンコーディングを確認する必要はありません。 short 型の場合、short は文字に対応するエンコーディングが short 型の値の範囲内にあるかどうかを確認する必要があります。この時点では、short 型の値の範囲が完全ではないため、文字に対応する具体的なエンコーディングを決定することはできません。 char型と重複する場合は、範囲を超えないように代入できません。

short s = 97;
char c = s;--不可以

明示的な変換/キャスト

long l = 54;
int i = (int)l;
double d = 3.5;
int i = (int)d;---小数强转成整数的时候,小数部分直接舍弃
double类型不能精确存储小数
Hexadecimal--十六进制
Decimal--十进制
Octal---八进制
Binary--二进制

演算子

算術演算子

+Add-Subtract*Multiplication/Division% Modulo++Auto-increment--Auto-decrement +String concaテネーション

int i = 5210 / 1000 * 1000;--->i = 5000;

注:

1. 整数演算が完了した後の結果は整数でなければなりません

2. 整数除以0的时候,编译通过,运行报错---ArimeticException---算术异常

3. 小数除以0的结果是Infinity

4. 0/0.0的结果是NaN---Not a Number---非数字

5. byte/short类型在运算的时候会自动提升为int类型

%取余运算
-5%3=-2 -4%3=-1 -3%7=-3
5%-3=2 7%-2=1 2%-8=2
-5%-3=-2 -9%-3=0

对于负数的取余,先按照正数的取余运算,看取余符号左边的数字的符号,如果左边是负数,那么结果就是负数

5%1.2=0.2 6%1.3=0.8
4.3%1.4=0.1
++/--

对于++在原来的基础上自增1

int i = 5;
int j = ++i;---> i自增1,然后将i的值赋值给j---先自增,再运算
int j = i++;--->先获取i的值5,i自增变成6,然后将获取的值5赋值给j---先运算,再自增
int i = 3;
int j = ++i * 2;-> j = 8;
int j = i++ * 2;->j = 6
int i = 6;
int j = i++ + ++i;->i = 8; j = 14;
int j = ++i + i++;->i = 8; j = 14
byte b = 5;
b++;---JVM在底层会对结果进行强制类型转换,将结果再转换为byte类型
char c = ‘a';
System.out.println(c + 4);--可以
char c2 = ‘d';
System.out.println(c + c2);---提升为int类型之后再进行运算
+ 字符串拼接运算
“a” + “b”---> “ab”
“a” + 3---> “a3”
“a” + true-> “atrue”
2 + 4 + “f”-> “6f”
“f” + 2 + 4-> “f24”

赋值运算符

= += -= *= /= %= &= |= ^= <<= >>= >>>= ~=
int i= 5;
i += 3; -> i = i + 3; -> i = 8;
i -= 2;-> i = i - 2;-> i = 3;
int j;
j += 4;---不行
int i = 5;
i += i -= i *= 5;--> i = -15;
i = 5 + ( 5 - (5 * 5)) ;
i += i -= i *= ++i;--->i = -20;
i += i*= i-= (i++ + --i);---> i = -20;
i = 5 + ( 5 * (5 - (5 + 5)));
byte b = 5;
b += 3;---可以
byte b = 125;
b += 3;---可以--- -128

比较/关系运算符

==相等 !=不等 > < >= <= instanceof
3 == 4;-> false
instanceof---判断对象与类的关系的--只能用于引用数据类型
String s = “abd”;
System.out.println(s instanceof String);---true
System.out.println(“def” instanceof String);---true

逻辑运算符

用于运算逻辑值

&与 |或 !非 ^异或 &&短路与 ||短路或
true&true=true true&false=false false&true=false false&false=false
true|true=true true|false=true false|true=true false|false=false
!true=false !false=true
true^true=false true^false=true false^true=true false^false=false

对于&&,如果前一个表达式的值为false,那么就能确定整个表达式的值为false,&&后边的运算就不再进行了

三元/三目/条件运算符

逻辑值?表达式1:表达式2

如果逻辑值为true,执行表达式1;反之执行表达式2

int i = 5, j = 7;
i > j ? System.out.println(i): System.out.println(j);---不行!三元运算符运算完成之后必须有结果!

double d = i > j ? i * 2.5 : j;---两个表达式的返回值类型要么一致,要么相容

从控制台获取数据

import java.util.Scanner; //写在package之下,class 之上
Scanner s = new Scanner(System.in);
int i = s.nextInt();
double d = s.nextDouble();
String str = s.nextLine();
String str2 = s.next();

以上がJavaの演算方法と基本データ型の解析(コレクション)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。