计算机存储,数据类型,常量和变量

本文详细介绍了计算机存储单位,包括字节、比特等,并重点讲解了Java中的常量和变量。重点讨论了常量的分类、代码演示及字符串常量的编码集问题。同时,对Java的基本数据类型,如整数、浮点数、字符和布尔类型进行了深入探讨,通过实例展示了变量的定义和操作,强调了变量赋值和定义的规范,特别是long类型变量的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机存储,数据类型,常量和变量

1.计算机存储

1.1计算机存储常用的数据单位
  • ```
    计算机当中最小的存储单位
    字节 Byte
    bit 比特 一个字节是 8 个bit 位(二进制)
    100M 带宽 ==>100M 比特率 bit/s > 12.5MB/s
    常见的存储单位:
    Windows操作系统存储单位之间的进制关系
    1024
    > 2^10
    1024 Byte ==> 1kb
    1024 kb ==> 1MB
    1024 MB ==> 1GB
    1024 GB ==> 1TB
    1024 TB ==> 1PB
    1024 PB ==> 1EB

    2014 年淘宝 ==> <<淘宝这十年>> 2014年 淘宝每天的数据量 50PB

    硬件设备生产/macOS 操作系统 数据单位进制是1000 。windows读取U盘/硬盘数据,没有对应标明容量 Windows 数据内容到macOS系统变大

    得数据者得天下!!

    
    
1.2计算机常见进制(仅了解)
  1. 生活中使用最多的进制是十进制!!,在实际开发,产品设计中需要考虑的也是十进制
    做开发实际价值/生活价值!!!
    
    涉及到开发中使用较多的进制
    
    
    进制基数范围进制关系
    十进制0~9逢十进一
    二进制0~1逢二进一
    八进制0~7逢八进一
    十六进制09,AF逢G(16)进一
数据展示效果
	八进制
		程序员看着方便的要求 :数据0开头
		0777 0775 0755 0555
		【注意】存在特殊情况下,省略开头0的情况
			40	==> 040	
			【适用场景】Linux权限管理
			
	十六进制
		程序员看着方便的要求: 数据Ox 开头
			ox1234 Oxabcd OxABCD
			【十六进制不区分大小写】
			【适用场景】
				计算机内存地址
涉及到的进制转换问题
	一律采用计算器 Windows or macOS 计算器
		程序员/编程型

2.常量【重点】

2.1生活中常用的常量
数值:
	光速,π,重力加速度
	10 100 100 10000
文字:
	 你 我 他、她 
	 A  B  C  D
	 1  2  3  4
	 Ⅰ Ⅱ Ⅲ Ⅳ
	 , .  % &
文本:
    “北国风光,千里冰封,万里雪飘……”
	“先帝创业未半,而中道崩殂…”
	“曲曲折折的荷塘上面,弥望着田田的叶子"
标点符号
	, 。 、 ‘ ; 
	寒江孤影,江湖故人,相逢何必曾相识
	刀既然出鞘,就一定要见血
	原来爹娘离去,便是远游
	
	
	
	
2.2针对开发需求常量进行分类
整数:
	10 20 100 10000 
	-20 -50 -10 -50
小数/浮点数
	3.1415926 11.11 
文字/字符:
	Java代码规定
		Java字符常量是英文单引号包含的【单个元素】
		'A' 'B' 'C' '你' '我' '它'
		整数 1 2 3 与字符 '1' '2 ' '3' 不一样
字符串:
	Java代码规定
		字符串常量是英文双引号包含的【所有内容】
		
			“先帝创业未半,而中道崩殂…”
	“曲曲折折的荷塘上面,弥望着田田的叶子"
	
真假关系/布尔类型:
	true 真
	
	false 假
	
小点子:
	1.数字字符常量和数值的区别
		1 2 3 ==> 数值
		'1' '2' '3' ==>数字字符
	2.常量是在Java代码运行过程不会发生改变的量
2.3常量代码演示
//Java常量演示
public class Demo1{
	public static void main(String[] args){
		/*整数常量*/
		System.out.println(10);
		System.out.println(100);
		System.out.println(-10);
		System.out.println();
		
		/*浮点数常量*/
		System.out.println(3.14);
		System.out.println(5.5);
		
		/*字符常量*/
		System.out.println('a');
		System.out.println('1');
		System.out.println();
		
		/*字符串常量*/
		System.out.println("注意代码格式");
		System.out.println("注意代码风格");
		System.out.println();
		
		/*真假关系/布尔类型*/
		System.out.println(true);
		System.out.println(false);
		System.out.println();
	}
}
2.4字符串常量补充说明
2.4.1编码集问题
编码集:
	每一个文字都有一个对应的图片,每一个图片进行编号。计算机会根据编码集来处理当前信息中的编号,从而找到对应的文字图片。
	
开发中常用编码集:
	UTF-8 国际编码:
		支持多国文字(中文,英语,阿拉伯,日语,朝鲜语……)后期开发使用最多。
	GBK 新国标,支持中文简体字,以及中国所有少数民族文字。【Windows中文系统默认编码集】
	BIG5 中文繁体字编码集,主要流行于 中国台湾 中国澳门  新加坡
	ASCII 编码,美国信息交互标准协会制定的规范编码,主要包含英文,数字,标点符号。
		要求所有的编码必须首先支持 ASCII
要求:
 	1. 使用字符有且只允许使用字符本身,采用英文单引号包含【单个元素】的方式处理字符内容。
 	例如:'你' '我' '他'
 	2.绝对不允许使用编码值来表示字符信息,可视化极差,同时类型不一致!!!
 	3.编码集问题主要出现在中文乱码中,保证在开发中使用编码集一致!!!
 		后期前端 UTF-8 后台JAVA UTF-8 数据库 UTF-8
 		
 		
ASCII编码集补充说明:
	1.0~31 是不可见字符,没有视觉效果
	2.数字字符是0~9   顺序和键盘不同
	3.大写字母顺序是A~Z,小写是a~z
	4.大写字母的编码值小于小写字母
	5.大写字母和小写字母之间有其他标点符号内容
后期功能:
	验证码比对全部转大写字母比较,因为大写字母编码值小于小写字母,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e9r6SLcU-1666190009851)(D:\qf\Typora笔记软件\参考笔记\微信图片_20221019193606.png)]

2.4.2转义字符【仅了解】

开发中有些字符因为开发需求已经被赋予了特定含义
	例如:""  字符串标记 '' 字符常量标记
	\"\'可以将原本特定含义在字符转换为字符本身,不具备任何的含义!!!
	
	
两个较为常用的转义字符
	\n 换行回车
	\t tab键 制表符
\算不算特定含义字符??
	需要在字符串中展示一个 \ 怎么办??
	\\
	需要在字符串中展示一个\\怎么办?
	\\\\
	【注意】
		转义字符有且只能处理\转义符号之后的第一个字符
	

2.4.3只可学会,不得使用

2105年
请问:
	\40是是么???
	结果是空格!!!
	1.\转义字符标记之后的数值默认是8进制
	2.8进制数据标记 0 可以省略
	3.\40==> 十进制编号为32的字符 ==>space空格
要求:
	1.不能用来面试其他人!!!
	2.如果对方不讲武德,电话号给我!!!
	3.可以对暗号!!!

3.变量【重点】

3.1生活中的变量
生活中的变量:

	体重 温度 发量 余额
关注点:
	1.预定俗成,见名知意
	2.单位,数据范围,合理,合适数据单位
	3.容器的概念

变量需要在开发中提供
	数据,信息,内存


3.2 Java中定义变量的格式
格式:
     数据类型 变量名 = 初始化数据;
解释:
	数据类型:
	表示当前变量数据存储对应的数据类型,数据容量范围,数据的描述形式。
		温度 ==> 摄氏度
		水杯 ==> 小(ML) 大(L) 
		重量 ==> 人(KG) 卡车载重(吨) 货轮(万吨)
		变量名:
			约定俗成,见名知意,通俗易懂
	=:
		赋值,赋值号,
			将赋值号右侧的数据,赋值给左侧的【变量】
	初始化数据:
	根据当前数据类型情况,以及目前的代码运行需求,给予变量在定义阶段的初始化数值。
	魂斗罗 超级玛丽 冒险岛开局三次机会!!!
	PUGB CF CSGO 人物出生血量 100%
	雪碧 可乐 柠檬茶 3.5RMB 500ML
	
3.3基本数据类型【重点重点】
3.3.1整数类型/整形
根据不同的数据存储范围,数据存储需求,整形在Java中分为4个情况
byte short int long 

数据类型占用内存空间大小数据存储范围
byte1 字节-128—127
short2 字节-32768—32767
int4字节-231—231-1
long8字节-263—-263-1
3.3.2小数/浮点数
针对以小数/浮点数情况,同时考虑精度范围和数据存储范围,浮点数分为两种情况
单精度浮点类型float
双精度浮点类型double
要求明确float占用空间小于double同时float数据范围小于double
数据类型占用内存空间大小数据存储范围
float4字节10^38
double8字节10^308
3.3.3字符类型
用于描述代码中使用的字符常量存储的变量内容
明确 字符类型 char 可以存储中文
数据类型占用内存空间大小数据存储范围
char2字节可以存储中文

3.3.4布尔类型

真假关系 true or false
明确 布尔类型Boolean数据范围有且只有TRUE FALSE
数据类型占用内存空间大小数据存储范围
Boolean视情况而定true —false
3.4变量定义演示
3.4.1整形变量操作
//整形变量定义演示
public class Demo4 {
	public static void main(String[] args) {
		/*
		变量定义的格式:
			数据类型 变量名 = 初始化数据;
		整数数据类型
			byte short int long
		数值变量一般会使用
			number 简拼 num
		
		*/
		byte num1 = 10;  //定义了一个变量num1数据类型为byte类型,初始化数据存储10
		short num2 = 20;
		int num3 = 50;
		long num4 = 100;
		
		System.out.println(num1); //展示 num1 变量存储的数据类型
		System.out.println(num2);
		System.out.println(num3);
		System.out.println(num4);
		
		System.out.println();
		
		//定义之后的变量可以通过变量名直接使用
		//变量存储数据内容是可以修改的!!!
		
		num1 = 50;  //给予byte类型变量num1赋值新的数据 50
		num2 = 100;
		num3 = 1000;
		num4 = 10000;
		System.out.println(num1); //展示num1变量存储的数据类型
		System.out.println(num2);
		System.out.println(num3);
		System.out.println(num4);
		
		System.out.println();
	
		
		
		
	}
		
}
3.4.2浮点型变量操作
//浮点类型变量操作演示
public class Demo5 {
	public static void main(String[] args) {
		/*
		变量定义的格式:
			数据类型 变量名 = 初始化数据;
		浮点数据类型
			float double
		数值变量一般会使用
			number 简拼num
		*/
		float num1 = 3.5F;
		double num2 = 5.5;
		
		System.out.println(num1);
		System.out.println(num2);
		System.out.println();
		
		num1 = 10.5;
		num2 = 20.5;
		
		System.out.println(num1);
		System.out.println(num2);	
		System.out.printl();
		
		
		}
	
}
	
3.4.3字符类型变量操作
//字符类型变量操作
public class Demo6 {
	public static void main(String[] args) {
		/*
		变量定义格式:
			数据类型 变量名 = 初始化数据;
		字符类型
			char
		字符类型变量常用的名称
			ch 
		【重点强调】
			字符类型数据操作有且只能使用字符本身,绝对不允许使用编码值
			严格遵从【数据类型一致化要求】
			
		*/
		char ch1 = 'A';
		char ch2 = '豫';
		
		System.out.println(ch1);
		System.out.println(ch2);
		System.out.println();
		
		
		ch1 = '豫';
		ch2 = '国';
		//字符常量是英文单引号包含的单个元素
		//ch1 = '豫';
		//ch1 是【字符类型】,双引号包含的内容是【字符串类型】,类型不一致,无法赋值
		//ch1 = "豫北";
		System.out.println(ch1);
		System.out.println(ch2);
		System.out.println();
		
		
		
	}
}

3.4.4 布尔类型变量操作
//布尔类型变量操作演示

public class Demo7 {
	public static void main(String[] args){
		/*
		变量定义的格式:
			数据类型 变量名 = 初始化数据;
		布尔类型
			boolean
		布尔类型常用变量名称
			ret 结果 result 简拼
			flag 标记
		*/
		boolean ret1 = true;
		System.out.println(ret1);
		System.out.println();
		
		ret1 = false;
		System.out.println(ret1);
		System.out.println();
	}
}
3.5变量定义常见问题
3.5.1 float类型变量常量赋值问题
		float num1 = 3.5;
Demo5.java:12: 错误: 不兼容的类型: 从double转换到float可能会有损失
                float num1 = 3.5;
                             
                             
                            
计算机数据存储原则:
	计算机存储数据优先考虑的是数据的精度和完整度。3.5作为浮点类型数据,计算机考虑到数据的精度和完整度情况,常量3.5会采用double类型作为数据类型。double占用数据空间8字节。
	相当于使用一个double类型的数据3.5占用8字节内存数据空间,赋值给一个float类型变量,而float类型占用内存空间为4字节,并且float浮点数据类型精度不如double
	计算机在赋值操作中会给予提示,double类型数据赋值给float类型数据会导致数据精度丢失,不允许!!!
【解决方案】
	明确告诉计算机,当前数据为float类型数据。
	float num1 = 3.5F;
	注意F必须大写,告知编译器当前3.5卫float类型,保证【数据类型一致化】
3.5.2 Java中的变量未赋值不能使用
变量定义之后,没有进行赋值操作,不可以参与除赋值之外的其他内容
public class Demo8{
	public static void main(String[] args){
		
		int num;
		System.out.println(num);
		/*
		Demo8.java:5: 错误: 可能尚未初始化变量num
                System.out.println(num);
                                   ^
        1 个错误
		*/
		
	}
}
3.5.3 Java中变量未定义不能使用
Java规定变量如果没有声明,没有定义,无法使用。注意提示内容【找不到符号】
相当于 你做饭没有买酱油 ,做饭的时候就不能用!!!

主要原因
1.变量真的没有定义,你非要使用
2.变量真的定义了,但是你拼写错误【很常见】
//错误演示代码
public class Demo8{
	public static void main(String[] args){
		
		
		
		
		System.out.println(num);
		/*
		Demo8.java:5: 错误: 找不到符号
                System.out.println(num);
                                   
        符号:   变量 num
        位置: 类 Demo8
        1 个错误
		*/
	}
}


//错误演示代码
public class Demo8{
	public static void main(String[] args){
		
		int num = 10;
		System.out.println(nmu);
		
		/*
	
		Demo8.java:6: 错误: 找不到符号
                System.out.println(nmu);
                                   ^
        符号:   变量 nmu
        位置: 类 Demo8
        1 个错误

		*/
	}
}

3.5.4【提示】字符类型常量有且只允许使用字符本身

3.5.5 long类型赋值常量建议

严格遵守数据类型一致化要求!!!

在给予long类型变量赋值操作时,对应的常量建议使用L明确告诉编译器,当前变量数据类型为long类型

保证数据类型一致化操作,提高代码效率

要求必须大写L,小写l容易导致阅读不便

public class Demo9 {
	public static void main(String[] args){
		//num1和num2都是long类型变量
		//对于计算机而言,整数默认类型为int类型
		long num1 = 10;
		//10L明确告诉编译器当前常量的数值类型为long类型
		long num2 = 10L;
		System.out.println(num1);
		System.out.println(num2);
		System.out.println();
	}
	
}

 System.out.println(nmu);
                               ^
    符号:   变量 nmu
    位置: 类 Demo8
    1 个错误

	*/
}

}


3.5.4【提示】字符类型常量有且只允许使用字符本身

3.5.5 long类型赋值常量建议

严格遵守数据类型一致化要求!!!

在给予long类型变量赋值操作时,对应的常量建议使用L明确告诉编译器,当前变量数据类型为long类型

保证数据类型一致化操作,提高代码效率

要求必须大写L,小写l容易导致阅读不便

public class Demo9 {
public static void main(String[] args){
//num1和num2都是long类型变量
//对于计算机而言,整数默认类型为int类型
long num1 = 10;
//10L明确告诉编译器当前常量的数值类型为long类型
long num2 = 10L;
System.out.println(num1);
System.out.println(num2);
System.out.println();
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值