`
hehaibo
  • 浏览: 417593 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

高级java面试题

 
阅读更多
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。而在某些特别情况下, String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢,而特别是以下的字符串对象生成中, String 效率是远要比 StringBuffer 快的:
String S1 = “This is only a” + “ simple” + “ test”;
StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);
你会很惊讶的发现,生成 String S1 对象的速度简直太快了,而这个时候 StringBuffer 居然速度上根本一点都不占优势。其实这是 JVM 的一个把戏,在 JVM 眼里,这个
String S1 = “This is only a” + “ simple” + “test”; 其实就是:
String S1 = “This is only a simple test”; 所以当然不需要太多的时间了。但大家这里要注意的是,如果你的字符串是来自另外的 String 对象的话,速度就没那么快了,譬如:
String S2 = “This is only a”;
String S3 = “ simple”;
String S4 = “ test”;
String S1 = 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”。
在大部分情况下 StringBuilder > StringBufferjava.lang.StringBuilde
java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。


二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么?
三、HASHTABLE, HASGMAQ,TreeMap区别
四、ConcurrentMap和HashMap的区别
五、Tomcat,apache,jboss的区别
六、GET POST区别
七、SESSION, COOKIE区别
八、Servlet的生命周期
九、HTTP 报文包含内容
十、Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入
十一、redirect, foward区别
十二、关于JAVA内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,
几个对象,几个属性,几个方法。
十三、谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的
十四、反射讲一讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化
十五、谈谈Hibernate与Ibatis的区别,哪个性能会更高一些
十六、对Spring的理解,项目中都用什么?怎么用的?对IOC、和AOP的理解及实现原理
十七、线程同步,并发操作怎么控制
十八、描述struts的工作流程。
十九、Tomcat的session处理,如果让你实现一个tomcatserver,如何实现session机制
二十、关于Cache(Ehcache,Memcached)
二一、sql的优化相关问题
二二、oracle中 rownum与rowid的理解,一千条记录我查200到300的记录怎么查?
二三、如何分析ORACLE的执行计划?
二四、 DB中索引原理,种类,使用索引的好处和问题是什么?
二五、JVM垃圾回收实现原理。垃圾回收的线程优先级。
二六、jvm 最大内存设置。设置的原理。结合垃圾回收讲讲
分享到:
评论

相关推荐

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

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

    高级Java经典面试题2019

    本文总结了《高级Java经典面试题2019》中关于并发编程、JVM和Spring框架等方面的重要知识点。通过深入理解这些概念和技术,可以帮助开发者更好地掌握Java核心技术,提高面试竞争力。希望本文能为读者提供有益的帮助...

    70道阿里巴巴高级Java面试题!.zip

    70道阿里巴巴高级Java面试题!.zip

    BAT高级Java面试题70题目含答案

    这份“BAT高级Java面试题70题目含答案”涵盖了Java核心、多线程、集合框架、JVM优化、设计模式、数据库操作、网络编程等多个方面的知识,旨在帮助求职者准备BAT的面试。 1. **Java基础** - 类与对象:理解面向对象...

    Java面试题大全(整理版)1000+面试题 (面试准备+Java基础+高级特性+常见问题+答案解析)

    Java作为一门广泛使用的编程语言,其面试题涵盖了基础到高级的多个方面。这份全面的面试题资源包含了Java的各个方面,包括但不限于基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、反射、设计模式...

    JAVA高级工程师笔试题(技术部分).pdf

    JAVA高级工程师笔试题(技术部分)知识点总结 一、智力部分(30 分) 1. 错绳问题:如何用一个小时烧一根不均匀的绳子来判断半个小时?(5 分) 知识点:这是一个经典的智力题,考察的是候选人的逻辑思维能力和...

    高级java笔试题-java:Java

    高级java笔试题 java ​ 欢迎大家进入马士兵大学,希望大家在这里能够学到自己想要学习的技术,获得提升,找到理想的工作! ​ 本课程最贴合企业级需求的java基础课程,向上有完整的知识点覆盖,除了语言自身,...

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    Java面试题以及答案(小生).pdf java面试题(题库全).doc JS 数据库答案.doc Land.the.Tech.Job.You.Love-人人都有好工作—IT行业求职面试必读.pdf Linux命令大全完整版.doc sql查询语句练习.doc Web服务器的工作...

    BAT高级Java面试题70题目含答案.zip

    这份"BAT高级Java面试题70题目含答案"的压缩包文件,包含了70个精心挑选的Java面试问题及对应的解答,涵盖了Java语言的基础、进阶以及实际应用等多个方面。下面,我们将深入探讨其中的一些关键知识点。 1. **Java...

    Java interview-高级Java面试题2019.zip

    Java interview-高级Java面试题2019

    2017最新Java面试题

    ### 2017最新Java面试题知识点梳理 #### 一、面向对象编程(OOP) 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它使用“对象”的概念来组织代码结构。Java作为一种典型的面向对象语言,支持...

    Java高级面试题整理及答案.md

    Java经典高级2023面试题大全带答案.pdf 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题,0积分直接下载

    阿里巴巴高级Java面试题

    ### 阿里巴巴高级Java面试题之事件机制详解 #### 一、Java事件机制概述 Java事件机制是Java Swing图形用户界面编程中的一个核心概念,它为处理用户交互和其他类型的事件提供了一种灵活的方式。Java事件机制主要...

    Java interview-高级Java面试题2019-java-interview.zip

    Java interview-高级Java面试题2019_java-interview.zip

    2018最新最全java高级工程师面试题

    Java作为一门广泛使用的编程语言,其高级工程师面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度、广度以及实际问题解决能力。2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档...

    Java面试题以及答案整理.pdf

    为了在Java面试中脱颖而出,了解和掌握常见的面试题及答案至关重要。以下是一些关键知识点的详细解析: 1. **super()与 this()的区别** `super()`用于调用父类的构造器,确保子类实例化时父类的初始化;`this()`则...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    Java面试题以及答案(小生).pdf java面试题(题库全).doc JS 数据库答案.doc Land.the.Tech.Job.You.Love-人人都有好工作—IT行业求职面试必读.pdf Linux命令大全完整版.doc sql查询语句练习.doc Web服务器的工作...

    Java面试题2023最新版大合集(485页)

    Mybatis 可以使开发者更专注于 SQL 的编写,同时提供了强大的 XML 或注解方式来映射 SQL 语句,使得 SQL 与 Java 代码分离,提高开发效率。 2、Mybatis 的优点: - 灵活性高:允许开发者自由编写 SQL,适应各种复杂...

Global site tag (gtag.js) - Google Analytics