java基础(一)

java基础(一),第1张

java基础(一) Java基础(一) 八大基本数据类型:

Byte、Short、Int、Long、Float、Double、Char、Boolean

float n0 = 2.7;//错误 2.7F 默认小数double
double n1 = 2.7; //2.7
double n2 = 8.1/3;//2.69999999997
byte b1 = 10;//对
int n2 = 1;
byte b2 = n2;//错误 原因:如果是变量赋值,判断类型
char c1 = b1;//错误 原因:byte不能自动转换 char

自动类型转换:

当java程序在进行赋值或运行时,精度小的类型自动转换为精度大的数据类型。

byte、short 和char 之间不能相互转换。

char–>int–>long–>float–>double

byte–>short–>int–>long–>float–>double

byte、short、char 三者可以计算,在计算时首先转换成int类型

byte b2 = 1;
byte b3 = 2;
short s1 = 1;
short s2 = b2 + s1;//错误,b2 + s1 => int
byte b4 = b2 + b3;//错误,b2 + b3 =>int

boolean 不参与转换

自动提升原则:表达式结果类型自动提升为 *** 作数最大的类型

强制类型转换:加()

强制符号只针对最近的 *** 作数有效,忘完会使用() 提升优先级

Byte和short类型在进行运算时,当作int类型处理。

字符编码:

ASCII:编码表 一个字节表示,一个128个字符,实际上一个字节可以表示256个字符,只用128个。

Unicode:编码表 固定大小的编码 使用两个字节来表示字符,字母和汉字统一都是占两个字节,这样浪费空间。

utf-8:编码表,大小可变的编码 字母使用1个字节,汉字 使用3个字节。

gbk:可以表示汉字,而且范围广,字母使用一个字节,汉字2个字节。

gb2312:可以表示汉字,根本gb312

big5码:繁体中文,台湾,香港。

运算符:+ 、-、*、/、%、++、– 关系运算符:==、!=、<、<=、>、>=、instanceof(检查是否是类对象) 逻辑运算符:

短路与 &&,短路或||,取反!

逻辑与&,逻辑或|,^逻辑异或
1、&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false。

2、&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低。

3、开发中,我们使用的基本是使用与&&,效率高

短路或|| : 条件1||条件2 两个条件只要有一个成立,结果为true,否则为false

逻辑或|: 条件1|条件2 只要有一个条件成立,结果为true

aba&ba&&ba|bA||b!AA^Btruetruetruetruetruetruefalsefalsetruefalsefalsefalsetruetruefalsetruefalsetruefalsefalsetruetruetruetruefalsefalsefalsefalsefalsefalestruefalse

三元运算符:

条件表达式?表达式1:表达式2

标识符的规则和规范:
  1. 由26个英文字母大小写,0-9,_或$
  2. 数字不可以开头。int 3ab//错误
  3. 不可以使用关键字和保留字,但能包含关键字和保留字
  4. Java中严格区分大小写,长度无限制。
  5. 标识符不能包含空格。int a b = 90;//错误
输入:Scanner scanner = new Scanner(System.in); 进制:

二进制:0,1,满2进1,以0b或0B开头。

十进制:0-9,满10进1

八进制:0-7,满8进1,以数字0开头表示

十六进制:0-9以及A(10)-F(15),满16进1,以0x或0X开头表示。此处A-F不区分大小写。

进制的转换:

其他进制转十进制:

二进制转十进制:0b1011=1*2^0+2*2^1+0*2^2+1*2^3=11

八进制转十进制:0234=4*8^0+3*8^1+2*8^2=4+24+128=156

十六进制转十进制:0x23A=10*1+3*16+2*16^2=570

十进制转其他:

十进制转二进制:该数不断除以2 ,直到商为0 为止。然后将每步的余数倒着写。34=0B00100010(一个字节8位,不够8位前面补0)

十进制转八进制:该数不断除以8 ,直到商为0 为止。然后将每步的余数倒着写。

131=0203

十进制转十六进制:该数不断除以16 ,直到商为0 为止。然后将每步的余数倒着写。

237=0xED

二进制转八进制:从低位开始三个为一组 ,转换成对应的八进制数即可。

0b11 010 101=> 0325

二进制转十六进制:从低位开始四个为一组 ,转换成对应的十六进制数即可。

0b11010101=>0xD5

八进制转换成二进制:八进制数的每一位转换成对应的一个三位的二进制数。

0237=0b10011111

十六进制转换成二进制:十六 进制数的每一位转换成对应的一个四位的二进制数。

0x2(0010) 3(0011) B(1011) =0b001000111011

位运算:>>(算术右移)、<<(算术左移) 、>>>(逻辑右移)

1、算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位

2、算术左移<<:符号位不变,地位补0

3、>>>逻辑右移也叫无符号右移,运算规则是:地位溢出,高位补0

4、特别说明:没有<<<符号

4<<3//4*2*2*2 15>>2//15/2/2

原码、反码补码(important):

1、二进制的最高位是符号位:0表示正数,1表示负数。(口诀:0->0 ,1->-)

2、正数的原码、反码、补码都一样。(三码合一)

3、负数的反码=它原码符号位不变其他位取反(0->1,1->0)

4、负数的补码=它的反码+1,负数的反码=负数的补码-1.

5、0的反码、补码都是0。

6、Java没有无符号数,换言之,Java中的数都是有符号的。

7、在计算机运算的时候,都是以补码的方式来运算的。

8、当我们看到运算结果的时候,要看它的原码。

API文档:www.matools.com

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5695438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存