Android面试题
看了那么多书,真心发现一个道理:看懂了并不表示会说会用。
怎样改变 int 的第二个字节;
答:一种是采用位运算。
还可以通过将 int 转换成二进制的字符串,针对字符串进行操作。
(可我当时是什么情况呢,我忘了 int 有几个字节了)
Java 怎么实现乘以 2 的操作;
答:通过移位操作的左移运算;(这个也要忘掉?)
介绍下二叉树
答: 每个节点最多有 2 个子树的树结构。
使用场景:常被用于实现二叉查找树和二元堆积。
存储表示:通过数组和链接串列来存储。
访问二叉树的方法:前序遍历,中序遍历,后序遍历。
参考资料: 二叉树-维基百科
(还是将数据结构和算法恶补下吧,基础太薄弱了)
view 中的draw()
和onDraw()
区别
答:
onDraw()
是draw()
方法的一部分;- 自定义 View 时只需要重写
onDraw()
方法;
(通过源码public void draw(Canvas canvas)
,
发现在draw()
方法中,对onDraw
进行了调用)
1 | /* |
When implementing a view, implement onDraw instead of draw(Canvas)
参考资料:
- View.java 源码的 draw(Canvas)方法;
- [Android 界面] 请教一下 View 中的 draw 和 onDraw 有什么区别