黑马程序员 第二天笔记
<a href="http://www.itheima.com" target="blank">java培训</a>
- 关键字
A.Java中被赋予特殊意义的单词:每一个关键字都有其特定的含义,是java规定好的
B.全部由小写字母组成
2.标识符
A.在java中自己定义的内容 ,称为标识符
B. 标识符的命名规则:
1) 标识符由数字0-9,字母a-z,A-Z,下划线_,美元符号$组成
2) 数字不能开头
3) 不能是关键字
C. 标识符的命名规则(驼峰命名法)
1)类的名字: 要求第一个字母大写,后面的字母小写,第二个单词首字母大写
举例: JinYanLong Person
2)方法的名字:要求首字母小写,第二个单词首字母大写
距离:beiJingShi
3)变量的名字: 全部小写
4)常量的名字: 全部大写
3.常量
A.常量是程序中固定不变的内容
B. 常量的分类
1) 整数常量:所有整数 123 0 -12
2) 小数常量:1.1 2.2 3.3
3) 字符常量:使用单引号引起来的,称为字符常量’’,字符常量只能有一个字符。
注:‘‘中可以是空格,但是不能神农也不写
4) 字符串常量:使用双引号引起来的,称为字符串常量,字符串常量不限制字符个数。
5) 布尔常量:只有两个数值,true和false。都是关键字。
true:条件成立,表示真。
false:条件失败,表示假
6)空常量:只有一个内容 null 也是个关键字,后面的引用数据类型中解释
4.进制
A.进制是人们用于记数的方式,十进制 逢十进一
1) 二进制: 逢二进一 0 1
2)八进制: 逢八进一 0-7
3)十进制: 逢十进一 0-9
4)十六进制 : 逢十六进一 0-9 A B C D E F
B.二进制的由来
最早起的计算机,电信号 (开关)
后来用数字,表示电信号的开关 表示的数字只有 0 和 1
8个进制位 表示1个字节Byte 1个8位
1024个字节= 1千字节 KB
由于二进制的数字位过长,而且不好记忆
3个二进制表示1位 最大值7 八进制的诞生
4个二进制表示1位 最大值F 十六进制的诞生
进制示意图
C.代码实现:
结果:
5.进制转换
A. 十进制转成二进制
转换方法:除以基数,获取余数 除2获取余数
6 二进制是 110
7 二进制是 111
15 二进制是 1111
B. 二进制转成十进制
转换方法:每一个二进制数位,乘以2的次幂,有1位的数据相加
1001101 从最低位开始计算,每一个位乘以2的次幂
C. 二进制转成八进制
将三个二进制为一组,进行转换,3位二进制转成十进制
110011001
D. 八进制转成二进制
将八进制的每一位,转成二进制即可,不足三位的补0
125
E. 二进制转成十六进制
将四个二进制为一组,转成十进制
1100011100101
F. 十六进制转成二进制
将十六进制中的每一位,转成二进制,不足4位补0
23D4
G. 十六进制,八进制,转成二进制,在转成十进制
进制转换示意图
6.使用8421快速转换方法
32 16 8 4 2 1
56 1 1 1 0 0 0
请问: 8个二进制位 都是1十进制是几
11111111 255
7个二进制位 都是1十进制是几
1111111 127
16个进制位 都是1十进制是几
65535
记住三个数字 255 127 65535,后面的数据类型有关系
7.原码 反码 补码
一个整数的二进制表现形式,码
人的眼睛看到的数据,全部都是十进制,都是原码
计算机的底层运算都是采用补码运算
正数表现形式,采用1个字节来表示
1 10000001
正数和负数对于计算来讲,数的最高位是什么,如果是0,正数,如果是1负数
正数1:
原码 : 符号位 数值位
0 0000001
反码: 0 0000001
补码: 0 0000001
结论 正数的原,反,补是一致的
负数1:
符号位 数值位
源码: 1 0000001
反码: 1 1111110
补码: 1 1111111
结论:负数原 符号位是1 ,数值位转成二进制
负数反 符号位不变,数值位取反 1变0 0变1
负数补 符号位不变,反码数值位+1
-1 10000001 11111110 11111111
小结:正数原反补码相同,负数 取反+1 符号不变
小练习:
已知某数X的原码为0b10110100,试求X的补码和反码。
已知某数X的补码0b11101110,试求其原码。
10110100 是一原码,计算出反码和补码
原码: 符号位 数值位
1 0110100
反码: 1 1001011
补码: 1 1001100
11101110 是一补码,计算出反码和原码
补码: 符号位 数值位
1 1101110
反码: 1 1101101
原码: 1 0010010
8.变量
变量和常量:常量固定不变,变量的数值可以变化的
变量其实就是存储一个数值,但是变量每次存储的数据可以变化,方便计算
先期,可以将变量理解为,数学中的未知数
计算机中,是需要计算的,运行的程序都会在内存
定义变量的格式:记住,记死
数据类型 变量名 = 赋值;
数据类型:内存中区域存储的数据是什么类型
变量名(标识符):对内存区域起个名
赋值,是将数据存储到这个区域中
变量在内存中示意图
9.数据类型
JAVA是一个强制数据类型的语言
计算机中数据,进行分类,分成两个类别
基本数据类型:
数值型:
整数
字节型,短整型 , 整型,长整型
浮点
单精度,双精度
字符型: 单引号
布尔型: 真假值
引用数据类型
类
数组
接口
整数:
字节型 byte 内存中占1个字节,1个8位,8个二进制位
取值范围 1个字节 -128 ~ 127
短整型 short 内存中占2个字节,2个8位,16个二进制位
取值范围 2个字节 -32768 ~ 32767
整型 int 内存中占4个字节,4个8为,32个二进制位
java中所有的整数,默认为int类型
取值范围4个字节 -2147483648 ~ 2147483647
长整型 long 内存中占8个字节,8个8位 64个二进制位
取值范围8个字节
byte short int long 4个都是关键字,表示整数类型的关键字
1 2 4 8
浮点:
单精度:float 内存中占4个字节 32个二进制位
双精度:double 内存中占8个字节 64个二进制位
注:double是java中所有浮点类型的默认数据类型
Float>long
字符型:
Char :只能存一个符号,内存中占2个字节 16个二进制位
Java中的char类型,采用unicode进行编码,一个汉字在内存中占两个字节
布尔型:
只有两个值 true 和flase,1个字节
数据类型代码表示:
结果:
10.定义 和使用变量的注意事项
A.变量的作用域问题
定义的变量,只在定义的一对大括号之间有效,出去了就无效
B.定义变量,必须赋使用值,不赋值不能
C.建议在一行代码上,定义1个变量
11数据类型之间的转换
A.布尔类型不能转换成其他数据类型
B.默认转换
Byte,short,char-int-long-float-double
默认转换示意图
C.运算中的自动转换
JAVA中,计算数据的话,要求计算的数据必须是同一个数据类型
如果数据类型不同,则发生类型转换,原则是:数据类型小的转换为数据类型大的(其中大小指的是取值范围,字节数)。
1) 自动转换:不需要程序人员参与,转换原则:
如果计算中有double类型,结果肯定是double类型 。举例: 1+3-1+1.1+5
如果计算中有flaot类型,没有double类型,结果是float类型
如果计算中没有浮点,如果有long型,结果就是long型
代码演示:
图形解释
2)强制转换:取值范围大的,转成取值范围小的
必须程序人员手动参与,JVM不会进行强转
手动转标准格式: 目标类型 变量 = (目标类型)被转换的数据
代码演示一:
结果:
代码演示2:
图形解释
代码演示3:
结果:
12. 数字和字符,字符串的运算
System.out.println('a');
System.out.println('a'+1); 98
System.out.println("hello"+'a'+1); helloa1
任何数据类型和""字符串做+运算,结果都是字符串
""+ 任何类型
在字符串中 + 不是加法运算,连接符号
代码演示:
结果:
13. ASCII编码表
美国标准信息交换码
能不能让计算机直接识别人类的语言呢
a-z A-Z 0-9 符号
因此,既然计算机识别01的二进制
让生活中的一个文字,对应1个十进制数,计算机自己去转二进制
规定:
a 97
b 98