写点什么

Android 快速转战 Kotlin 教程,安卓已死

用户头像
极客开源
关注
发布于: 刚刚

Java 相关

1.重载函数的签名(区别是否是重载函数)


答:方法名+参数类型+参数顺序(返回值不是)


2.finalize 的工作原理


答:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用 finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用 finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。此外系统进行垃圾回收时并不保证一定会调用它,所以可以说它和对象被回收没有必然关系。


3.一个对象的创建过程


答:例如有一个 Dog 类:


1.即使没有 static,构造器其实也是静态方法,所以当首次创建 Dog 时或者 Dog 的静态域或者静态方法被访问的时候,Dog 的 class 对象会被加载。


2.在加载 Dog 的 class 的时候可能会发现其有基类,此时先暂停 Dog 的加载,转而去加载其基类。所以基类的 static 域比子类先初始化。


3.载入 class 文件之后,会创建一个该该类的 class 对象,所有关于静态初始化的动作会被执行,所以静态初始化只在 Class 对象首次加载时进行一次。


4.当使用 new 的时候,首先为 Dog 对象在堆上分配足够内存空间。这块内存控件会被清零,所有实例都被初始化成了默认值,包括基类。


5.执行所有字段定义处的初始化,从基类开始。


6.执行构造器。(在第一行会执行基类的构造器)


4.对象的销毁是按照创建的逆序来进行的。


5.final 的方法和类都不允许覆盖和继承。private 默认实现了 final。


6.简述内部类的特点


7.形式参数可被视为 local variable,也就是说形式参数相当于在方法中定义了一个局部变量 a,当传入 c 时,只是将 c 指向的对象给 a


8.finally 语句块是在 try 或者 catch 中的 return 语句之前执行的


9.简述 jvm 中默认的 classLoader 与功能


10.switch 语句后的控制表达式只能是 short、char、int、long 整数类型和枚举类型,不能是 float,double 和 boolean 类型。String 类型是 java7 开始支持


11.重写的特性


12.!=和==,当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同,比较内存地址


13.null 可以被强制类型转换成任意类型的对象,于是通过它来执行静态方法


14.如何终止一个线程


15.静态属性和静态方法是否可以被继承


16.列出各种 List,Set,Map,Queue 并说出他们的同与不同。


17.列出几种线程池


18.解释一下 java 内存模型


19.解释一下 java 代码的原子性


20.解释一下 volatile 字段


21.解释一下 synchronized 字段


22.Lock 的使用


23.wait()和 sleep()区别


24.死锁产生的条件

总结

现在新技术层出不穷,如果每次出新的技术,我们都深入的研究的话,很容易分散精力。新的技术可能很久之后我们才会在工作中用得上,当学的新技术无法学以致用,很容易被我们遗忘,到最后真的需要使用的时候,又要从头来过(虽然上手会更快)。


我觉得身为技术人,针对新技术应该是持拥抱态度的,入了这一行你就应该知道这是一个活到老学到老的行业,所以面对新技术,不要抵触,拥抱变化就好了。


Flutter 明显是一种全新的技术,而对于这个新技术在发布之初,花一个月的时间学习它,成本确实过高。但是周末花一天时间体验一下它的开发流程,了解一下它的优缺点、能干什么或者不能干什么。这个时间,并不是我们不能接受的。


如果有时间,其实通读一遍 Flutter 的文档,是最全面的一次对 Flutter 的了解过程。但是如果我们只有 8 小时的时间,我希望能关注一些最值得关注的点。


(跨平台开发(Flutter)、java 基础与原理,自定义 view、NDK、架构设计、性能优化、完整商业项目开发等)



本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Android快速转战Kotlin教程,安卓已死