-
1、进制
进制主要有二进制,八进制,十进制,十六进制,进制之间可以相互转换,下面列出二进制与十进制的转换,其他转换方式同理。
- 二进制转十进制
把二进制数按权展开、相加即得十进制数(原理较为空洞,下面举例说明)
例:二进制1011转成十进制
1 0 1 1
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 11 - 十进制转二进制
例:十进制11转成二进制
说明:
1、在计算机中,八进制和十六进制是用于辅助二进制;3位二进制数表示1位八进制数,4位二进制数表示1位八进制数,转换效率高;
2、在Java语言中,八进制几乎不会使用,但是十六进制很常用,例如:表示颜色,表示内存地址
2、整数在内存中的存储
- 正整数
直接将其转换为二进制进行存储,正数的补码等于其原码 - 负整数
取原码(负数绝对值转换为二进制) --> 求反码(0变1,1变0)--> 求补码(+1)
以补码形式存储
例如:整数-7在内存中的存储如下:
在生活中的整数都默认属于int类型,占4个字节,所以有32位
3、小数在内存中的存储(还没有深入了解学习)
4、关于二进制的重要结论
- 偶数二进制最低位一定为0,奇数二进制最低位一定为1
- 正数二进制最高位一定为0,负数二进制最高位一定为1
5、关键字和保留字
- 关键字:编程语言目前已经使用,并且具有一定特殊意义的单词
- 保留字:编程语言目前还未使用,但是后期可能会使用到的单词
6、标识符
- 概念(作用):专门给类,方法,变量,常量,包名命名的规则
- 标识符命名规则(规则可看作生活中的法律,必须遵守)
1、标识符由字母,数字,下划线,$组成,并且第一个位置不能是数字
2、标识符不能是关键字或保留字,因为关键字和保留字是给编程语言用的
3、在Java语言中,标识符的长度没有限制
注:在标识符的规则中,此处的“字母”我们应该广义的区理解,Java语言默认使用编码规则为Unicode,几乎包含了全世界所有的语言,因此,这里的“字母”可以看作“英文字母”,也可以看作“中文汉字”,但是不建议使用中文。 - 标识符命名规范(规范可看作生活中的道德,建议遵守)
1、类名建议使用“大驼峰”命名规范(每个单词首字母大写)
2、方法名和变量名建议使用“小驼峰”命名规范(第一个单词首字母小写,其他单词首字母大写)
3、包名建议使用“全部小写,包与包之间用“.”连接”来命名,顶级域名倒着写
4、常量名建议使用“全部大写,单词与单词之间用下划线连接”
7、变量(Variable)
- 本质:变量本质是一个可以多次赋值的容器,也就是在内存中开辟一块存储空间
- 变量声明
1、语法:数据类型 变量名
例:int age;
2、底层:在内存中开辟指定大小的存储空间,并且存储空间的名字就是变量名,用于存储指定类型的数据 - 变量赋值
1、语法:变量名 = 数据
例:age = 10;
2、底层:通过变量名,找到对应的存储地址,将数据转换为二进制的形式存入到指定的存储空间
变量声明和赋值可以一行代码完成:数据类型 变量名 = 数据; 例:int age = 10;
也可以一次性声明并赋值多个变量,如:int num1 = 10, num2 = 20, num3 = 30;
但是不建议这样使用,会影响代码的可读性。 - 变量的注意点
1、要遵守“标识符”的命名规则,“小驼峰”的命名规范
2、先声明再赋值,赋值数据与声明类型保持一致
3、在main方法中,只声明不赋值,只能赋值,不能取值
4、在main方法中,不能定义多个同名的变量
8、常量
- 本质:常量本质也是一个容器,但是只能赋值一次,也就是存储的数据不能改变
- 分类
1、固定值常量
解释:生活中的数据,我们称之为固定值常量,也叫做字面量。比如整数固定值常量“100”“50”,小数固定值常量“3.14”“2.00”,字符固定值常量’a‘’8‘,布尔固定值常量true,false,字符串固定值常量“hello”“world”。
作用:开发中,我们经常把固定值常量赋值给变量或final修饰的常量来保存
2、final修饰的常量
语法:final 数据类型 变量名
final的含义是最终的,不可变的,也符合常量的定义 - 常量的注意点
1、要遵守“标识符”的命名规则,“所有字母大写,单词与单词之间用下划线连接”的命名规范
2、常量只能被赋值一次
3、在main方法中,只声明不赋值,只能赋值,不能取值
4、在main方法中,不能定义多个同名的常量
9、数据类型
- 分类(基本数据类型和引用数据类型)
1、八大基本数据类型
整数型:byte(1个字节),short(2个字节),int(4个字节),long(8个字节)
注:占用字节数越大,能够表示的范围也越大;整数固定值常量默认为int,在数据末尾加“L”或“l”表示long类型数据
浮点型:float(4个字节,可以精确到小数点后7位,又被称为单精度类型),double(8个字节,可以精确到小数点后14位,又被称为双精度类型)
注:占用字节数越大,表示的精度也就越高;小数固定值常量默认为double类型,在数据末尾加“F”或“f”表示float类型数据;浮点型占用字节数,强调的是小数部分,整数部分还占8个字节
布尔型:boolean(true和false,在Java的语法规范中没有明确表示boolean占几个字节)
字符型:char(2个字节,并且采用无符号数表示)
2、引用数据类型(如:String等,面向对象时详细说明)
10、字符串
- 概念:字符串属于引用数据类型,其类型的名字为String,这里的String属于类的名字
- 字符串固定值常量:由双引号包裹的任意多个字符
- 字符与字符串关系:相当于羊肉和羊肉串的关系
- “+”的作用
1、用于表示正数,例如:int age = +10;
2、用于算数运算(两个数据都为数值)例如:int sum = 10 + 10;
3、用于字符串拼接(至少有一个数据为字符串)例如:String str = "hello" + "world";
11、转义字符
- \t 制表符
- \n 换行符
- \" 一个双引号
作用位置:如:System.out.prntln("小红说:\"好好学习,天天向上\""); - \’一个单引号
编译时会把“\'”当成一个整体,运行时会忽略反斜杠,只展示出一个单引号 - \\ 一个反斜杠
编译时会把“\\”当成一个整体,运行时会忽略反斜杠,只展示出一个反斜杠
关于Unicode码的补充:在Java语言中,默认使用Unicode码,意味着每一个字符都对应了一个Unicode值,空格的Unicode值为“\u0000”
12、字符的存储和读取
13、常见的“编码表”
- ASCII:美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代的英语和西欧语言的编码表。
- GBK:全称《汉字内码扩展规范》,字库是用来表示中文用的编码。ANSI编码表就属于GBK编码表,专门用于表示简体中文。
- Unicode:又称为万国码、统一码,是为了解决传统的编码方案的局限性而产生的,Unicode编码几乎包含了全世界所有的文字。
在Java语言中,char占两个字节,能表示的字符数为2^16,即65536个文字 - ASCII码表和Unicode表联系
Unicode表前128个与ASCII表一模一样,也就是说Unicode表包含了ASCII表 - 需要记住的几个字符所对应的整数
1、“1” --> 49
2、“A” --> 65
3、“a” --> 97
大小写英文字母相差32
14、int类型和char类型的联系
- int类型和char类型都是整数型,所以可以相互转化
- int类型可以表示无符号数,并且可表示的范围为[-2^31,2^31 - 1]
char类型只能表示有符号数,表示范围为[2^16]
int类型范围包含了char类型,所以char肯定能转成int(隐式类型转换),但是int未必能转换为char(强制类型转换)
- 二进制转十进制
Javase(day02:进制与数据类型)
最新推荐文章于 2024-07-10 21:37:49 发布