Java——语言基础(一)常量、变量、进制和数据类型

常量

什么是常量?
就是在程序的执行过程中其值不发生改变的量;
java中常量的分类

  1. 字面值常量
  2. 自定义常量

字面值常量的分类

  1. 字符串常量:用双括号括起来的内容;
  2. 整数常量:所有整数;
  3. 小数常量:所有小数;
  4. 字符常量:用单括号引起来的内容;
  5. 布尔常量:较为特有,只有True和False
  6. 空常量:null

进制概述

什么是进制?
人们对定的一种进位方法。对任何一种进制——X进制就表示某一位置上的数运算时事逢X进一位。
不同进制数据的表现形式

表现形式 描述
二进制 以0b开头,由1,0组成
八进制 以0开头,由0~7组成
十进制 整数默认是十进制的
十六进制 以0x开头,由0,1,2…9,a,b,c,d,e,f组成

进制转换

1.任意进制到十进制的转换
在这里插入图片描述
每一组的数据由3部分组成:
系数: 系数就是该位对应的值;
基数: X进制到十进制的转换,那么这个基数就是X;
权:从0开始,并且从右向左。
每一组数据=系数*基数^权

2.十进制转换到任意进制
在这里插入图片描述

快速的进制转换法
8421码
是BCD码中最常用的一种,在这种编码中每一位二值代码的1都是代表一个固定的数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
原码、反码和补码
计算机底层运算的时候使用补码进行运算。
在这里插入图片描述
正数的原反补相同,且符号位为0;
负数符号位1;反码是原码的符号位不变,数值位取反;
补码:给反码加1;

变量

什么是变量?
在程序执行过程中,在某个范围内其值可以发生改变的量,变量其实是内存中的一小块区域。
为什么要定义变量?
用来不断地存放同一类型的常量,并且可以重复使用。
变量的定义格式:
数据类型 变量名=变量值

数据类型

为什么有数据类型?
变量其实就是内存中的一小块区域。我们定义一个变量,其实就是开辟了一个内存空间,数据类型决定了我们的这块空间有多大。

数据类型分为:基本数据类型和引用数据类型。

基本数据类型
在这里插入图片描述

class  Datatype
{
	public static void main(String[] args) 
	{
		//定义数据类型
		byte a=127;
		short b=300;
		int c=5000;
		long d=1L; //定义类型的数据的时候在值的后面加一个后缀L,
					//代表这是一个long类型的
		float e=3.14F; //定义float类型的时候后面加上一个后缀F,代表这是一个float类型的数据
		double f=3.14;
		//整数默认为int类型,小数默认为double类型
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);
		System.out.println(f);
	}
}

作用域问题:
变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域终不能定义两个同名变量;
初始化问题:
没有初始化值不能直接使用;
在一行上建议之定义一个变量。

数据类型转换

class Datatype1 
{
	public static void main(String[] args) 
	{	
		//byte+int 的结果分别用int和byte接收
		
		int a=10;
		byte b=20;
		
		byte ab=a+b;

		System.out.println(ab);
	}
}

在这里插入图片描述

class Datatype1 
{
	public static void main(String[] args) 
	{	
		//byte+int 的结果分别用int和byte接收
		
		int a=10;
		byte b=20;
		
		//byte ab=a+b;
		int ab=a+b;

		System.out.println(ab);
	}
}

在这里插入图片描述
java中默认转换规则:
boolean类型不能转换为其他的数据类型;
byte,short,char——>int——>long——>float——>doube
byte,short,char之间不转换,他们参与运算首先转换为int类型
强制转换
强制类型转换可能会损失精度,不建议使用。

class  Datatype2
{
	public static void main(String[] args) 
	{	
		byte a=3;
		short b=488;

		short c=(short)(a+b);
		System.out.println(c);

		byte bb=(byte)130;
		System.out.println(bb);
	}
}

在这里插入图片描述

格式:
目标数据类型 变量名=(目标数据类型)(被转换的数据)
注意事项:
存在损失精度的问题;
变量相加和常量相加

class  Datatype2
{
	public static void main(String[] args) 
	{	
		byte b1=3;
		byte b2=4;
		
		//byte b3=b1+b2;
/*---------- 编译 ----------
Datatype2.java:8: 错误: 不兼容的类型: 从int转换到byte可能会有损失
		byte b3=b1+b2;
		          ^
1 个错误

输出完成 (耗时 0 秒) - 正常终止*/
		
		byte b4=3+100;  //常量优化机制:如果多个常量运算,那么他会先计算结果
		//有没有在这个数据类型的范围内,如果不在就报错

		//7
		System.out.println(b4);

	
	}
}

java语言中的char可以存储一个中文汉字,因为java语言采用的是Unicode编码,unicode编码中的每个字符占用两个字节。

字符和字符串参与运算

class  ZF
{
	public static void main(String[] args) 
	{	
		
		System.out.println('a');
		System.out.println('a'+1);

		//a
		//98

		System.out.println("hello"+'a'+1);
		//helloa1
		System.out.println('a'+1+"hello");
		//98hello
	}
}

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/82833692