Java工程师面试题

1. ArrayList , Vector , LinkedList 的对比。

 ArrayList LinkedListVector
数据结构动态数组双向链表动态数组
线程安全性

线程不安全,只适用于单线程 ,需要提供外部同

 List  list = Collections.synchronizedList(new ArrayList());

线程不安全,只适用于单线程 ,需要提供外部同步
 List  list = Collections.synchronizedList(new ArrayList());
线程安全,每个方法都实现了synchronized关键字,不需要提供外部同步,适用于多线程环境
适用场合适用于get、set、按顺序add操作适用于add、delete操作 
遍历方法

索引值遍历最

for(int i=0;i<list.size();i++){

   list.get(i);   

}

迭代器遍历最快

Iterator iter=list.Iterator();

while(iter.hasNext()){

     iter.next()

}

 

2.什么是单例模式(Singleton) ? 请在下面写出一个单例模式类,并支持多线程调用。

  创建某类对象时,无论创建多少次该类对象只有一份在内存中,这就是单例模式。

  支持多线程调用,考虑线程安全,只需要加锁即可。

3.请描述一下JVM加载class文件的原理机制?

 JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

4.请谈谈对SQL注入的理解,请给出你知道的防止SQL注入的方法。

 解决办法:a. 利用Javascript,在客户端进行校验 b.程序判断 c.使用PreparedStatement连接数据库。(参数化) d.利用框架技术

5.请谈谈对Hibernate的理解,并简要叙述Hibernate的一级缓存和二级缓存。

一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个session(一定要同一个session)又做了同一个操作,hibernate直接从一级缓存中拿,而不会再去连数据库取数据

二级缓存就是SessionFactory级别的缓存,顾名思义,就是查询的时候会把查询结果缓存到二级缓存中,如果同一个sessionFactory创建的某个session执行了相同的操作,hibernate就会从二级缓存中拿结果,而不会再去连接数据库取数据


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java工程师面试是非常广泛和多样化的,根据引用,可以包括2020java面试汇总,java208道必备java后端研发面试,企业面试,模拟测试等资源。这些目可能涉及到Java基础知识、面向对象编程、多线程、集合框架、IO与文件处理、异常处理、数据库操作、设计模式、算法与数据结构等方面的内容。 根据引用中的描述,面试的内容是一位Java工程师总结的1000多道面试。这份资源的目的是帮助其他人更好地准备面试,避免迷茫。这份面试集可能涵盖了各个互联网大厂常见的问和知识点。 根据引用的经验分享,Java工程师可能会被问到各种技术话,包括LeetCode刷经验、面试经验、具体的技术知识点以及实际项目经验等。面试官可能会提问关于Java生态系统、常用框架、设计思想和常见的问情况。 总而言之,Java工程师面试的范围广泛,涵盖了Java的基础知识、面向对象编程、多线程、集合框架、IO与文件处理、数据库操作等方面的内容。此外,面试还可能包括项目经验、算法与数据结构、设计模式等高级知识点。因此,准备Java工程师面试时,需要全面了解这些方面的知识,并积极参与刷和阅读面经,以增强自己的竞争力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java工程师面试汇总](https://download.csdn.net/download/qq_41821067/12755507)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java开发面试目,微服务架构开发实战](https://blog.csdn.net/m0_56835488/article/details/118898219)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值