Android面试中常见的Java面试题

下面是Android中关于java方面的常见面试题:

一.抽象类与接口的区别?

1、抽象类可以提供成员方法的实现细节,而接口中只能存在 public 抽象方法; 2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的; 3、接口中不能含有构造器、静态代码块以及静态方法,而抽象类可以有构造器、静态代码块和静态方法; 4、一个类只能继承一个抽象类,而一个类却可以实现多个接口; 5、抽象类访问速度比接口速度要快,因为接口需要时间去寻找在类中具体实现的方法; 6、如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。 7、如果你往接口中添加方法,那么你必须改变实现该接口的类。 8、接口更多的为了约束类的行为,可用于解耦,而抽象类更加侧重于代码复用。

二、Java 中深拷贝与浅拷贝的区别?

1、浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝, 此为浅拷贝。 2、深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。

三、谈谈Error和Exception的区别?

1、Exception是java程序运行中可预料的异常情况,咱们可以获取到这种异常,并且对这种异常进行业务外的处理。 2、Error是java程序运行中不可预料的异常情况,这种异常发生以后,会直接导致JVM不可处理或者不可恢复的情况。所以这 种异常不可能抓取到,比如OutOfMemoryError、NoClassDefFoundError等。

四、什么是反射机制?反射机制的应用场景有哪些?

Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。 应用场景:1. 逆向代码,例如反编译2. 与注解相结合的框架,如 Retrofit3. 单纯的反射机制应用框架,例如 EventBus(事件总线)4. 动态生成类框架 例如Gson

五、谈谈你对Java泛型中类型擦除的理解,并说说其局限性?

Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类型擦除。局限性:如在代码中定义的List和List等类型,在编译后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM 来说是不可见的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转 换异常的情况。类型擦除也是Java的泛型实现方法与C++模版机制实现方式之间的重要区别。

六、说说你对Java注解的理解?

三种注解:source、class、runtime。分别在源码,编译时,运行时存活自定义的source注解,可以用来对一些方法或者参数进行约束,比如说指定线程,指定参数类型class注解是配合apt编写注解处理器, 对注解的类或者变量进行解析生成.class文件 辅助工作 比方说 arouter,在注解处理器中生成代码,帮你做路径和activity的路由表,butterknife的注解帮你做findviewbyid的工作,runtime注解 则是在runtime时还能存在的,通常配合反射机制,把注解标注的对象拿到进行操作,比方说 retrofit,通过反射机制拿到注解的,接口和接口中的方法,在通过动态代理生成接口的实现类。

七、谈一谈Java成员变量,局部变量和静态变量的创建和回收时机?

成员变量:生命周期伴随类对象,类对象回收时回收,存在堆里。 静态变量:不回收,在方法区随着类的加载而加载,随着类的消失而消失,由于类需要非常长时间的不使用,不利用,不关联,才有可能会被回收机制回收,所以静态成员变量的生命周期特别长,除非是共享数据,否则不建议使用静态; 局部变量:方法调用时创建 方法结束时被标记为可回收,存在栈里

八、请说说Java中String.length()的运作原理?

privatefinalcharvalue[];
public String(char value[]) {
this.value=Arrays.copyOf(value,value.length);
}
public int length()
{ return value.length;
}
#android面试#
全部评论

相关推荐

今天7点半面鹅厂 teg计费平台二面两个面试官,md进来不说,面到一般进来一个面试官,说有两个。纯纯压力面,我真的面试体验好差,写一个防抖函数,就基本的一个闭包定时器,我不知道有啥,他说你平时也这样写代码的吗,你这有什么好说的。僵持了一分钟,真的不知道该说啥😅。后面就问登陆态,问了很多。vue和react区别,写了一个二分查找。最后开放题,问我怎么设计扫码登陆,幸好有看过一部分,我就勉勉强强说了大致流程😅,就一直问这些我不会的😭。第二个面试官问我架构设计,构建知识体系啥的,感觉问的好宽泛,真不知道咋说。本来被压力了,面试状态真的差,面了将近80min吧。8点临时召开了一个会议,我mt发现我去面试了,面完试被约谈了。说了很多事情,晚上十点才到家😭,心很累。现在好难抉择,我需要放弃投暑期实习了,已经不能再面试了,出了点事,再面我就要滚蛋了,需要all in这边的转正了。感觉压力很大,才被面试官压力,约谈也被mt压力了,唉。倒霉了一整天。mt其实人挺好的,愿意跟我说一些事情😥,我主要是经历了几次人事调动,我都不知道这个是我最后的mt,只不过可能因为自己这种行为确实对一个管理者来说是不稳定的因素补充,美团暑期也约面了,云智周五还要二面😭,只能统统拒了 #大厂实习许愿#  #前端#
点赞 评论 收藏
转发
小Z与大部分鼠鼠一样,出生在一个一般的家庭,母亲是小学老师,所以教育这方面比较看重。在一系列补习班与奖项的加持下,小Z进入了全市数一数二的中学分部,那一年是 2014 年。初中的三年是小Z变化最大的一段时期,告别了大山里面的生活,全面转入现代城市生活,学了太多新事物,这个时候才大概知道qq以及qq空间的用法。看着室友用着 iPhone 6 一起玩游戏,这个时候对苹果设备还不感冒。偶然一次机会,室友们在熄灯之后还在继续玩,小Z发现一个细节,自己的 Android 机亮度开到最低还是很亮,但是 iPhone 的亮度就可以降到足够低。于是小Z下定决心,省吃俭用三个月,用800块钱买了一部二手 iPhone4s。至此开始了对苹果产品的折腾。时间过得很快,转眼就是2017年,马上要面临中考的压力。之前在小学能每次年级第一的小Z,到了这里只能排一个中等水平。整个中学2017级一共有两千多人,小Z能排在900~1000名,中考发挥得不错,最后的排名在700多,虽然离400名进本部有亿点差距,不过这个成绩进分部,也就是本校是没啥问题的。于是小Z继续留在了这个学校。虽然高中还是在同一所中学,但是身边的同学也都不一样了,初中那会一个班上要么都是住读生,要么都是走读生。现在小Z班上一半是走读,一半是住读,再加上作为最后一届老高考,高一还要进行文理分科,整个班人员流动也十分频繁,大家都很忙,很压抑,现在来看,这就是人们说的高考决定一切导致的吧从小学到高中,身边同学越来越陌生,自己变得越来越社恐。沉迷于折腾电子设备,捡垃圾,打LOL,心思没有放在学习上,成绩一直处于中等到中等偏下。2020年7月7日,可能这是为数不多被疫情延长了的高考时间吧。出分的那天,本来估分可以排在1w名左右,但实际上位次排在了3w7。从分数上看,只高了一本线7分,在高中班上只能排在倒数的级别 看着身边的小伙伴在qq空间晒着自己分数,录取通知书,小Z一气之下删了大部分初中,高中好友,通过这样的方式,缓解心里的落差。其实主要是不能接受 从此之后,小Z基本上断掉了所有的社交媒体,原本中学期间喜欢发空间分享生活的他,现在变得冷漠,拒绝交流。高考完的暑假,小Z在家躺了两个月。母亲在研究许久之后,给小Z报了重庆邮电大学第二批次软件工程,这个专业的最低分数线是505分,幸运的是,小Z考了507。
点赞 评论 收藏
转发
16 7 评论
分享
牛客网
牛客企业服务