java基础-自己老混淆不清的问题,总结下来经常看看

1.抽象类和接口

抽象类中可以有也可以没有抽象方法。并且可以定义和常规类一样的变量和方法。

而接口中所有的方法都是抽象的,所有的变量都是静态不可修改的。Java接口中的成员变量默认都是public,static,final类型的(都可省略)

一个只能继承一个抽象类,但却可以实现多个接口

接口可以继承接口


2.try...catch...finally

return;//return时,finally中的语句会执行。

//System.exit(0);//若用上这句,finally中的语句不会执行。直接返回,退出程序。

3.sleep和wait

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(休息),把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,时间到了会继续运行。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

4.垃圾回收
垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身
System.gc()
Runtime.getRuntime().gc()  
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。

 5.内部类
1.静态内部类          静态变量
  a.使用static修饰的类
  b.只能访问外围类中的静态内容,包含私有内容
  c.创建静态内部类对象的语法:
  new 外围类名.内部类名();
  d.编译后.class文件名格式:
  外围类名$内部类名.class

2.成员内部类    重点  实例变量
  a.不用static修饰,类似于类中的实例变量
  b.可以访问外围类中的所有内容
  c.在外围类内部创建内部类的语法:[this.]new 内部类名();
  d.在外围类外部创建内部类的语法:
  (new 外围类名()).new 内部类名();
  e.在内部类中访问外围类的内容语法:[外围类名.this.]内容
class A{
  private String name;
  public A(String name){
     this.name = name;
  }
}

3.局部内部类          局部变量
  a.类似于局部变量,定义在方法的内部。
  b.不能使用权限修饰符,static修饰符
  c.只能访问方法中使用final修饰的变量
  d.可以访问外围类中的所有内容
4.匿名内部类    重点
  a.没有类名,class关键字,extends,implements关键字和构造器
  b.隐式地继承一个父类或者实现一个接口
  c.类似于局部内部类
语法:new 接口|父类(){
   //实现接口中的方法
   //或者重写父类中的方法
}





.............待续..............



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值