java面试之String的理解(自我理解)】的更多相关文章

1.String是基本数据类型吗? 不是,是对象,引用数据类型 2.String是可变吗? 不可变,String是final类型的. 3.怎样比较两个字符串的值相同,怎样比较两个字符串是否为同一对象? 比较值相同用equals,比较是否为统一对象用 == 4.switch中可以用String吗? 在jdk5中switch支持枚举,在7中支持String,但是通过反编译可以看出就是本质还是int,case后是hashcode,之后使用equals进行比较,所以String的效率会比较低 5.Str…
一.垃圾回收算法: 引用计数 复制算法 标记-清除 标记-整理 二.垃圾回收的方式: 串行(Serial).并行(Parallel).并发(CMS).G1 1.串行垃圾回收器(Serial) 它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,所以不适合服务器环境. 2.并行垃圾回收器(Parallel) 多个垃圾收集线程并行工作,此时用户线程是暂停的,用于科学计算.大数据处理等弱交互场景. 3.并发垃圾回收器(CMS) 用户线程和垃圾收集线程同时执行(不一定是并行,可能是交替…
一.OOM(OutOfMemoryError): 对象无法释放或无法被垃圾回收,造成内存浪费,导致程序运行速度减慢,甚至系统崩溃等严重后果,就是内存泄漏.多个内存泄漏造成可使用内存变少,会导致内存溢出. 代码问题new 一个很大对象,导致内存溢出. 也可能内存真的不足导致内存溢出. 二.考虑: 1.垃圾回收算法设置是否合理 2.年轻代.老年代划分是否合理 3.内存泄漏 三.典型情况: 1.java.lang.StackOverflowError 在一个函数中调用自己就会产生这样的错误(栈溢出)…
一.volatile特性: volatile是Java虚拟机提供的轻量级的同步机制.主要有三大特性: 保证可见性 不保证原子性 禁止指令重排序 1.保证可见性 1)代码演示 AAA线程修改变量number的值为60,main线程获取到的number值是0,就一直循环等待. 原因:int number = 0;number变量之前没有添加volatile关键字,没有可见性.添加volatile关键字,可以解决可见性问题. public class VolatileDemo { int number…
引言 众所周知在java里面除了8种基本数据类型的话,还有一种特殊的类型String,这个类型是我们每天搬砖都基本上要使用它. String 类型可能是 Java 中应用最频繁的引用类型,但它的性能问题却常常被忽略.高效的使用字符串,可以提升系统的整体性能.当然,要做到高效使用字符串,需要深入了解其特性. String类 我们可以看下String类的源码: public final class String implements java.io.Serializable, Comparable<…
首先我们先来谈谈String: String 对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象,即修改了 String 的引用. 因为 String 的底层是用数组来存值的,数组长度不可改变这一特性导致了上述问题. ‌如果我们在实际开发过程中需要对某个字符串进行频繁的修改,使用 String 就会造成内存空间的浪费,应该怎样解决这个问题呢?‌ 答案就是可以使用 StringBuffer 来解决这个问题. 下面我们就来详细谈谈​StringBuffer: ‌​St…
废话不多说,直接看代码,注释已经写在上面了: public boolean equals(Object anObject) { if (this == anObject) {//比较两个对象的地址 return true; } if (anObject instanceof String) {//判断该对象是否是String类型 String anotherString = (String)anObject; int n = value.length; if (n == anotherStrin…
一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** The offset is the first…
原文链接:http://www.cnblogs.com/xiaoxi/p/6036701.html 一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ priva…
"谈谈你对Redis的理解"! 面试的时候遇到这类比较宽泛的问题,是不是很抓狂? 是不是不知道从何开始说起? 没关系,今天我用3分钟教你怎么回答. 大家好,我是Mic,一个工作了14年的Java程序员. 这个问题面试官考察的目的是什么?希望得到什么样的回答? 考察目标 对于某某技术的理解这一类问题,它是一种比较宽泛的问题 在面试过程中,考察这类问题有两个很重要的目的: 在面试的过程中,面试官希望求职者能多说一些东西,从而更好的对你的整体情况和能力有一个清晰的判断,因此这类问题,可以找到…