Java基础的一些注意点

1、java基本数据类型在运算时,比int数据类型小的数据进行运算的时候会先转换位int型计算,计算完再赋值给等式左边,如果运算式左边数据类型比int小,那么就会报错,必须使用强制类型转换。如果右边是数字常量的时候,怎么计算只要不超过左边的类型值域,就不会出问题(如果给int大的赋值,右边值比int最大范围大,就会报错,因为右边默认·int要在后面加L代表long型)浮点数默认double。

2、正码反码补码:

正数的补码和源码都是相同的,这里不是正数原码经过转换的补码和原码相同。而是规定相同。负数是符号位不变,按位取反加一就是补码,计算机中数都是以补码形式存储。

3、在空类型的方法中都是可以使用return语句,它可以直接结束方法。

如果常量池已经存在同样内容的字符串常量,则会直接把那个常量的地址赋给声明的变量。如果实例化字符串是用new方法,则在堆内存中创建地址空间比较也只能使用equals方法。

同时在使用字符串变量相加,string a=b+‘a’;他会在底层使用Stringbuilder类,先把前面的a变成StringBuilder类型,然后加号变成a.append(‘a’);再把得到的字符串通过StringBuilder.toString();变成String类型,放回堆内存,不在字符串常量池。

8、使用输出语句的时候,如果输出内容全部由变量组成,假设全int就会自动运算,但是只要有一个不是数值型,他就会变成字符串输出。

9、声明一个类之后,如果有静态变量,不管你申明一个对象还是无数个,都是用的同一个静态变量,空对象也可以访问。

10、在函数传入对象时要切记,他传入的形参,如果是地址引用,那么要看内部有没有修改地址里面的东西,如果没有修改地址里面的东西那么传入的参数没有被改变。

11、注意在变量值不在范围时,他不会报错,而是产生溢出,语法检查只能检查出类型是否错误,在运行时它遇到类型范围超了直接舍弃溢出位。

int a=Integer. MAX_VALUE;

int b=a+1;

输出结果:Integer.MIN_VALUE

12、(猜测的没有去证明过)在java基本类型中,栈空间中的存储分为变量名和变量值两个部分,引用的类型他的值就是地址,基本数据类型就是值。所有基本类型在方法内部声明,它没有初始值,因为它的变量值就是值,没有指向堆地址,并且方法内部是局部变量,他不会一直存在,它在它所在的局部运行完之后就直接销毁了,而全局变量不一样,它在对象没有被销毁的时候就不会销毁对象是在堆里创建的地址空间全部实例化所有全局变量在堆里都有默认值,因为堆是一直刷新的,栈你不动它基本不会改变。Java运行机制上来说,他知道栈的机制可能会给变量不可预料的值,但是堆没有使用的地方的值是固定的,就像int是0,布尔是0(false),都变了0,null的意思基本是代表着全零意思就是没有使用的堆空间都是0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值