`
康敏栋
  • 浏览: 171077 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

几道自己不会的面试题(很简单)

阅读更多
1.下面输出的结果是
Integer i1 = 127;  
Integer i2 = 127;  
System.err.println(i1 == i2);  
i1 = 128;  
i2 = 128;  
System.err.println(i1 == i2);

false
true

Integer类的源码:
 static final Integer[] cache = new Integer[-(-128) + 127 + 1];
 static {
 for(int i = 0; i < cache.length ; i++){
 cache[i] = new Integer(i - 128);
 }
 }

从上面代码可以看出系统把-128~127之间的整数自动装箱成Integer实例,并放入一个名为cache的数组缓存起来,如果把一个-128~127之间的整数自动装箱成一个Integer实例,实际上就是直接指向数组元素,所以相等;但每次把一个不在-128~127的范围内整数自动装箱成Integer实例时,系统需重新创建一个Integer实例。【ps:参考《疯狂java讲义》】
或者详细可见http://www.ticmy.com/?p=110
2.如何将list中的值去重复且顺序不变
1)网上比较常见的做法
public static List<String> removeDuplicateWithOrder(List<String> list) {
		HashSet<String> hashSet = new HashSet<String>();
		List<String> newlist = new ArrayList<String>();
		for (Iterator iterator = list.iterator(); iterator.hasNext();) {
			String element = (String) iterator.next();
			if (hashSet.add(element)) {
				newlist.add(element);
			}
		}
		list.clear();
		list.addAll(newlist);
		return list;
	}

2)比较简单的一种做法
java.util.LinkedHashSet set = new LinkedHashSet(mylist);
ArrayList newList = new ArrayList(set);

LinkedHashSet原理可见:http://zhangshixi.iteye.com/blog/673319
顺便把list顺序不要求的代码也贴出来
public static void removeDuplicate(ArrayList arlList) 
{ 
HashSet h = new HashSet(arlList); 
arlList.clear(); 
arlList.addAll(h); 
}

3.StringBuffer题
public static void main(String args[]){
		StringBuffer s1 = new StringBuffer("A");
		StringBuffer s2 = new StringBuffer("B");
		isMathod(s1,s2);
		System.out.println(s1+"======="+s2);

}
public static void isMathod(StringBuffer x,StringBuffer y){
	x.append(y);
	y=x;
}

输出结果是:AB=======B
原因自己也不知,希望知道的朋友解答一下
顺便说说StringBuilder与StringBuffer的区别
其实两个的操作都相同,只不过StringBuilder不同步不安全的,但执行速度也更快,StringBuffer同步的,相对StringBuilder更慢些
分享到:
评论

相关推荐

    稍微有点难度的10道java面试题,你会几道?

    根据给定的信息,我们将逐一分析这10个Java面试题所涉及的知识点: ### 1. JVM 对频繁调用的方法做了哪些优化? JVM(Java虚拟机)在运行时会针对频繁调用的方法进行多种优化措施,以提高程序执行效率。主要的优化...

    C++面试题经典 300道

    《C++面试题经典300道》涵盖了C++编程语言的基础到高级概念,以下是针对题目描述和部分内容的详细解答: 1. **主函数的返回值**:在C++中,`main`函数的返回值通常用于表示程序的执行状态。`return 0`表示程序正常...

    16道嵌入式C语言面试题

    ### 嵌入式C语言面试题解析 #### 预处理器(Preprocessor) 1. **用预处理指令`#define`声明一个常数,用以表明1年中有多少秒(忽略闰年问题)** - **代码示例**: ```c #define SECONDS_PER_YEAR (60 * 60 * ...

    Java面试题几道基础题总结

    根据给定的信息,我们可以整理出以下关于 Java 的基础面试题及其相关知识点: ### 1. 创建线程的方式 #### 继承 Thread 类实现线程 在 Java 中创建线程最直接的方法之一是通过继承 `Thread` 类并重写 `run()` 方法...

    JAVA常见面试题300道

    ### JAVA常见面试题300道之精选知识点解析 #### 1. Java 为何被称为平台无关的语言? Java 是一种能够跨平台运行的编程语言。它通过编译源代码(.java 文件)为字节码(.class 文件),使得在任何安装了 Java ...

    C#最新面试题(127道)word格式

    ### C#面试题详解 #### 1. 访问修饰符的理解 - **Private**: 这个修饰符定义了一个私有成员,意味着只有定义它的类内部可以访问这个成员。这通常用于封装类的内部状态,确保外部代码无法直接修改这些状态。 - **...

    Java程序员的10道XML面试题

    ### Java程序员的10道XML面试题详解 #### 1. XML是什么? XML,全称为**可扩展标记语言**(Extensible Markup Language),是一种用于描述数据的标记语言。它允许开发者根据自身需求创建自定义标签,这使得XML非常...

    黑马程序员入学面试题

    2. **编程题**:通过几道编程题目来考察应聘者的编程能力和解决问题的能力。 3. **Java基础知识提问**:考察应聘者对于Java基础知识的掌握程度,包括但不限于数据类型、控制结构、面向对象特性等。 #### 2. 面向...

    JAVA面试题集(150道经典面试题)

    ### JAVA面试题集知识点解析 #### 1. JDBC并发处理:多线程环境下获取数据库连接的方式 在JDBC(Java Database Connectivity)编程中,当面对高并发环境时,正确管理和控制数据库连接至关重要。通常,一个应用程序...

    16道C语言面试题(搞程序的面试的一定要看的题)

    预处理指令 `#define` 用于定义宏,通常用于常量值的定义或者简单的函数式宏的定义。 - **定义常量**:例如 `#define PI 3.14159`。 - **定义函数式宏**:如 `#define MAX(a,b) ((a)&gt;(b)?(a):(b))`。 - **注意**:...

    Nginx 34 道面试题及答案.docx

    Nginx面试题及答案 Nginx是一款流行的开源Web服务器软件,广泛应用于web服务器、虚拟主机、反向代理、负载均衡等领域。下面是Nginx面试题及答案的知识点总结: 为什么要用Nginx? 1. 跨平台、配置简单、方向代理...

    微软的面试题及答案 非常好,很难找

    【微软面试题解析】 面试是求职过程中的关键环节,尤其对于技术岗位,面试题往往具有挑战性和创新性。微软作为全球知名的科技公司,其面试题不仅考察候选人的专业技能,还涉及逻辑思维、问题解决和创新能力。以下是...

    Python必会的12道面试题.pdf

    ### Python必会的12道面试题 #### 1. 单引号、双引号和三引号之间的区别 在Python中,单引号、双引号和三引号都可以用来定义字符串,但它们之间有一些细微的区别: - **单引号** 和 **双引号** 主要用于创建字符...

    10道Python面试题(附答案)!.docx

    以上就是文中提到的10个Python面试题及其答案的详细解析,这些基本概念是理解Python编程的关键,对于准备Python面试的开发者来说至关重要。通过深入学习和实践,开发者可以更好地掌握Python,从而在工作中游刃有余。

    2021最新Java面试题及答案V2.0.pdf

    以上知识点涵盖了Java面试中常见的问题,对于准备Java面试的求职者来说,深入理解这些知识点是很有帮助的。通过系统复习这些内容,面试者可以更好地应对面试官的提问,展现出自己的技术实力和专业素养。

    几道C语言经典面试题

    从给定的文件信息中,我们可以提取出几个关键的C语言知识点,这些知识点不仅对于学习C语言的人...以上就是从给定文件中提取出来的C语言经典面试题的相关知识点,掌握这些知识点将有助于你在C语言的面试中表现更加出色。

    一百二十八道 ASP.NET面试题集合 总有您需要的题目

    - 事件是基于委托的机制,用于在对象间通信,通常用于实现发布/订阅模式,确保接收者不会直接调用发送者。 5. `override` 与重载的区别: - 重载(Overload)发生在同一作用域内,通过不同的参数列表定义多个同名...

    硬件工程师面试题(非常经典,非常全面)

    ### 硬件工程师面试题解析 #### 一、模拟电路 **1. 基尔霍夫定律** - **基尔霍夫电流定律(KCL)**:在一个电路中,流入一个节点的电流总和等于流出该节点的电流总和。这反映了电荷守恒原理。 - **基尔霍夫电压定律...

    2018_BAT的55道sql面试题

    在BAT(百度、阿里巴巴、腾讯)等互联网大公司中,SQL面试题是技术面试的重要组成部分,因为掌握SQL是任何数据库工程师或数据分析师的基础技能。以下是一些常见问题的详细解答: 1. **ID自增主键**:在MySQL中,...

    C语言最新面试题及答案.doc

    C语言面试题及答案.doc 文件中涵盖了十一道关于C语言的面试题和答案,这些题目涉及到C语言的基础知识、变量、循环语句、函数、数据类型、存储方式等方面。 1、局部变量能否和全局变量重名? 局部变量可以与全局...

Global site tag (gtag.js) - Google Analytics