昨天又接受了一次面试(视频面试),这次感觉和之前的面试还是有不同的,也算是比较新颖的面试把。上来先自我介绍然后又问我--“说一下你对Android的理解把”。这就很难受啦,因为上一个这么问我的把我问自闭啦。但这次不太一样,一直都是我说,面试官也没说什么,一直在倾听。但我说完之后,也没有就我说的问题来提问,而是问了我一下关于java,虚拟机,计算机网络的知识,还问了一些实际性的问题(说白了就是和技术无关的问题)。这弄得我有点懵,完全没涉及Android的问题。感觉有点像hr面,不太像技术面。那么博主就来分享一下问的问题把。
-------------------------------------------------------------------------------------------------------------------java问题:
1.在java中用过多线程处理问题吗? Android中用的不少,因为耗时操作都需要多线程处理,但在java中用的不多,我就说了前几天看的生产者与消费者问题,这个问题用了多线程的同步。
2.int与Integer的区别:(这个也算比较常问的把) int为一个数值,而Integer为一个对象。 扩展:Integer i = new Integer(100);
Integer j = new Integer(100); 由于生成的是对象,所以new两次就是生成两个不同的对象,所以i==j是错的,返回的是false。
-------------------------------------------------------------------------------------------------------------------计算机网络问题:
TCP与UDP的区别: 这个问题不是很难,算是计算机网络的热门问题啦,答的也比较好.(还是给上网上的标准答案把,自己总结的总感觉差点意思) 1.TCP需要连接,UDP不需要。 2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。(我说的是TCP为可靠传输,UDP为不可靠传输)。 3.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。 4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。(这个博主没提到<难受>) 5.TCP对系统资源要求较多,UDP对系统资源要求较少。(这个博主也没提到<难受><难受>)
-------------------------------------------------------------------------------------------------------------------操作系统问题:
解释一下,并发,共享,虚拟,异步都是什么: 头一次碰到操作系统问题,直接蒙了。<超难受>(问的时候甚至都不知道这是操作系统问题) 1.并发:在一段时间内,运行多个程序,执行多个任务。从宏观上来说的。 2.共享: 资源共享,即系统中的资源可供多个并发执行的进程共同使用。 3.虚拟:把物理上的一台设备变成逻辑上的多台设备。 4.异步:在多道程序环境下,允许多个程序并发执行。但由于资源有限,进程的执行不是一贯到底,而是走走停停,已不可 预知的速度向前推进,这就是进程的异步性。
-------------------------------------------------------------------------------------------------------------------虚拟机问题:
说一下虚拟机如何加载类的: JVM(虚拟机)加载类分为3步:加载,链接,初始化。(基本数据类型无需加载,可以省掉加载的步骤) 1.加载:加载是通过加载器进行加载的。Java虚拟机有个一加载机制,叫做双亲委派模型。具体就是当一个类加载器拿到这个类的时候先给自己的父类加载器进行加载,如果父类加载器没有找到所请求的类,才会给该类加载器。 2.链接:就是讲加载的类合并至Java虚拟机,使之能够执行的过程。具体流程可以分类验证,准备以及解析三个过程。 (1)验证:验证的目的就是需要符合Java虚拟机的规范。 (2)准备:为加载类的静态字段分配内存,部分Java虚拟机还会在这阶段构造其他跟类层次相关的数据结构,比 如说用来实现虚方法的动态绑定的方法表。 (3)解析:当class文件加载到虚拟机之前这个类不知道自己的成员变量和成员方法的地址,所以编译器会生成一 个符号引用,这个符号应用包括所在类的名字,目标方法的名字,接收参数类型以及返回类型。 3.初始化:初始化就是初始化静态字段,如果静态字段被final修饰,那么该字段就会被标记为常量值,其初始化直接由 Java虚拟机完成。
----------------------------------------------------------------------------------------------------------------- -- 实际性问题:
1.你在大学做的最有成就感的事? 2.你做的过的最有挑战性的事?
这个博主就不分享了,每个人都不一样。但其实真的不好答,一下给博主问懵了,心想我一宅男,平时学学习,累了打打游戏。什么经历都没有啊。<难受>
-----------------------------------------------------------------------------------------------------------------
这就是博主昨天面试的面试题啦,问的问题有的真的挺偏的,其实那个操作系统问的不是很偏,真的就是基础中的基础。但博主没复习过也没啥办法<难受>。感觉要面试的小伙伴还是各个领域的知识点都了解一下比较好。博主就当给大家踩雷啦。
//老规矩,如果博客上知识点出现错误,私信或留言。会马上更改的。