对java基础课上的问题的经验性回答

虽然已经写了两年多的android代码了 现在开始着手android多媒体补丁 更多的看c++的代码去了  刚才有个java基础的培训会议 想着体验下华为内部的交流的想法参加了下

一个小时下来感觉确实是“基础”会议 概念什么的就不多说了 记录下主讲人说的对于相关概念会问的面试问题和我觉得能体现我有相应代码经验的回答:

子类重写父类方法,限制符能不能改变:当然可以改变,至于怎么改变,考虑到多肽、继承目标是复写重用代码,子类可以发展更多的方法,但是不能丢掉父类的方法,所以如果父类的方法是public 子类重写这个方法就不能变为private。

子类重写父类,异常范围能不能变:能,怎么变呢。想想实际代码中 各种子类向上抛异常,所以子类的异常不能是父类没有的 所以子类的异常范围要比父类小。

接口作用:搭建框架。跟前两个面试题比好像一下子low了- -

“==”与“.equal”:==不能被重写 .equal是每一个类里面都有的 可以被重写

强软弱引用 类似形参实参 区别是是否重新申请了内存 还是索引 指针

android的内存回收机制   以前看过的资料 不被任何对象持有就回收 jdk升级了这种判断的机制和效率 早期版本会出现循环持有无法释放内存的情况
静态方法 android代码编写中 可以不用创建对象就能使用这个方法     破坏封装,容易造成内存泄漏
单例模式 主要就是自我实现,自我同步并给出接口 具体代码查资料
final不能被继承  所以String不能被继承

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

关于final的使用一直比较模糊 在实际写代码的时候 一般都是根据开发工具的提示来添加的 算是今天的最大收获就是看了下面例子:

oncreate()(){

....

final int num = o ;

button.setOnClickListener(new onClickListener(){

Log.d("tag",num);

});

...

}

这种情况 num前面的final就是必须的 这是因为  如果不加final,num就是一个位于栈上的局部变量,当程序运行到监听器初始化的匿名对象的时候这个局部变量已经被释放了

由此可以知道  如果将这个int声明移动到外面成为全局变量是可以不加final的,而这里加了final 就将这个内存拷贝了一个副本进入了监听器。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

评价:确实是基础培训会议,对现在的我来说收获不是特别大了,不过也值得参加,期待以后更深入的进程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值