JAVA 内存的简单分析、位运算、垃圾回收

版权声明: https://blog.csdn.net/weixin_42157147/article/details/80348694
JVM负责管理内存,stack栈内存,heap内存,方法区
stack:存放所有局部变量申请的内存在stack中分配
数据结构:数据存储的一种逻辑上的关系形式
局部数据和栈的数据特点:连续分配先进后出

栈 有一个 栈顶指针,就是一个变量,该变量永远指向待存放的内存区域
刚开始栈是空的,指向了栈底
压栈:push 将数据存入指针指向的位置,然后指针上移
出栈:pop 将栈顶的数据取走,指针下移,然后在取走数据,这样释放

真是的栈是通过地址访问的,存在数据共享。
位运算符
按位或,在两个操作数转成2进制,对应的位上没有都是1的和+ 运算结果是一致的
2|4=6, 4|8=12,
8|16=24, 16|2=18
&按位与可以截取 想要的位数 EG: age = 0b 0000_1010;
我想要得到后两位的数= age & 0b0000_0011 结果就是:0000_0010;就得到了后两位
EG:改变某一位:age&0b0000_0111 结果等于=0b0000_0010;改变了1位数,关灯;
按位或| 只能用来开灯,不能截取;
age*0b1101_1111 = 0b0010_0011;
一个字符,先后异或了同一个值2次,结果就是他本身
技巧:不需要中间变量交换两个变量的值
int a = 3; int b = 15;
a^=b;// a=a^b=⊙
b^=a; // b=b^⊙=b^a^b=a;
a^=b; // a=a^b=⊙^a=a^b^a=b;

垃圾回收机制
没有引用指向这个对象,就会变成garbage,垃圾回收器就会回收
程序员无权指定垃圾对象的回收,只能建议 调用Systgem.gc();

构造器 constructor 也叫作构造方法
构造方法只用来构造这个类的对象;
构造方法通过new关键字调用;
构造方法名称必须和类名一致;
没有定义构造方法,系统会自动定义一个无参的,如果定义了则不会添加
构造方法有返回值,但是不能定义返回类型,不能再构造器调用return
返回值的类型一定是本类
构造器,用来构造该类的对象,经常也用来初始化对象的属性;

重载 overload
一个方法名对应了多个方法就是重载;
同一个类,同一个方法名,
类型不同,个数不同,顺序不同(首先要类型不同)
构造方法也可以重载!
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页