2021.7.5总结

一,为什么byte类型127+1是 (-128)
需要分成两个问题来回答,1,为什么会出现补码;2,为什么byte类型127+1是 (-128)
(1),因为计算机只有加法没有减法,在做减法运算的时候,可以认为是加上一个负数。使用原码进行减法运算会出现问题,例如计算1-1,因为计算机有加法没有减法,所以计算机自动换算成1+(-1)
1-1=1+(-1)=[00000001]原+[10000001]原=[10000010]原=-2 (符号位也参与运算),运算错误;
为了解决源码相减不等于0的问题,出现了反码,但是会出现±0的问题,
1-1=1+(-1)=[00000001]原+[10000001]原=[00000001]反+[11111110]反=[11111111]反=[10000000]原=-0
补码是为了解决反码产生的±0的问题,
1-1=1+(-1)=[00000001]原+[10000001]原=[00000001]补+[11111111]补=[00000000]补=[00000000]原
(2)byte类型有256个值,因为0占据了一个正数的位置,所以byte的范围是-128~127,eclipse运行byte a=127,byte b=1,System.out.println(a+b);结果是128,由于变量提升,128是int类型,4字节,使用强制类型转换防止变量提升得到结果才为byte类型,1字节,只能输出后八位,所以是-128。
二,全局变量和局部变量的不同
.class文件进入JVM后,main方法进入方法区,全局变量也在方法区,不new对象,想进行调用时,main方法才会入栈,
如果.java里有main方法,就直接调用这个文件的main方法,但是堆内存中不会开辟run方法的空间,可以直接调用全局变量;没有就new这个文件的对象,用对象去调用所有的方法,new一个对象后,对象入栈,并且在堆内存中开辟一个独立的run方法的空间,run又会在它里边给局部变量开辟空间,调用run方法时,run方法才会入栈;
三,普通方法特点
-----普通方法需要一个访问权限(public,private,project,不写)
-----返回值类型 每一个方法独有一个返回值类型,要求返回一个固定类型的值,void无返回值
-----方法的方法名 在同一个方法当中不能出现同一个方法的签名(方法的签名:方法名+参数列表)
-----一个方法当中必须要有参数列表,参数列表可以为空
-----方法的修饰 我们可以用一些关键字来修饰我们的方法,我们的方法也会因此获得不同的含义
四,构造器特征
本质:构造器是一个特殊的方法,主要用于构造对象时,给对象提供数据;
特点:
(1),构造器和类同名;
(2),在java中有个默认的无参数的构造器,一般情况下我们调用的就是这个,当我们在类当中定义一个构造器的时候,无参构造器会被覆盖掉;
(3),我们new对象的时候,new后边跟着的就是我们的构造方法;
(4),我们的构造器没有返回值;
(5),我们的类当中可有一个或多个构造器;
五,==和equals的不同·
(1)
----对于基本类型,判断的是值是否相同
----对于引用数据类型,判断的是地址是否相同
(2)equals:
-----如果是在object类里边,使用的是
,比较的是地址;
如果是在String类里边,重新定义equals方法,先比较地址,如果地址不相同,然后再比较里边的内容是否相同。
----不支持基本数据类型的调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值