IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 6-数据类型 -> 正文阅读

[数据结构与算法]6-数据类型

数据类型

基本数据类型------------------------------
byte类型:在内存空间中占1个字节,表示范围:-2^7~ 2^7-1
short类型:在内存空间中占2个字节,表示范围:-2^15~ 2^15-1
int类型:在内存空间中占4个字节,表示范围:-2^31~ 2^7-31
long类型:在内存空间中占8个字节,表示范围:-2^63~ 2^7-63
整数类型是byte,short,int,long,1个字节代表8减1位(即7位),如-2^7~ 2^7-1中的7
推荐用int类型,之所以用int类型,是他的范围足够大,且不占很多内存空间
在Java程序中直接写出的整数数据叫做直接量/字面值/常量,默认为int类型
若希望表达更大的直接量,则在直接量后面加上l或L,推荐L
/*
 编程实现整数类型
 */
 public class _03{
	 
	 public static void main(String[] args){
		 
		 //声明byte类型的变量并初始化
		 byte bl = 25;
		 //byte bl =250; //错误:不兼容的类型:从int转换到byte可能会有损失  
		 //250这样的直接写出的整数数据叫做直接量/常量/字面值 默认为int类型 
		 //若250改为25,则可以,因为25没有超过byte的范围,所以int默认转换为byte 而250超过了,则会报错
		 //打印变量的数值
		 System.out.println("bl = " + bl); //bl = 25
		 System.out.println("--------------------------------------------------------------------");
		 //声明short类型的变量并初始化
		 short sl = 250;
		 //short sl = 250250; //错误:不兼容的类型:从int转换到short可能会有损失
		 System.out.println("sl = " + sl); //sl = 250
		 
		 System.out.println("--------------------------------------------------------------------");
		 int il = 250250;
		 //int il = 2502505006; //错误:整数太大  默认为int类型,这个数据自身已经出错,无法表示
		 System.out.println("il = " + il); //il = 250250
		 //加l或L则表示为long类型
		 //int il = 2502505006L; //错误:不兼容的类型:从long转换到int可能会有损失
		 
		 
		 
		 System.out.println("--------------------------------------------------------------------");
		 //声明long类型的变量并初始化,若描述比long类型还大的数据则使用java.math.BigInteger类型
		 long dl=2502505006L;
		 System.out.println("dl = " + dl); //dl = 2502505006
		 
		 //下面代码是否有错误
		 int i2 = 25;
		 //byte b2 = i2; //错误:不兼容的类型:从int转换到byte可能会有损失
		 //i2是变量,不确定会不会改变,所以有可能会超过byte范围
		 System.out.println("i2 = " + i2);
		 
	 }
	 
 
 }
float类型:在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38
double类型:在内存空间占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围:-1.798E308~1.798E308
Java语言描述小数数据的类型:float,double
推荐用double,因为他表示位数更多,即小数更多,就是要多占4个字节,但对于精度和现在的科技水平来说可以忽略
Java程序中直接写出的小数数据叫做直接量/字面值/常量,默认为double类型
若要表达float的直接量,则在直接量后面加上f或F,推荐F
/*

实现浮点数
*/
public class _04{
	
	public static void main(String[] args){
		
		//声明float类型并初始化
		//float f1=3.1415926; //错误:不兼容的类型:从double转换到float可能会有损失  
		//3.1415926这样的直接写出的小数数据叫做直接量/常量/字面值 默认为double类型 
		//加f或F则表示为float类型
		float fl=3.1415926f; 
		//打印变量的值
		System.out.println("fl = " + fl); //f1 = 3.1415925;  float是7位有效数字,从3开始数,小数点不算 
		
		double dl = 3.1415926;
		System.out.println("dl = " + dl); //d1 = 3.1415926;  double是7位有效数字
		
		System.out.println("--------------------------------------------------------------------");
		
		//笔试考点
		System.out.println(0.1 + 0.2); //0.30000000000000004 运算时可能有误差
		//所以在企业时,最好不用float和double
		//若希望实现精确运算则使用java.math.BigDecimal类型
		
	}
	
}
boolean类型:在内存空间占的大小没确定,可以认为是1个字节,数值只有true和false
/*
实现布尔类型
*/
public class _05{
	
	public static void main(String[] args){
		
		//声明boolean类型的变量并初始化
		boolean b1 = true;
		//打印变量的数值
		System.out.println("b1 = " +b1); //b1 = true
		
		System.out.println("--------------------------------------------------------------------");
		//修改b1的值 =赋值运算符,用于将=右边的数据赋值给=左边的变量,覆盖变量中原来的数值
		b1 = false;
		System.out.println("b1 = " +b1); //b1 = false
		//b1 = 1; //错误:不兼容的类型:int无法转换为boolean  
		
		
		
	}
	
	
	
}
	
char类型:Java语言中用于描述单个字符的数据类型,如’a’,'中’等
其中char类型在内存空间中占2个字节并且没有符号位,表示范围是:0~65535
由于现实生活中很少有数据能够被单个字符描述,因此以后的开发中更多的是用多个字符串起来的字符串
使用String类型加以描述,如:“hello”,"肖某某"等
计算机的底层只识别0和1组成的二进制序列,对于字符’a’这样的图案来说不满足规则
因此该数据无法直接在计算机中存储,但现实生活中存在这样的图案数据需要计算机存储
为了使得该数据能够存储起来就可以给该数据定一个编号,然后将编号存储起来即可,该编号就叫ASCII
要求掌握的ASCII有:‘0’-48,‘A’-65,‘a’-97

