黑马程序员技术交流社区
标题: Java基础学习第二天笔记总结 [打印本页]
作者: lizihanglove 时间: 2016-6-22 00:43
标题: Java基础学习第二天笔记总结
本帖最后由 lizihanglove 于 2016-6-22 00:43 编辑
第二天知识总结,有遗漏或不足之处、请指正!
Day2
一、常量
1、 字面值常量
A、 字符串常量:用双引号包含的内容
B、 整数常量:整数
C、 小数常量:小数
D、 字符常量:单引号,包含单个字符(数字、字母、符号)
E、 布尔常量:只能为true 或false
F、 空常量:null
2、 自定义常量
二、进制
进制是一种规定的进位方法。
1、 十进制
2、 二进制
以0b(可大小写)开头
1字节(byte) = 8位(bit)
1k = 1024 byte
1m = 1024 k
1g = 1024 m
1t = 1024g
3、 八进制
每三个二进制表示一个八进制,由0~7组成、以0开头
4、 十六进制
每四个二进制表示一个十六进制,由0~9及a~f组成,以0x(可大小写)开头
注意:进制越大,长度越短
5、 进制的转换
12345=1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
系数:数位上的值
基数:X进制,则基数是X
权次幂:自右向左,从一开始编号,对应得到权。
A、其他进制转换成十进制
把系数*基数的权次幂相加即可:如ob111 = 1*2^2+1*2^1+1*2^0=7
B、十进制转换为其他进制
除基(目标进制的基)倒取余数
C、任意进制转任意进制,了解8421码
6、原码反码补码
原码---------(取反)---------反码------------(+1)------------补码
补码---------(-1)------反码--------------(取反)--------------原码
三、变量
变量:在程序中,在某个范围内,其值可以改变的量。
1、 变量定义格式:
数据类型 变量名(合法标识符) = 变量值;
2、 数据类型:
(1) 基本数据类型(8种)
A、 整数型
Byte、1字节
short、2字节
int、4字节(系统默认的整数型)
long、8字节
注意:使用long类型的值时,应该使用大写的L以区分阿拉伯数字1与小写字母l.
B、 浮点型
Float、4字节,使用F(或f)标识。
Double、8字节(系统默认的浮点型)
C、 字符型
Char、2字节
D、 布尔型
Boolean
理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
注意:使用long与float时,必须使用L(l)、F(f)等标识区分,否则出错。
(2) 引用数据类型
3、 注意事项:
A、 同一作用域不能定义同名变量;
B、 局部变量先赋值再使用
4、 数据类型转换
A、 隐式转换(自动)
Int x = 3;
Byte b = 4;
x = x + b;
x的结果为7。
注意:小的数据类型向大的数据类型转换时为自动数据类型转换。
B、 显示转换(强制)
Int x = 3;
Byte b = 4;
b= x + b;
编译出现错误,会损失精度。
正常情况下改为b=(byte)(x + b);即可编译通过。
注意:大的数据类型向小的数据类型转换时为强制数据类型转换。
C、 越界转换:
byte b = 126;
b =(byte)(b + 4);
b的结果为-126.运算时,通常会使用补码。
5、 变量相加与常量相加的区别:(面试题)
Byte b1 = 3;
Byte b2 = 4
Byte b3 = b1 +b2
此时,编译出错。Byte在运算时会自动提升为int类型。
Byte b = 3 + 4;
此时不会出错,这是由于常量优化机制
6、 比较float与long取值范围的比较:float比long的取值范围要大.
7、 基本数据类型范围提升如下:
Byte>short>char>int>long>float>double
8、 字符和字符串参与运算:
A、 字符:’a’、’a’+1、(char)(‘a’+1)。char +int/long/float/double时会自动类型转换
B、 字符串:”hello”+’a’+1、”5+5=”+5+5、”5+5=”+(5+5)。
注意:任何数据类型与字符串相加时会成为新的字符串。
9、 ASCII码中char字符与int(0~65535)类型一一对应。
四、运算符
1、 分类:算术运算符、赋值运算符、
2、 算数运算符
A、+:作用有三个,分别是正号、加号、字符串连接符。
B 、-:减号
C、*:乘号
D、/:获得商
E、%:获得余数,结果的正负号只与%的左边有关,与右边无关。
F、自加(++)与自减(--):
若单独使用,则a++与++a都是指a = a + 1;若混合(参与其他运算)使用,则a++的操作是先取出其原值,再将其自加1;++a是先自加1,再取出其值参与其他操作。
特例:int a = 1;
a = a++;
System.out.prinln(a);
结果为1.
面试题:Byte b =10;
b++; //对,++是运算符,会强转。
b=b+1; //错,运算时,类型会自动提升。
3、 赋值运算符(=):将右常量赋给左变量。
注意:一定是左边变量,右边值。
+=:功能与++相似。
面试题:
short s = 1;
s = s + 1;
错误:数据类型自动提升为int,与s的数据类型有冲突。
short s = 1;
s+=s;
对:+=是运算符,强制类型转换。
4、 关系运算符:
A、==:==是比较运算符,区别于=。
B、!=:
C、>:
D、>=:
E、<:
F、<=:
注意:关系运算符运算结果为true 或者 false。
作者: Insomnia! 时间: 2016-6-28 22:40
总结的很到位!
作者: Insomnia! 时间: 2016-6-28 22:42
总结的很到位!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |