KS-JAVA-Day2

java和c#实现多态的区别

  • c#有三种方式实现多态:1.虚方法;2.抽象类;3.接口
  • java实现多态只需子类重写父类或接口的方法就行(父类方法不能被static、private、final修饰)。
  • c#中父类被重写的方法必须加上virtual或abstract关键字,而java中不用。

关于instanceof关键字的理解

A instanceof B用于判断是否能将A赋值给B(包括:强制转化赋值、隐式转换赋值)。如果能则返回true

代码块相关问题

  1. 普通代码块(直接用大括号扩住的那种),在类被实例化时就执行一次,早于构造函数
  2. 静态代码块,在类**第一次初始化(加载、链接、初始化)**时执行一次,早于普通代码块和构造函数

try catch与throws

两者都能让代码消红(即让程序编译通过),但只有try catch能捕获异常。运气好没出异常则两者结果相同。运气不好处异常了则try catch可抓住该异常使程序继续运行,而throws则会将异常丢给jvm(如果沿途没有trycatch的话),导致程序停止。

关于synchronized代码块

synchronized括号中填入什么对象即可让该对象变成开启代码块的钥匙。如synchronized(A){code},第一个进程要访问code时会拿走A,访问完后会释放A。

实现多线程的两种方式

  • 让A继承Thread类,再重写run()方法。在new出A的实例调用start()方法。然后由于A继承了Thread,所以A可用Thread中的种种功能。(注意不要调用run()方法,不然只会单纯执行run()方法而不是开启一个线程执行run()方法)
  • 让A实现Runnable接口,再new一个Thread类将A传入,之后操作这个Thread类就行了。

静态代理模式

  • 真实对象和代理对象要实现同一个接口(为什么?因为这样可以规范双方,确保双方都为了干同一件事)
  • 代理对象要代理真实角色
  • 多线程的就是静态代理模式,Thread类和自己写的类都实现了Runnable接口,Thread负责提供一系列功能,自己的类专注实现某个方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值