原码、反码、补码
分析 byte b = (byte)150;
这个b是多少?
int类型的4个字节的150的二进制码是什么?
00000000 00000000 00000000 10010110
将以上的int类型强制类型转为1个字节的byte,最终在计算机中的二进制码是:
10010110
千万要注意:计算机永远存储的都是二进制补码形式。也就是说上面
10010110 这个是一个二进制补码形式,你可以采用逆推导的方式推算出
这个二进制补码对应的原码是啥!!!!!!
10010110 ---> 二进制补码形式
10010101 ---> 二进制反码形式
11101010 ---> 二进制原码形式
public class IntTest05{
public static void main(String[] args){
// 编译报错:因为150已经超出了byte取值范围,不能直接赋值,需要强转
//byte b = 150;
byte b = (byte)150;
// 这个结果会输出多少呢?
System.out.println(b); // -106
}
}
变量
什么是变量:
变量其实就是内存中存储数据的最基本的单元;变量就是一个存储数据的盒子。
局部变量:在方法体中声明的变量。(当方法结束,变量占用的内存空间释放)
成员变量:在方法体外(类体内)声明的变量。
标识符
什么是标识符?
凡是程序员自己有权利命名的单词都是标识符。
标识符:
类名、方法名、常量名、接口名、变量名...
标识符命名规则:
1、标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成。
2、标识符不能以数字开头。
3、关键字不能做标识符。
4、标识符严格区分大小写的。
5、标识符理论上是没有长度限制的。
标识符命名规范:
1、见名知义。
2、遵循驼峰原则。
3、类名、接口名遵循大驼峰原则
4、变量名、方法名遵循小驼峰原则
5、常量名全部大写,单词与单词之间采用下划线衔接。
数据类型
数据类型的作用:
java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型。
规则:
当这个整数字面量没有超过byte的取值范围,那么这个整数型字面量可以直接赋值给byte类型的变量。
基本数据类型
整数型:byte,short,int,long
浮点型:float,double
布尔型:boolean:只有两个值,true和false
字符型:char:在Java中规定字符型字面量必须使用单引号括起来,属于文字。
1 byte=8 bit 【1个字节 = 8个比特位】 1个比特位表示一个二进制位。
| 类型描述 | 类型 | 占用存储空间 | 表示范围 |
|---|---|---|---|
| 字节型 | byte | 1字节 | -27 ~ 27-1(-128~127) |
| 短整型 | short | 2字节 | -215 ~ 215-1(-32768~32767) |
| 整型 | int | 4字节 | -231 ~ 232-1(约21亿) |
| 长整型 | long | 8字节 | -263 ~ 263-1 |
| 单精度浮点型 | float | 4字节 | -3.40 E+38 ~ +3.40 E+38 |
| 双精度浮点型 | double | 8字节 | -1.79 E+308 ~ +1.79 E+308 |
| 布尔型 | boolean | 1字节 | true/false |
| 字符型 | char | 2字节 | 0 ~ 216-1(0~65535) |
引用数据类型
字符串型String属于引用数据类型。在Java中除了基本数据类型之外,剩下的都是引用数据类型。
进制转换
二进制和十进制之间的转换
控制语句
选择语句
if、if else
switch
循环语句
for
while
do while
转向语句
break
continue
返回语句
return
乱码问题
出现乱码的根本原因:编码和解码的时候没有使用同一套字符编码。
关于代码编写位置
1、一个java源文件中可以定义多个class。
2、public的类不是必须的,可以没有。
3、在源文件中只要有一个class的定义,那么必然会对应生成一个class文件。
4、public的类可以没有,但如果有的话,public修饰的类名必须和源文件保持一致。
5、public的类有也只能有1个。

浙公网安备 33010602011771号