在这里插入图片描述

Java字符类型采用Unicode字符集编码,Unicode是世界通用的定长字符集,保证全球通用,所有的字符都是16位,即2个字节
/*
实现字符类型的使用
*/
public class _06{
	
	public static void main(String[] args){
		
		//声明一个char类型的变量并初始化
		char c1 = 'a';
		//打印变量的数值
		System.out.println("c1 = " +c1); //c1 = a
		System.out.println("对应的编号是 = " + (int)c1); //表示将char类型c1强制转换为int类型并打印   97
		System.out.println("--------------------------------------------------------------------");
	    //声明一个char类型的变量并初始化
		char a2 = 98;
		System.out.println("a2 = " +a2); //a2 = b
		System.out.println("a2 = " +(int)a2); //a2 = 98
		
		System.out.println("--------------------------------------------------------------------");
		
		//使用Unicode字符集来表示一下我的名字    奇点
	
		char c3='\u8096';
		char c4='\u67d0';
		System.out.println("最终结果是:" + c3 + c4 + c4);
		
		System.out.println("--------------------------------------------------------------------");
		//特殊字符的使用   双引号本身有2个含义:字符串的开头和结尾标志,双引号自身  \转义就是转义原有的含义
		System.out.println("我想过过\"过过过过的生活"); // \" -"
		System.out.println("我想过过\'过过过过的生活"); 
		System.out.println("我想过过\\过过过过的生活"); 
		System.out.println("我想过过\t过过过过的生活"); 
		System.out.println("我想过过\n过过过过的生活"); 
		
		
		
	}
	
	
	
	
	
}
要求掌握的转义字符有:\ " - ",\ ’ - ',\ \ - , \ t - 制表符(tab键),\ n - 换行符
基本数据类型之间的转换------------------------------
Java语言中基本数据类型之间的转换方式:自动类型转换和强制类型转换
自动类型转换主要指从小类型到大类型之间的转换

在这里插入图片描述

强制类型转换主要指从大类型到小类型之间的转换
语法格式:目标类型 变量名 = (目标类型)源类型变量名;
强转有风险,操作需谨慎
/*
编程实现基本数据类型之间转换的使用
*/
public class _07{
	
	public static void main(String[] args){
		
		//声明两个变量并声明化
		byte b1 = 10;
		short s1 = 20;
		//打印变量的数值
		System.out.println("b1 = " + b1); //b1 =10
		System.out.println("s1 = " + s1); //s1 =20
		System.out.println("--------------------------------------------------------------------");
		//实现自动转换的使用
		//表示将变量b1的数值赋值给变量s1,并覆盖变量s1中原来的数值
		//相当于从byte类型到short类型的转换,小到大,自动转换
		s1=b1;
		System.out.println("b1 = " + b1); //b1 =10
		System.out.println("s1 = " + s1); //s1 =10
		
		System.out.println("--------------------------------------------------------------------");
		//实现强制类型转换的使用
		//表示将变量s1的数值赋值给变量b1,并覆盖变量b1中原来的数值
		//相当于从short类型到byte类型的转换,大到小,强制转换
		//b1 = s1;错误:不兼容的类型:从short转换到byte可能会有损失 
		s1 = 128; //故意加代码     128:0000 1000 0000
		b1 = (byte)s1;
		System.out.println("b1 = " + b1); //b1 =10   -128
		System.out.println("s1 = " + s1); //s1 =10   128
	}
	
	
	
	
}
引用数据类型------------------------------
数组,类,接口,枚举,标注等
常用的进制------------------------------
日常生活中采用十进制进行数据的描述,逢十进一(每十个数,进一)
十进制权重是:10^0 ,10^1 ,10^2,…
在计算机底层采用0和1组成的二进制序列进行数据的描述,逢二进一(每十个数,进一)
二进制权重是:2^0 ,2^1 ,2^2…
二进制中的最高位(最左边)用于代表符号位,若该位是0则表示非负数,若该位是1则表示负数
八进制和十六进制其实都是二进制的简写
正十进制转化为二进制的方式-----------------------------
除2取余法:使用十进制,不断的除以2取出余数,直到商为0时将余数逆序排序
十进制45的二进制结果为:101101(0b/0B可以作为二进制的前缀,o作为八进制的前缀,0x作为十六进制前缀)
如0b101101,的前缀为0b,表示二进制)
拆分法:将十进制整数拆分为若干个二进制权重的和,由该权重下面写1,否则写0
正二进制转化为十进制的方式-----------------------------
加权法:使用二进制的每个数字乘以当前位的权重,再累加起来
二进制101101转换位十进制的结果为:45
负十进制转换为二进制的方式-----------------------------
先将十进制的绝对值转换为二进制,然后进行按位取反再加1
负数的需要补码:按位取反,再加1
负二进制转换为十进制的方式-----------------------------
先减1再按位取反,合并为十进制整数后添加负号

加权法:使用二进制的每个数字乘以当前位的权重,再累加起来
二进制101101转换位十进制的结果为:45
负十进制转换为二进制的方式-----------------------------
先将十进制的绝对值转换为二进制,然后进行按位取反再加1
负数的需要补码:按位取反,再加1
负二进制转换为十进制的方式-----------------------------
先减1再按位取反,合并为十进制整数后添加负号
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:33:00  更:2021-12-15 18:35:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/31 18:21:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码