【Java基础】Java数据类型阐述、基本数据类型的占用和范围、二进制的讲述
1. 关于java源程序中:
/**
* 这种注释可以被javadoc.exe编译成帮助文档
*/
1.1public class和class 的区别:
- 一个java源文件当中可以定义多个class
- 一个java源文件当中public的class不是必须的
- 一个class会定义生存一个xxx.class的字节码文件
- 一个java源文件当中定义公开的类,public的class只能有一个,并且该类名必须和java源文件名称一致。
每一个class当中都可以编写main方法,都可以设定程序的入口向程序,
- 想执行c.class中的main方法:
java c
- 想执行b.class中的main方法:
java b
注意:在命令窗口中执行java a,在a.class中就必须有主方法,没有主方法会出现运行阶段的错误;
2. 关于java中的数据类型:
2.1 数据类型的作用是什么?
- 程序当中有很多数据,每一个数据都是相关类型的,不同数据类型的数据占用空间大小不同
- 数据类型的作用是jvm在运行程序的时候给该数据分配多大的内存空间。
2.2 java中的数据类型包括两种:
- 基本数据类型
- 引用数据类型
2.3 关于基本数据类型:
基本数据类型包括四大类八小种:
类型名称 | 关键字 |
---|---|
整数型 | byte |
整数型 | short |
整数型 | int |
整数型 | long |
浮点型 | float |
浮点型 | double |
布尔型 | boolean |
字符型 | char |
字符串“abc”不属于基本数据类型,属于“引用数据类型”,字符属于基本数据类型:
- 字符串使用双引号 “abc”
- 字符使用单引号 ‘a’
2.4 八种基本数据类型各自占用的空间大小是多少?
类型名称 | 关键字 | 占用空间大小(字节) |
---|---|---|
整数型 | byte | 1 |
整数型 | short | 2 |
整数型 | int | 4 |
整数型 | long | 8 |
浮点型 | float | 4 |
浮点型 | double | 8 |
布尔型 | boolean | 1 |
字符型 | char | 2 |
2.5 什么是二进制?
- 数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。
例如:十进制
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
例如:二进制
0 1 10 11 100 101 110 111 1000 1001 …
0 1 2 3 4 5 6 7 8 9
计算机在任何情况下都只能识别二进制。
2.6 字节(byte):
【1个字节 = 8个bit】1 个比特位表示一个二进制位:1/0
1 byte = 8 bit
2 KB = 1024 byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 TB = 8,796,093,022,208 个二进制位
2.7 byte类型的取值范围是什么?
关于java中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称位“符号位”。
并且这个“符号位”在所有二进制的最左边,0表示正数,1表示负数。
-
byte类型最大值: 01111111
-
byte类型最大值:2的7次方 - 1;结果是: 127;
-
byte类型最小值:-128
-
byte类型取值范围:[-128 ~ 127]
-
byte类型可以表示256个不同的数字【256个不同的二进制】
-
二进制转换成十进制
-
十进制转换成二进制
2.8 二进制字符转换
计算机只认识二进制,那么计算机时怎么表示现实世界当中的文字的呢?
-
8 种基本数据类型当中,byte,short,int,long,float,double,boolean这7种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数据和二进制之间存在一种固定的转换规则。
-
但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间“默认”情况下是不存在任何转换关系的。
-
为了让计算机可以表示现实世界当中的文字,我们需要进行人为干涉,需要人负责提前制定好“文字”和“二进制”之间的对照关系。
这种对照转换关系被称为:字符编码
计算机最初只支持英文,最先出现的字符编码是:ASCII码【阿斯特码】
‘a’ --> 97【01100001】
‘A’ --> 65
‘0’ --> 48
‘a’ --(按照ASCII解码)–> 01100001
01100001 --按照ASCII解码–> ‘a’
- 当解码和编码的时候采用的不是同一套对照表,会出现乱码问题。
由国际化标准组织ISO制定的编码方法,这种编码方式支持西欧语言,向上兼容ASCII码,仍然不支持中文。这种编码方式是:ISO-8859-1,又被称为latin-1
随着计算机向亚洲发展,计算机开始支持中文、日文、韩文等国家文字,其中支持简体中文的编码方式:
GB2312 < GBK < GB18030
支持繁体中文:大五码<big5>
unicode编码统一了全球所有的文字,容量较大;
unicode编码方式有多种方式具体的实现:
- UTF-8
- UTF-16
- UTF-32
…
-
java语言采用unicode编码方式,所以“标识符”可以用中文
-
现在实际开发过程中大多都使用的是unicode编码方式
2.9 八种基本数据类型的取值范围:
类型名称 | 关键字 | 占用空间大小 | 取值范围 |
---|---|---|---|
整数型 | byte | 1 | [ -128 ~ 127 ] |
整数型 | short | 2 | [ -32768 ~ 32767] |
整数型 | int | 4 | [ -2147483648 ~ 2147483647] |
整数型 | long | 8 | |
浮点型 | float | 4 | |
浮点型 | double | 8 | |
布尔型 | boolean | 1 | [ true,false ] |
字符型 | char | 2 | [ 0~65535 ] |
注意:short和char所表示的种类总数是一样的,只不过char的正数取值范围更大,因为char不能有负数;
- 在java中全局变量没有手动赋值系统会默认赋值【局部变量不会】
3. ❤️Java基础专栏 - 前篇回顾
- 认识Java,Java程序的生命周期,运行Java程序
4. 💕👉 其他好文推荐
- 还不了解Git分布式版本控制器?本文将带你全面了解并掌握
- 带你认识Maven的依赖、继承和聚合都是什么!有什么用?
- 2-3树思想与红黑树的实现与基本原理
- !全网最全! ElasticSearch8.7 搭配 SpringDataElasticSearch5.1 的使用
- 全面深入Java GC!!带你完全了解 GC垃圾回收机制!!
- 全面了解Java的内存模型(JMM)!详细清晰!
- 在JVM中,类是如何被加载的呢?本篇文章就带你认识类加载的一套流程!
- 带你了解Go语言的判断语句、切片和映射表!!
- (Java并发编程—JUC)带你重新认识进程与线程!!让你深层次了解线程运行的睡眠与打断!!