>  기사  >  Java  >  Java의 연산 방식 및 기본 데이터 유형 분석(컬렉션)

Java의 연산 방식 및 기본 데이터 유형 분석(컬렉션)

黄舟
黄舟원래의
2017-07-17 10:02:011341검색

아래 편집기에서는 Java의 기본 데이터 유형 및 작업 방법에 대한 기사를 제공합니다(꼭 읽어야 할 기사). 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집자를 따라 와서 살펴봅시다

Encoding

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

서유럽 코드 테이블---ISO-8859-1---0-255- --1바이트

gb2312----0-65535---gbk---2바이트

유니코드 인코딩 시스템---utf-8---3바이트

in f

bit 바이트 1Byte = 8bit 1KB = 1024B MB GB TB PB --- 컴퓨터의 저장 단위

상수

정수 상수 --- 모든 정수 3,99,107

소수 상수 --- 모든 소수 3.5 100.9

문자 상수- --문자, 숫자 또는 기호 'a' '=' ' '

문자열 상수를 식별하려면 작은따옴표를 사용하십시오---하나 이상의 문자를 식별하려면 큰따옴표를 사용하십시오 "abc " "234" "q2" " "

부울 상수---논리값을 나타내는 데 사용---true/false

null 상수---null

5-정수, 5.0-십진수 '5'-문자" 5" - 문자열 '5.0' - 잘못된 "5.0" 쓰기 - 문자열

Base

바이너리: 전체 바이너리를 하나로, 0~1 1+1=10 0b10011 0b0011, JDK1.7부터 시작하여 0b로 시작하여 2진수로 표현된 숫자

8진수: 8의 1, 0~7, 7+1=10 0 06 015

Decimal: 10의 1, 0 ~9

16진수: 16진수로 시작해야 합니다. , 0~9,, A~F, 9+1=A f+1=10의 시작은 0x가 필요합니다. 0x5 0xad

16진법 변환

DecimalConversion을 2진수로: 계속해서 2로 나누어서

2진수를 10진수로 변환: 낮은 차수부터 시작하여 2의 2승을 곱한 후 합산합니다.

2진수를 8진수로 변환: 2차수부터 시작 가장 낮은 순서로 세 자리를 하나의 그룹으로 나누고 나머지 세 자리에 0을 더하여 8진수를 생성합니다.

8진수를 2진수로 변환: 1은 3이 됩니다. - --8진수 하나는 2진수 3개를 생성합니다.

2진수를 16진수로 변환: 4를 1로 변환하는 과정

Variable

System.out.println(i);

int i = 5;---아니요---변수는

int i;

를 사용하기 전에 먼저 선언해야 합니다. System.out.println(i) --- 아니요 ---- 사용하기 전에 변수를 초기화해야 합니다

데이터 유형

기본 데이터 유형

숫자 유형

정수 유형

byte- --바이트 유형---1바이트--- -2^7~2^7-1 --- -128~127

byte b = 5 byte 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 정수입니다. --- -2^63~2^63-1--- 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;

참조 데이터 유형

class---클래스 인터페이스---인터페이스 배열---[]

데이터 유형 변환

숨겨진 수식 변환/자동 유형 변환

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: 정수는 소수로 변환될 수 있지만 정밀도 손실이 발생할 수 있습니다. 발생

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

Rule 3: 문자형을 정수로 변환할 수 있습니다

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

char형의 변수 c가 정의되어 있습니다. 저장된 데이터는 문자이므로 값을 할당할 때 특정 문자 인코딩을 확인할 필요가 없습니다. 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--二进制

Operators

산술 연산자

+덧셈-뺄셈*곱셈/나누기% 모듈로++자동 증가--자동 감소 +문자열 연결

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.