lesson1:java基础系列之基本数据类型(常、变量、数据转换)

    准备写一写连续的博客来记录一下java部分,写这些的触发点是因为在地铁上听到一句,总以为学到了很多,却不去总结,时间久了便已忘记,感觉被戳中了,于是便萌生了这些撸博客的想法,如果有小伙伴看到我这些系列博客,感觉有些不妥的内容,欢迎指正,我先虚心请教了。

    在写blog前,我们先瞎扯会,我们都知道java之所以这么强大就是它的跨平台(今天所说的平台是操作系统)性,之所以能跨平台都是因为jvm(java virtual machine),因为jvm运行在操作系统之上,将java代码编译的class文件,通过jvm解释成做成系统能看懂的语言,所以java才一直这么牛X,好了,装X到此,我们今天总结的内容并不是内部原理,类加载器等等,我们要说的是基本数据类型。 

     Java的基本数据类类型有8个,我们可以这么来分类:

整型: 

byte  1个字节 8bit(比特位)  取值范围  -2^{7}到2^{7}-12^{7}-1 (在计算机里面使用的是二进制,最高位表示符号位)

short  2个字节 16bit  取值范围 -2^{15}2^{15}-1

 int      4个字节 32bit  取值范围为 -2^{31}2^{31}-1

 long ;  8个字节 64bit 取值范围  -2^{63}2^{63}-1

浮点型:

float 单精度   4字节 32 bit  最高位表示符号位,后面的9位计算小数点前的整数,其余计算小数点

double  双精度 8字节 64bit  最高位表示符号位,后面的19位计算小数点前的整数,其余计算小数点

字符型:char 2字节 16bit (英文 符号和数字占1个字节 因为他们用ASCII码 中文占两个字节Unicode编码)

布尔型boolean 1字节 8bit  1 true  0 false

 

常量

   程序在运行中,不能再次改变的值。

作用:1.固定的值,便于计算,比如数学计算的圆周率;

           2.代表特定的含义。比如 android中的按键的键值

什么是常量:1.8种基本数据类型;2.String中的值可视为常量;3.自己创建的空间存储起来不能再次更改的值,final修辞的

 

变量

    程序在程序中可以修改的,变量指的是内存空间或叫容器,里面存储的是一个值或者引用;

    变量的申明: 类型 +变量名 

     命名规则:

    1)、名称只能由字母、数字、下划线、$符号组成

    2)、不能以数字开头

    3)、名称不能使用JAVA中的关键字。

    4)、坚决不允许出现中文及拼音命名。

      推荐驼峰式命名法,见名知意;

下面撸个int类型的变量申明和赋值的代码,顺便画个内存的图,让大家理解下:

public class Demo {

	public static void main(String[] args) {
	
       int  x=1;
       
	}
}

我们知道main方法是java程序的入口,这里我定义了一个int 类型的变量x,并赋值为1,那我们看看内存中干了些什么事情:

 我们在声明变量的时候需要注意的两点:float f=3.4F(需要人为告知,常量池中默认的是double 64位)  long l=2147483674L; (默认的int类型 32位的常量值大于int类型的取值范围,则需要强制加上L,人为告知是long类型,去常量区创建)。

好了,我们在说说基本数据类型的自动转换和强转.主要是四点:

1.整型的转换,自动转换是有小空间到大空间转换的(如果定义的常量超过数据类型的范围,需要强制转换),如果大转小需要强转;

2.浮点的转换,自动转换是有小精度大精度转换的,如果大转小需要强转。整型和浮点之间的转换的是按精度来的,整型的精度小于浮点型的精度;

3.字符型,由于字符型对应的是每个unicode编码,每个字符对应的是数值,跟整型的short一样都占2个字节16位,转换方式参照以上两种;

4.布尔类型不能与其他类型转换。可以跟着下面的示例代码理解下:

//同种基本数据小类型的转换    小空间到大空间自动转化 大空间到小空间需要强转 
		byte  a=1;
		int b=a;	
		int a1=129;
		byte b2=(byte)a1;  // 如果定义的一个常量的值大于取值范围需要强转 但是值会改变 有精度损失
		float f=1.5f;
		double d=f; 
//同种基本数据小类型不同的类型的 根据精确度高低转化
		int a3=1; //32bit
		float f1=a3;   //32bit  float更精确 所以可以自动转换
		long l1=123;
		float f2=l1;//float更精确 所以可以自动转换
		int a4=(int)f2; //float 精度更高 需要强转 会砍掉小数点后面的数据
		
//char 类型的转换 2个字节 16位 char类型存在计算机的是二进制,有数字与之对应,所以char和整型可相互转化;
		
		char c='a';
		int a5=c;
		byte bs=97;
		char ch=(char)bs; //会有精度损失

 

好了,今天总结的内容就到此了,主要是整理了一些基本数据类型的范围、常变量的概念、数据类型的转换规则。本文如果不正之处。欢迎大家批评指正。

     

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值