传智播客java基础班听客笔记
/*
一、进制转换
二进制: 以0b/0B开头,或以b/B结尾
八进制: 以数字0开头,或以o/O结尾
十进制: 以0d/0D开头,或以d/D结尾(通常忽略不写)
十六进制:以0x/0X开头,或以x/X结尾
1、任意进制数据到十进制的转换
方法:每位乘以基的位权次幂,然后全部相加。
a、二进制——>十进制
0b0110
=0*2^3+1*2^2+1*2^1+0*2^0
=0+4+2+0
=6
b、八进制——>十进制
0123
=1*8^2+2*8^1+3*8^0
=64+16+3
=83
c、十六进制——>十进制
0x2F1
=2*16^2+F*16^1+1*16^0
=512+240+1
=753
2、十进制数据到任意进制数据的转换
方法:除基(进制)取余,直到商为0,余数反转。
a、十进制到十进制转化
12345—————————————>12345
12345 / 10 = 1234....5
1234 / 10 = 123.....4
123 / 10 = 12......3
12 / 10 = 1.......2
1 / 10 = 0.......1
b、二进制到十进制转换
52————————————>110100
52 / 2 = 26...0
26 / 2 = 13...0
13 / 2 = 6....1
6 / 2 = 3....0
3 / 2 = 1....1
1 / 2 = 0....1
c、八进制到十进制转换
d、十六进制到十进制转换
*/
/*
二、有符号数据的表示法(正负符号)
原码,反码,补码
1、原码:就是二进制定点表示法,即最高位为符号位。
“0”表示正数,“1”表示负数,其余位表示数值的大小。
符号位 数值位
+7 0 000 0111
-7 1 000 0111
2、反码:正数的反码与其原码相同;
负数的反码是对其原码逐位取反,但符号位除外。
符号位 数值位
+7 0 000 0111
-7 1 111 1000
3、补码:正数的补码与其原码相同;
负数的补码是其反码加1。
符号位 数值位
+7 0 000 0111
-7 1 111 1001
*/
/*
三、变量
1、组成变量的规则:
a、需要给内存空间加一个限定,指明要存储的数据类型。
b、给该变量(内存空间)起一个名字。
命名规则:必须以下划线或字母开头,不能以数字开头。不能以关键字命名。
c、给变量赋值。
2、定义变量需要注意的问题
a、作用域
变量定义在哪一级大括号中,变量的作用域,就送从变量定义语句起,到这级大括号结束。
相同作用域中,不能定义重名的变量。
b、定义变量,尽量要初始化。
c、不建议一行上定义多个变量。
*/
/*
四、数据类型
1、数据类型分类:
a、基本数据类型。
b、引用数据类型:数组、类、接口。
2、基本数据类型讲解
a、 数值型
byte(8bit),short(16bit),int(32bit),long(64bit)
byte:-128~127
浮点型
float(32bit),double(64bit)
b、字符型
char(16bit) 0~2^16-1=65535
c、布尔型
boolean(8bit)
*/
/*
五、数据类型转换
1、隐式转换
a、boolean类型不能转换成其他的数据类型。
b、转换顺序byte、short、char->int->long->float->double
c、byte、short、char之间不转换,他们参与运算首先转换成int型。
2、强制类型转换
格式:目标数据类型 变量名 = (目标数据类型)(待转换的数据)
注意事项:尽量不要使用强制类型转换,因为可能存在损失精度的问题。
3、事例
byte b1=3;
byte b2=4;
byte b3=b1+b2;
//错误:可能损失精度
//原因:byte、short、char在运算时,首先提升数据类型为int,计算结果也是int类型的。
byte b4=3+4;
//正确
//原因:常量优化机制,编译器会对其做优化处理,先计算出3和4相加的值,然后判断其返回值是否在byte范围内如果在就不报错。
//Java语言中的char变量可以存储一个汉字吗?
//答:可以。因为char站两个字符,汉字编码也是两个字符。
*/
/*
六、异类变量加法运算
1、字符加法
ASCII
0:48
a:97
A:60
2、字符串加法
a、任何数与字符串相加,得到的都是一个 新的 字符串
b、“+”在运算里表示的是字符串连接符。
eg:
"5+5="+5+5---->"5+5=55"
5+5+"=5+5"---->"10=5+5"
*/
/*
七、运算符
算数运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三目运算符
1、算数运算符
+,-,*,/,%,++,--
a、'/'除法符号
两个整数相除,得到的结果还是整数,取其商。
如果想获得浮点数(小数),请用浮点类型变量。
eg: int a=7,b=3;
a/b=2;
b、'%'取余运算符
获取的是除法的余数,结果的正负与左边的数一致。
eg: -3%4=-3;
3%-4=3;
c、++、--自增(减)运算符
++、--在变量前,变量先自增(减),再参与运算。
++、--在变量后,变量先参与运算,再自增(减)。
eg:
int x=4;
int y=x++;
int z=(x++);
//结果:x=6,y=4,z=5
//疑问:z=(x++)中,小括号内优先级不是最高么,先运行括弧内的运算x++,再赋值给z么?
2、赋值运算符
=,+=,-=,*=,/=,%=
注意:变量的左边(被赋值的一方)必须是变量,不能是常量。
复合赋值运算符(+=等),隐含了强制转换。
eg:
byte a=1;
a = a+1;//错误,可能损失精度。
a += 1;//正确。
3、关系运算符
==、!=、<、>、<=、>=、instanceof
*/- class InToSystemDemo
- {
- public static void main(String[] args)
- {
- System.out.println("Hello World!");
- }
- public static void sop(Objemect obj){
- System.out.println(obj);
- }
- }
- class DataTypeDemo
- {
- public static void main(String[] args){
- byte a = -128;
- //报错原因:值过大,编译系统默认检测int类型取值范围。
- long l = 10000000000;
- long l2 = 10000000000L;
- //报错原因
- float f = 3.1415;
- float f2 = 3.1415f;
- double d = 3.1415;
- }
- }
复制代码
|
|