Java开发面试两年经验

  • 一、反射是什么?
  • 二、Java如何遍历Map集合?

一、反射是什么?

很多人会说我直接new一个对象不就完了么,干嘛还用反射来获取对象。因为new属于静态编译,而反射属于动态编译,反射只有到运行时他才会去获得该对象的实例,从这点上可以看出反射的强大之处。
Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。

优缺点:
优点:反射可以在运行时加载、探知、使用完全未知的类,你只要给我一个路径就可以了,我通过这个路径拿到我需要的东西,我的操作与你无关了,灵活性更高了,类之间的耦合性也就降低了。
缺点:可以获取到类的私有信息,破坏了类的封装,使类变得不安全。使用反射还会降低程序性能。所以说使用反射优点突出,缺点同样突出。

二、Java如何遍历Map集合?

1.通过entrySet方法(可以同时获取键和值,当map为null时抛出NullPointerException.)

    public static void main(String[] args) {Map<String,String> map = new HashMap<String,String>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");map.put("key4", "value4");Set<Map.Entry<String, String>> entrySets = map.entrySet();for (Map.Entry<String, String> entrySet:entrySets){String key = entrySet.getKey();String value = entrySet.getValue();System.out.println(key + value);}}

2.通过map集合里keySet,values(只要单独遍历键或者值)

    public static void main(String[] args) {Map<String,String> map = new HashMap<String,String>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");map.put("key4", "value4");Set<String> strings = map.keySet();Collection<String> values = map.values();for (String string:strings){System.out.println(string);}for (String string:values){System.out.println(string);}}

3.根据key再使用map.get(key)的方法访问value(这种方式效率低效)
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
map.put(“key1”, “value1”);
map.put(“key2”, “value2”);
map.put(“key3”, “value3”);
map.put(“key4”, “value4”);

    Set<String> strings = map.keySet();Collection<String> values = map.values();for (String string:strings) {String s = map.get(string);System.out.println(s);}}

Java开发面试经验相关推荐

  1. 2019年初Java开发面试经验(南京)

    背景:16年6月份本科毕业,两份工作经验,第一份半年,第二份两年. 个人技术栈:熟悉常用js和jquery编程,熟悉Maven,svn等工具的使用,熟练掌握web前后端交互,掌握javaSE编程,掌握 ...

  2. 陌陌、BIGO、比亚迪、好未来、同程艺龙、去哪儿、联通西安研究院、华为、海康威视java开发面试经验

    [陌陌] 这个面试比较早,是大三的时候暑期面的提前批,为了试水...面完后才知道自己差了多少... 1,自我介绍 2,简述面向对象的三大特性 3,list,set,map 4,arraylist和li ...

  3. 快手java开发面试经验大全

    1.自我介绍 2.java集合.hashmap详细介绍.关键参数.线程安全的集合.队列和栈.用两个栈实现队列算法 3.jvm结构 4.多线程锁:synchronized.reentrantlock.c ...

  4. Java开发面试高频考点学习笔记(每日更新)

    Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...

  5. Java开发面试简历这么写,命中率达70%

    上篇文章我们了解到,想要有面试机会,首先要完成一份好的简历.但是在撰写简历的时候,往往有一些细节很容易被忽视,导致面试机会远远不如自己的期望值.一份经过优化的简历,面试的命中率可以达到70%.那我们就 ...

  6. 2023字节、腾讯、阿里等6家大厂Java开发面试真题+高频面试题总结

    又是一年求职面试旺季,不管你是新进职场小白还是职场老鸟,这些关于java程序员面试应准备的东西你都应该知道. 面试前需要准备 1. Java 八股文:了解常考的题型和回答思路: 2. 算法:刷100- ...

  7. 初级Java开发面试必问项!!! 标识符、字面值、变量、数据类型,该学学了!

    最近事情太多,没太时间写博客.今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的学弟学妹们. 前面我己写过多篇推文,相信看过我文章的伙伴们已经了解掌握了不少.从目前流行的开发技术. ...

  8. 浅谈三层架构 通过这个,+Java开发模式经验。终于相通了,动软到底是为什么这么做...

    浅谈三层架构 收藏 自己理解的原理 http://www.cnblogs.com/mahaisong/archive/2011/05/12/2044665.html 浅谈三层架构  通过这个,+Jav ...

  9. 顺丰java面试题_顺丰java开发面试分享,顺丰java面试经面试题

    今天要给大家分享的是一个小伙伴的顺丰java开发面试过程,其中包括了面试流程,面试题目,和回答,感兴趣的朋友可以来了解一下哈. 一.面试流程 是中午进行的面试,首先是做自我介绍,之后就是讲一下项目,然 ...

最新文章

  1. UA STAT675 统计计算I 随机数生成6 Accept-Reject Algorithm
  2. mysql设计积分兑换表_积分系统数据库表设计.docx
  3. 06006_redis数据存储类型——String
  4. oracle data guard方案,Oracle Data Guard 概念篇
  5. 【Python】Python中的关键字
  6. 移动开发在路上-- IOS移动开发系列 多线程一 [转]
  7. 测试beta测试_重新想象不断变化的自动化世界中的Beta测试
  8. VB案例:简易记事本
  9. win11系统卡死怎么办 Windows11系统卡死的解决方法
  10. Python写入文件,但是发现文件为空,竟然未写入!
  11. 【工具使用】Modsim32软件使用详解
  12. linux 中的 usr 是什么含义
  13. 如何调节pycharm字体大小
  14. 华为设备,什么是MAC地址漂移
  15. FireFox新标签页打开搜索和书签
  16. 做个男人,做个成熟的男人
  17. html 复制链接功能,h5分享功能[通过复制网页链接分享]
  18. 计算机省一级b类模拟试题,江苏省计算机一级模拟试题及答案
  19. Bootstrap导航和导航条
  20. 基于双TMS320C6678 DSP的3U VPX的信号处理平台18 3U VPX信号处理 C6678板卡 C6678开发板 C6678处理板 C6678信号处理板

热门文章

  1. Snowdrop 2.0.0.Final 发布
  2. Html5+CSS3+JS代码实现圣诞节动态表白特效,祝你成功
  3. 【Spark】RDD入门编程实践(完整版)
  4. 遍历获取字符串中的每一个字符
  5. android开发静态库,Android:如何正确链接我自己的静态库?
  6. oracle nls lang 修改,修改NLS参数、NLS_LANG参数格式等
  7. 【报告分享】 2021中国社交电商行业发展报告-中国互联网协会(附下载)
  8. 从消费级到航天级,芯片有什么区别?
  9. 关于成长、个人增值,未来机遇/发展
  10. CentOS7磁盘分区及文件系统