【Java】(2)Java数据类型阐述、基本数据类型的占用和范围、二进制的讲述

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。例如:十进制例如:二进制计算机在任何情况下都只能识别二进制。

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基础专栏 - 前篇回顾

4. 💕👉 其他好文推荐

目录
相关文章
|
21小时前
|
Java 编译器 Go
【Golang】(5)Go基础的进阶知识!带你认识迭代器与类型以及声明并使用接口与泛型!
好烦好烦好烦!你是否还在为弄不懂Go中的泛型和接口而烦恼?是否还在苦恼思考迭代器的运行方式和意义?本篇文章将带你了解Go的接口与泛型,还有迭代器的使用,附送类型断言的解释
21 2
|
21小时前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
14 1
|
21小时前
|
JavaScript 前端开发 Java
【GoWails】Go做桌面应用开发?本篇文章带你上手Wails框架!一步步带你玩明白前后端双端的数据绑定!
wails是一个可以让你使用Go和Web技术编写桌面应用的项目 可以将它看作Go的快并且轻量级的Electron替代品。可以使用Go的功能,并结合现代化UI完成桌面应用程序的开发
22 4
|
21小时前
|
XML JSON Java
【SpringBoot(三)】从请求到响应再到视图解析与模板引擎,本文带你领悟SpringBoot请求接收全流程!
Springboot专栏第三章,从请求的接收到视图解析,再到thymeleaf模板引擎的使用! 本文带你领悟SpringBoot请求接收到渲染的使用全流程!
21 3
|
21小时前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
30 3
|
21小时前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
18 2
|
21小时前
|
JSON Java API
(ELK)ElasticSearch8.7 搭配 SpringDataElasticSearch5.1 的使用
截至2023/7/11日,全网最全最直白的SpringDataElasticSearch5.1
25 2
|
21小时前
|
设计模式 缓存 安全
【JUC】(6)带你了解共享模型之 享元和不可变 模型并初步带你了解并发工具 线程池Pool,文章内还有饥饿问题、设计模式之工作线程的解决于实现
JUC专栏第六篇,本文带你了解两个共享模型:享元和不可变 模型,并初步带你了解并发工具 线程池Pool,文章中还有解决饥饿问题、设计模式之工作线程的实现
13 2
|
21小时前
|
存储 Java Go
【Golang】(3)条件判断与循环?切片和数组的关系?映射表与Map?三组关系傻傻分不清?本文带你了解基本的复杂类型与执行判断语句
在Go中,条件控制语句总共有三种if、switch、select。循环只有for,不过for可以充当while使用。如果想要了解这些知识点,初学者进入文章中来感受吧!
17 1
|
21小时前
|
JSON JavaScript Java
【GoGin】(4)会话控制与参数验证:Cookie使用、Sessions使用、结构体验证参数、自定义验证参数
1. Cookie介绍 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出 Cookie就是解决HTTP协议无状态的方案之一,中文是小甜饼的意思 Cookie实际上就是服务器保存在浏览器上的一段信息。浏览器有了Cookie之后,每次向服务器发送请求时都会同时将该信息发送给服务器,服务器收到请求后,就可以根据该信息处理请求 Cookie由服务器创建,并发送给浏览器,最终由浏览器保存
18 5

热门文章

最新文章