JAVA学习笔记(2)

JAVA学习笔记(2)

一、基本数据类型

基本类型所占字节数
byte (字节型数据)1
short(整数型数据)2
int (整数型数据)4
long (长整数型数据)8
float(单精度浮点型数据)4
double(双精度浮点数型数据)8
char(字符型数据)2
boolean (布尔型数据)1

注:

  1. 在Java中,定义整数型数据时,如果字面量是十进制的数值,则会自动默认为int型;定义小数型数据时,如果字面量是小数的数值,则会自动默认为double型。
    例:
class test 
{
	public static void main(String[] args) 
	{
		byte b =(byte)300;  //此行代码将 int 转换为了 byte ,精度丢失,byte 只能读取 300 二进制形式的 后八位。
		                   //300 的二进制表示为 :1 0010 1100 。
		                  //后八位:0010 1100 ,对应十进制为:44 。

		System.out.println(b);
	}
}

/*
运行结果:
44
*/

基础数据类型中的强制类型转换问题:

  1. long和int的区别
    例:
class test 
{
	public static void main(String[] args) 
	{
		long l = 7777777777;   //整型的字面量会被默认为int型,7777777777超出了int的范围,故编译报错。
		System.out.println(l);
	}
}

/*
运行结果:
test.java:5: 错误: 过大的整数: 7777777777
                long l = 7777777777;
                         ^
1 个错误
*/

修改后:

class test 
{
	public static void main(String[] args) 
	{
		long l = 7777777777l; //数值后加字母l(或L),表示此数为long型数据。
		System.out.println(l);
	}
}

/*
运行结果:
D:\myjava\ja>java test
7777777777
*/
  1. float 和 double
    例:
class test 
{
	public static void main(String[] args) 
	{
		float pi = 3.14;  //字面量为小数,系统默认为double型
		                 //double占8个字节,float只占4个字节,编译器报错。
		double pi2 = 3.1415926;
		System.out.println(pi);
		System.out.println(pi2);

	}
}

/*
test.java:5: 错误: 不兼容的类型: 从double转换到float可能会有损失
                float pi = 3.14;
                           ^
1 个错误
*/

修改后:

class test 
{
	public static void main(String[] args) 
	{
		float pi = 3;  //int型数据占4字节,float型数据也占4字节,可以通过。
		double pi2 = 3.1415926;
		System.out.println(pi);
		System.out.println(pi2);

	}
}

/*
运行结果:
D:\myjava\ja>java test
3.0
3.1415926
*/

注:float型数据占4个字节,long型数据占8个字节,float比long所表示的范围要大。

结论:在基础数据类型中,如果大转小,不强制类型转换,编译无法通过。

二、关于计算机内存中存储的二进制

在计算机内存中存储的二进制数值都是以补码的形式进行存储,在内存中第一位表示符号位,0表示正,1表示负。

  1. 对于一个正数:
    其原码、反码、补码均一致。
    例: 对于十进制数值 7 ,其原码、反码、补码:0000 0111
  2. 对于一个负数:
    原码即为二进制形式。
    反码是在其原码的基础上,符号位不变,其余各个位取反。
    补码是在其原码的基础上,符号位不变,其余各个位取反 ,最后+1。(也即在反码的基础上+1)
    例:对于十进制数值 -7
    -7的原码:1000 0111
    -7的反码:1111 1000
    -7的补码:1111 1001

以上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值