`
雪馨25
  • 浏览: 128518 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

面试题汇总解答(一)

阅读更多

1、int 和 Integer区别

int:是基本类型,默认值为0,一般用于数值计算

Integer:int的包装类,作为对象使用,包装里一个int类型的字段,默认值为null,大多用于类型转换和需要对int作为对象使用时出现。


2、HashMap和HashTable区别

HashMap HashTable的轻量级实现,非线程安全的,在多线程情况下需要同步,并且允许null的key和value。

HashTable 线程安全,不允许null的key和value,不推荐使用。


附加:HashMap的同步问题可通过Collections的一个静态方法得到解决:
Map Collections.synchronizedMap(Map m)
这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。


3、String和StringBuffer区别 stringbuilder

string:固定长度,创建后不可变。进行修改时需要附加新的对象完成

stringBuffer:可变长度 (待完成)


4、运行异常和一般异常的定义,及区别


5、short s1=1;s1=s1+1;是否正确?short s1=1;s1+=1;是否正确?


6、Math.round(11.5)是多少?Math.round(-11.5)是多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;


7、线程启动是用run(),还是start(),两者区别是什么?


8、servlet生命周期

生命全过程:

加载ClassLoader

实例化new

初始化init(ServletConfig)

处理请求servicedoGetdoPost

退出服务destroy()

只有一个对象

☆API中的过程:

init()//只执行一次,第一次初始化的时候

publicvoidinit(ServletConfigconfig)throwsServletException

service()

publicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException,java.io.IOException

destroy()//webapp退出的时候

publicvoiddestroy()


9、字符进行编码转换的方式

Stringstr=rs.getString();
str=newString(str.getBytes("iso8859-1"),"gb2312");

 

10、接口是否可以继承接口?抽象类是否可以继承接口?抽象类是否可以继承实体类?


11、list, set, Map继承自哪里?区别是什么?


答:List,Set是,Map不是。

如图:

Collection

  ├List

  │├LinkedList

  │├ArrayList

  │└Vector

  │ └Stack

  └Set

  Map

  ├Hashtable

  ├HashMap

  └WeakHashMap

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。

注意:Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。


详细介绍:
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)
Query接口有一个实现类:LinkList
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对
set 一般无序不重复.map kv 结构 list 有序

12、抽象方法是否可以用static , native , synchronized?


13、xml的定义形式,区别,解析方式是什么?


14、排序方式,代码实现


15、String , StringBuffer , StringBuilder 区别?

 

String是固定长度的字符串,如果要发生变化必须重新生成新的实例;

String字符串常量
StringBuffer字符串变量(线程安全)
StringBuilder字符串变量(非线程安全)
简要的说,String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象 ,
而如果是使用StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢,而特别是以下的字符串对象生成中, String 效率是远要比 StringBuffer 快的:
StringS1=“Thisisonlya”+“simple”+“test”;
StringBufferSb=newStringBuilder(“Thisisonlya”).append(“simple”).append(“test”);
你会很惊讶的发现,生成StringS1 对象的速度简直太快了,而这个时候 StringBuffer 居然速度上根本一点都不占优势。其实这是 JVM 的一个把戏,在 JVM 眼里,这个
StringS1=“Thisisonlya”+“simple”+“test”;其实就是:
StringS1=“Thisisonlyasimpletest”;所以当然不需要太多的时间了。但大家这里要注意的是,如果你的字符串是来自另外的 String 对象的话,速度就没那么快了,譬如:
StringS2=“Thisisonlya”;
StringS3=“simple”;
StringS4=“test”;
StringS1=S2+S3+S4;
这时候JVM 会规规矩矩的按照原来的方式去做
在大部分情况下StringBuffer>String
StringBuffer
Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
StringBuffer上的主要操作是 append insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。 append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
例如,如果z 引用一个当前内容是 “start” 的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含 “startle” ,而 z.insert(4,"le") 将更改字符串缓冲区,使之包含 “starlet”
java.lang.StringBuilder一个可变的字符序列是 5.0 新增的。此类提供一个与 StringBuffer 兼容的 API ,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。

 

16、ArrayList ,LinkList区别

List是一个接口, ArrayList LinkedList 是两个实现类,他们实现的方式不一样,其实 LinkedList 才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两句话能说清楚的),而 ArrayList 是用数组实现的,它不是真正的链表,在初始化的时候它先对数组设置一个初始容量,当数组空间不够的时候,它会重新构建一个容量更大的数组,然后把先前的元素拷贝进去。
ArrayList LinkedList 本质上的区别就是数组和列表这两种数据结构的区别。课参阅相关数据结构的知识。
我这里简单的为你归纳几点:
ArrayList:缺点:内存使用量要大一些,添加删除元素效率较低。元素随机访问的效率较高。
LinkedList:相反。


17、List , Map 实现方式是什么?

 

 

分享到:
评论

相关推荐

    java 程序员面试指南,常用面试题汇总解答.zip

    java 程序员面试指南,常用面试题汇总解答

    2022年最新Docker 常见面试题汇总

    2022年最新Docker 常见面试题汇总 适用人群:即将要面试docker容器管理岗位的小伙伴,也适用于后期打算往docker容器化方向发展的小伙伴 内容概要:面试题较新,帮你轻松应对各大厂面试哦!

    C++ 面试真题汇总和解答

    这份"C++面试真题汇总和解答"提供了全面的面试问题及答案,旨在帮助你更好地理解C++的关键概念,提升你的面试竞争力。以下是一些可能涵盖的重要知识点: 1. **基本语法**:包括变量声明、类型转换、运算符优先级、...

    java_高级程序员面试试题汇总

    这份文件是 Java 高级程序员面试试题汇总,涵盖了各种高级 Java 面试题,包括解答、代码解释等,收集来源于各大电商公司的面试题集锦。 Java 中的 HashSet 在 Java 中,HashSet 是一种不允许重复元素的集合。它...

    H5前端面试大全-包含大厂面试题_25个md文件分类面试题.rar

    前端笔试面试题部分 试题链接 原题概述 标签分类 1.md CSS部分 CSS 2.md HTML部分 HTML 3.md FEX 面试题 General 4.md 前端面试常见问题 General 5.md 前端面试HTML 相关问题 HTML 6.md 前端面试CSS 相关问题...

    北京java面试题汇总

    【标题】:“北京java面试题汇总” 这是一份专门针对北京地区Java开发岗位面试的题库,涵盖了众多Java公司的常见面试问题。对于准备应聘Java工程师的求职者来说,这是一个宝贵的资源,可以帮助他们全面了解和复习...

    2019java面试题汇总

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能、丰富的类库和强大的...通过阅读《2019java面试题汇总@www.java1234.com.pdf》这份文档,你可以找到更多具体的面试题目和解答,进一步巩固你的Java技能。

    程序员C/C++面试题汇总(Intel英特尔面试题.微软亚洲技术中心的面试题,Cisco思科面试题,华为C/C++笔试题,慧通面试题)

    面试题是衡量候选人编程技能和技术理解的重要手段。本资料汇集了来自Intel英特尔、微软亚洲技术中心、Cisco思科和华为等知名企业的C/C++面试题,以及慧通公司的面试题目,旨在为程序员提供全面的准备材料。 1. **...

    华为英语面试题汇总英文面试 外企互联网面试英文题准备资料汇总.zip

    华为面试,英文英语部分准备;...英语面试题(各外企JAVA等岗位英文面试题汇总-100问);最新的英语笔试题目及参考答案;最新整理华为面试英语测试常见问题。资料同时适用于外企招聘,外企互联网招聘,微软中国等。

    人事面试题及答案

    2. 500强公司面试题分析与解答 3. 化繁为简,七大类汇总HR上百道问题 4. 面试题1 5. 面试题2 6. 人事70题 7. 人事面试题(一) 8. 人事面试题(二) 9. 人事面试题(三) 10. 人事面试题(四) 11. 人事面试题(五)...

    数据分析面试题-SQL面试题汇总.docx

    数据分析面试题-SQL面试题汇总 本文档汇总了两道数据分析面试题,涵盖了 SQL 编程语言的多个方面,包括建表、插入数据、排序、连接、分组、聚合函数、日期操作等。通过这两道题目,我们可以了解数据分析师需要具备...

    .net 面试题系列(网上收集)很全

    2008/01/07 10:45 38,912 NET程序员面试题汇总.doc 2008/06/17 18:48 1,038 两个月薪上万的.Net面试题.txt 2008/06/26 21:19 7,321 使用.NET的人.txt 2008/08/03 10:34 88,064 大型软件公司.net面试题!一定得看(附...

    2020 Java面试题汇总.zip

    这份"2020 Java面试题汇总"压缩包文件很可能是为了帮助求职者准备Java开发岗位的面试而整理的一系列问题和解答。在Java面试中,通常会涉及到以下几个核心知识点: 1. **基础语法**:面试官会考察你对Java基本语法的...

    fpga笔试面试题解答-集成电路-笔试题-面试题 fpga开发.pdf

    本文档汇总了FPGA笔试面试题解答,涵盖了FPGA开发、集成电路、笔试题、面试题等多个方面的知识点。这些知识点都是FPGA开发和集成电路相关的面试题,涵盖了数字电路、状态机、时序逻辑、clock skew、阻塞赋值和非阻塞...

    数据库面试题(汇总所有的数据库面试题).zip

    这份"数据库面试题(汇总所有的数据库面试题).zip"压缩包显然包含了一系列与数据库相关的面试问题,旨在帮助求职者准备应对各种数据库面试挑战。以下是根据标题、描述以及可能的文件内容总结出的一些关键知识点: ...

    C C++面试题大汇总

    《C C++面试题大汇总》是一份涵盖了C和C++面试中常见问题的资源集锦,主要来源于网络,特别是CSDN这个知名的开发者社区。这份资料的目的在于为准备C++面试的求职者提供全面而丰富的知识复习材料,其中包含了大约200...

    最新最全Java面试题汇总

    ### 最新最全Java面试题汇总 #### 1. Java中的访问控制修饰符:public, private, protected 及默认(friendly) 在Java中,我们有四种主要的访问控制级别,它们分别是 `public`、`private`、`protected` 和默认...

Global site tag (gtag.js) - Google Analytics