`
架构师
  • 浏览: 54907 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java面试,谈Set, List, Map, Spring框架, J2EE

阅读更多
和技术经理的面试。本以为这样的题目只有书上有,现实中面试应该不会问的吧,谁知道有的公司就是这么的高端!

经理:Set和List的区别?
我:Set中元素无序,只能说某个元素是否在Set里面,不能说是第几个元素。
经理:这个对,不过这个不是最重要的,你回去再查一查吧。
(什么叫最重要,难道我说的这个还不够重要?典型的以标准答案为准,别的答案都一竿子打死思维。)

经理:HashMap和HashTable区别?
(多少年的老东西了,怎么还在问哪。)
我:以前的说法是HashTable线程安全,HashMap线程不安全。但更重要的区别是,HashTable在Java的较新版本如1.6, 1.7版本中已经不建议使用了。一般都是用HashMap。
经理:你这个是纯粹照着书上的答案背下来的,没有自己的观点。
(你还好意思说,你这些题目难道不是书上抄的,既然题目是书上的,答案为什么不能是书上的。)
经理:你光会背书,等到你需要多个线程之间共享的时候,你用HashMap就会出问题。
(大哥,你这是什么逻辑啊,我光会背书也知道多线程不用HashMap啊。)

经理:用过哪些集合?
我:ArrayList, HashMap。一般只用这两个。
(我没事做干嘛要用那么多乱七八糟的集合啊)
经理:用过哪些设计模式?
我:……静态工厂模式?
(我怎么知道用过哪些设计模式啊,框架又不是我开发出来的!)
经理:知道哪些SQL优化的方法?
我:不要嵌套很多个子查询。
经理:我是说,有什么具体的调优做法吗?
我:用debug单步调试,看是不是读写数据库的这个语句慢。不过这个在开发环境也测不出来吧,数据量小,生产环境慢开发环境不一定慢。
经理:(继续问了N个SQL优化的问题)比如说给你一个SQL语句,告诉你这个语句就是慢,你会怎么去调优?
我:……我们一般写SQL,能保证结果正确,符合业务规则,就已经很不错了吧,很少说还去考虑调优的。
(不知这位大哥手下究竟是什么大项目,或者是硬件配置低到了什么程度,才会出现SQL总是慢?)
经理:Spring的IOC和AOP能讲一下嘛?
我:IOC是……那个叫做……注入……对,依赖注入,就是生成一个Bean不是通过new来生成,而是让Spring根据xml中配置好的内容来自动生成。AOP是在执行方法之前和之后能够自动进行一些操作,例如事务提交,记录日志。
(我又不是研究框架的,问我我怎么知道!)
经理:谈一下Spring的事务管理?
我:是通过AOP,是在xml里面配置,告诉他在一个方法执行完之后提交事务,如果方法执行到一半出现异常,会自动回滚事务。
经理:听你这个回答,感觉是自己没有亲自做过,只知道大概的意思,没有真正理解。
我:对啊,是这样。
(有谁会一天没事去搭建框架,配置框架啊,人家配好的我们使用不就好了。)


总之我的总结是,J2EE的前辈们辛辛苦苦搞出来Spring框架,完善了这么多版本,力求做到容易上手、容易使用,希望能让我们普通程序员可以把精力集中在业务逻辑上,而不是一天到晚在那纠缠框架如何配置,框架的原理是啥。而面试官对此毫不领情,人家已经封装好的东西,他偏要给你拆出来,问你里面的原理。 违反基本的面向对象思想,违反基本的软件工程思想,这就是目前很多面试官的通病。


陆续想到,补充:

经理:重载和重写的区别?
我:……(想了几秒) 重载是方法名相同,参数类型或者参数个数不同。重写是在继承的时候才有的,子类的方法名、参数类型、参数个数都相同,这叫重写。
(使用的时候谁管他重载重写啊, 都是用的英文版的Eclipse,上面无论如何是不会出现“重载”“重写”这几个字的。大哥你的问题太高端了。)
1
2
分享到:
评论
2 楼 架构师 2014-01-08  
1127102203 写道
面试官怎么判断面试者的技术水平呢?


我今天专门写了篇文章来介绍。 http://drugs.iteye.com/blog/2001462
1 楼 1127102203 2014-01-04  
面试官怎么判断面试者的技术水平呢?

相关推荐

    j2ee及java面试题

    1. **Java基础知识**:Java面试中首先会考察的是基础语法,如面向对象编程概念(类、对象、继承、多态、封装)、异常处理、集合框架(List、Set、Map的区别与使用)、IO流、多线程、反射、设计模式等。理解这些基本...

    java j2ee面试题库

    1. **Java基础知识**:面试通常会从Java的基础开始,包括数据类型、运算符、控制结构(如if,switch,for,while等)、类与对象、封装、继承、多态、异常处理、集合框架(List、Set、Map)以及IO流。 2. **JVM原理*...

    JAVA面试题总汇:j2ee面试知识.pdf

    - **Java集合框架:** List、Set、Map等集合类的原理和使用场景,以及它们的子类如ArrayList、HashMap的内部结构和性能差异。 - **Java I/O操作:** 输入输出流的处理、NIO和IO的区别以及异步I/O的使用。 - **多线程...

    Java/J2EE工程师面试题

    在Java/J2EE工程师的面试过程中,面试官通常会针对候选人的基础知识、编程能力、框架理解、项目经验以及问题解决技巧等方面进行考核。以下是一些常见的面试知识点,这些内容可能会出现在"Java面试题"的压缩包文件中...

    java与j2ee面试试题总结(终结版)

    面试中可能涉及的基础知识点包括:Java语法基础(如类、对象、封装、继承、多态等)、异常处理、集合框架(List、Set、Map的区别及使用)、IO流、线程同步与并发、垃圾回收机制、反射API以及设计模式等。对于高级...

    java 面试题库 一定有你需要的

    4. **集合框架**:Java集合框架包括List、Set、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。熟练掌握它们的特性和使用场景,可以有效地组织和操作数据。 5. **异常处理**:Java的异常处理...

    java面试题90个java面试文件的打包下载

    3. **集合框架**:Java集合框架是存储和管理对象的关键,包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)和Map(如HashMap、TreeMap)。面试中常见的问题可能涉及它们的区别、性能特点以及如何正确...

    J2EE 就业秘笈J2EE面试

    - 集合框架(List、Set、Map) - 多线程编程 - IO流 - 泛型 - Lambda表达式 **2. Oracle数据库** 作为常见的关系型数据库,掌握Oracle的SQL查询、事务管理、存储过程、索引、表空间管理等内容是必备技能。 **3. ...

    java面试宝典

    java面试试题 全面 准确 带答案 coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 ...

    最全面的J2EE面试题集 招聘

    - **集合框架**:List、Set、Map接口的实现类,如ArrayList、LinkedList、HashSet、HashMap等。 - **多线程**:线程的创建方式、同步机制(synchronized、Lock)以及线程间通信。 2. **J2EE组件**: - **Servlet...

    JAVA面试宝典英文版

    5. **集合框架**:List、Set、Map接口及其实现类的使用,如ArrayList、LinkedList、HashSet、HashMap等。 6. **IO流**:文件操作、字节流和字符流的区别、缓冲流的使用。 7. **多线程**:线程的创建、同步机制...

    JavaJ2EE面试宝典

    特别是集合框架中的List、Set、Map接口及其实现类如ArrayList、LinkedList、HashSet、HashMap等的特性和使用场景。 2. **J2EE概述**: J2EE(Java 2 Platform, Enterprise Edition)是用于构建分布式企业级应用的...

    2013年最新J2EE面试资料

    1. **Java基础知识**:这是J2EE面试的基础,包括Java语法、面向对象编程概念(封装、继承、多态)、异常处理、集合框架(List、Set、Map)、IO流、多线程、反射等。 2. **Servlet与JSP**:Servlet是J2EE中的核心...

    J2EE面试题目可以做个参考

    1. **Java基础知识**:面试通常会从Java基础开始,包括但不限于数据类型、类与对象、继承、多态、接口、异常处理、集合框架(如List、Set、Map)、IO流和NIO、多线程等。 2. **Servlet和JSP**:作为J2EE的核心组件...

    比较全的J2EE JavaEE 面试资料

    1. **Java基础**:这是所有Java EE开发者的基石,包括基本语法、面向对象编程(OOP)概念、异常处理、集合框架(如List、Set、Map)、多线程、IO流、网络编程以及设计模式等。面试时,面试官可能会询问这些基础知识...

    j2EE面试题分类集合

    - **集合框架**:List、Set、Map接口的实现类如ArrayList、HashSet、HashMap的特性和使用。 - **多线程**:线程的创建方式、同步机制(synchronized、wait/notify、Lock等)及并发工具类。 2. **Java Web**: - ...

    J2EE核心框架代码2

    Set、List和Map是Java中的集合类型,它们在Hibernate中可以用来表示数据库表中的关联关系,如一对一、一对多和多对多。映射技术是Hibernate的关键,它定义了Java对象如何在数据库中存储和检索。 "21-Hibernate容器...

    JAVA面试题集 (含一些jsp,xml,J2EE,MVC)

    5. **集合框架**:List、Set、Map接口及其实现类的特性和使用场景。 6. **多线程**:线程的创建方式,同步机制(synchronized关键字,wait()和notify()方法)。 7. **IO流**:了解不同类型的流,文件操作和网络流的...

    J2EE 学习规划 学习java

    - **集合框架**:熟悉Java的集合框架,如List、Set、Map等,了解它们的区别和应用场景。 - **多线程编程**:掌握Java中的多线程机制,包括线程的创建、同步、死锁等问题的解决。 - **网络编程**:了解Socket编程,为...

    各公司的J2EE面试题 其实很基础

    这包括但不限于Java语法、面向对象编程(封装、继承、多态)、异常处理、集合框架(List、Set、Map)、IO流、线程、反射、设计模式等。 2. **Servlet**:Servlet是J2EE中的核心组件,用于处理HTTP请求。理解Servlet...

Global site tag (gtag.js) - Google Analytics