java基础查漏补缺day06

1.打断点的形状

  • 菱形断点, Java Method Breakpoints–方法
  • 眼睛断点, Java Field Breakpoints–字段
  • 闪电断点, Exception Breakpoints–异常

2.快捷键alt+鼠标左键跨行选择

3.同一包下不用导包。

不同模块下的包不支持直接调用,需要用到Maven引入依赖。

4.类体里只能写:定义语句和方法。

赋值语句不行。
在这里插入图片描述

5.java对象什么时候会被回收

  1. 在什么情况下回收对象(可达性分析算法):
    JVM是通过可达性分析算法判断对象是否存活的,这个算法的基本思想是:通过一系列被称为”GC Roots”的对象作为起点,向下搜索,搜索所走过的所有路径称为对象的引用链,当一个对象通过引用链无法到达“GC Roots”时,说明该对象是不可用的,是可以回收的(不一定回收)。
    GC Roots说明:在java中,可作为GC Roots的对象包括以下几种:
    java虚拟机栈帧中的对象。
    方法区中的静态属性引用的对象
    方法区中常量引用的对象
    本地方法栈JNI中引用的对象
  2. 如何回收对象(标记算法判定对象生成还是死亡):
    在可达性分析之后,如果判断对象通过引用链无法到达“GC Roots”,则认为该对象是可回收的,但是不保证一定会回收这个对象。对象的回收至少需要经过两次标记过程:
    判断对象通过引用链不可达之后,进行第一次标记并且进行一次筛选,筛选的条件是判断对象是否有必要执行finalized()方法。如果对象没有覆盖finalize()方法或者不是虚拟机第一次调用,则判断为没有必要执行finalize()方法。
    如果对象有必要执行finalized()方法,则会将该对象放到一个F-Queue队列中,并且虚拟机会自动创建一个低优先级的Finalizer线程执行。“执行”的含义是虚拟机会去触发Finalizer线程的执行,但是不会等待结果的返回。因为如果finalized()方法执行时间较长或者产生死循环的话,将导致F-Queue中的其他对象永远处于等待状态。甚至导致整个回收系统的奔溃。finalized()方法是对象实现逃脱的唯一一次机会。如果对象没有逃脱,则在JVM进行第二次标记之后会回收该对象。
  3. 方法区的回收
    方法去处于永久代中,永久代中的回收主要回收两部分的内容:废弃的常量和无用的类。
  4. 回收常量:回收常量和回收堆对象是相同的,如果一个常量在在常量池中已经存在,如果在系统中没有一个对象引用常量池中的常量的话,那么这个常量就需要被回收。
  5. 回收类:回收类的条件比回收常量的苛刻许多:以下三点为必要不充分条件:

该类所有的实例都已经被回收,也就是说java堆中不存在该类的任何实例
加载该类的ClassLoader已经被回收
该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。

原文链接:https://blog.csdn.net/u010805617/article/details/77939899

6.set/get–方法有啥好处

1、灵活性

灵活定义格式化输出和条件写入

2、安全性

只读和只写权限

7.alt+insert–>输入g关联getter and setter方法。

8.8字符大小的来源

首先一个byte是由8个bit组成,它是最小的可寻址单元 ,存储了ASCII所有字符

9.Java成员变量声明时可以不用赋值,而局部变量声明时一定需要赋值

任何变量在C语言中不赋值的话,会是乱码的形式,可能有安全问题。所以java修正了这点,成员变量初始化的是时候会附上默认值。

栈中不会被初始化,堆可以被初始化。

10.构造方法–不可以return 数据,可以只写return.

11.this.的作用

局部变量和成员变量重名就会产生一个问题。

根据java中的就近原则,speak()方法中打印出来的name和age就是上面的“哈哈”和“16”,即使此时外类通过set方法赋值,照样打印出来的是方法中局部变量赋的值。这就是java中的就近原则。

img

img

这就引入了this关键字。

this关键字的作用就是用来区分成员变量和局部变量的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值