java之面试String

1 new  String()与直接赋值的区别?

String  s1=new String("abc");

String  s2="abc";

System.out.println(s1==s2);      //false

详解: 上面两行代码分别会存在内存中三块存储区中,分别是栈,堆,方法区 ,字符串只会创建一次,第一次创建完,后面再用到相同字符串时只会去方法区中找,有则直接用,没有再创建

栈: s1    0x001                   s2           ox002        "方法区中的abc"

堆 :new   string( )

方法区: “abc”

2  两个相同字符串变量区别?

String  s1="abc";

String  s2="abc";

System.out.println(s1==s2);     //true

System.out.println(s1.equals(s2));   //true

详解:上面两行代码分别会存到栈和方法区两块存储区,"abc"只会在方法区中存储一次,下次再用到abc字符串时它会先去方

法区中找,有则直接地址值拿过来用,没用则重新创建

栈:s1       0x001

s2       0x001

方法区:ox001    abc

3 两个new  String()区别 ?

String  s1=new  String( "hello");

String  s2=new  String("hello");

System.out.println(s1==s2);     //false

System.out.println(s1.equals(s2)); //true

详解:上面两行代码分别会存到栈,堆,方法区三块存储区中,即地址值不同,但内容地址值相同

栈:S1   0X001

S2    0x002

堆: new   String()      0x001  ---------ox00000

new    String( )       0x002 ----------ox00000

方法区:  hello        0x00000

4 String  str="helo";

str+="world";

System.out.println(str);     //hello  world

详解:字符串一旦被初始化就不能被改变,这里共创建三个string对象

上面两句代码共用到两个内存存储区:栈和方法区,每个字符串只在方法区中存放一次,其它运用它时直接去里面找,

有则直接用,没有就重新创建新的

栈:str--------ox003

方法区: hello      ox001

world     0x002

helo world   0x003

java之面试String

时间: 2024-07-30 10:24:10

java之面试String的相关文章

我说精通字符串,面试官竟然问我 Java 中的 String 有没有长度限制?

String 是 Java 中很重要的一个数据类型,除了基本数据类型以外,String 是被使用的最广泛的了,但是,关于 String,其实还是有很多东西容易被忽略的. 就如本文我们要讨论的问题:Java 中的 String 有没有长度限制? 这个问题要分两个阶段看,分别是编译期和运行期.不同的时期限制不一样. 01 编译期 首先,我们先来合理的推断一下,当我们在代码中使用 String s = ""; 的形式来定义 String 对象的时候,"" 中字符的个数有没

java异常面试常见题目

在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它成为面试题中的常客.关于Java中Error和Exception的面试题目多是关于Exception和Error的概念,如何处理Exception,以及 处理Exception时需要遵守的最佳实践等等.尽管关于多线程.垃圾回收.JVM概念和面向对象设计等方面的问题依然主宰着这类面试,你仍然需要为回答

Java多线程面试15道

Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题.在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的.他们会问面试者很多令人混淆的Java线程问题.面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面.用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的.下面这些是我在不同时间不同地点喜欢问的Jav

学java教程之String类

学编程吧学java教程之String类发布了,欢迎通过xuebiancheng8.com来访问 java类中的String类应该是用的最多的一个类,我们时时刻刻都离不开String类,时时刻刻都在用,面试的时候经常考,比方说问String类是不是基本数据类型.答案是否定了,String类不是基本数据类型,只不过String类和基本数据类型的用法很相似. 下面来看String类的用法. String str= “abc”;//定义了一个字符串abc String str1= new String(

【转】深入理解Java中的String

原文链接: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

Java基础面试:集合、内部类、线程

package test; import java.util.Hashtable; import java.util.Map; public class test { public static String change(String param){ param=null; return param; } public static void main(String[] args) { String param1="p1"; param1=change(param1); Map ta

java代码面试常见的算法-mark

摘要:面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序.二叉树遍历等等. 在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序.二叉树查找等等. 本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫. 1.String/Array/Matrix 在Java中,String是一个包含char数组和其它字段.方法的类

Java后台-面试问题汇总(转载)

总结这些天面试Java开发过程中的大多数问题,综合分类有Java基础,框架,多线程,网络通信,Linux,数据库,设计模式,算法,缓存等几个模块,由于问题太多,下面先列出问题,之后有时间在写文章解答,或者网上有很多答案,可以自行搜索. 一.Java基础1.String类为什么是final的.2.HashMap的源码,实现原理,底层结构.3.反射中,Class.forName和classloader的区别4.session和cookie的区别和联系,session的生命周期,多个服务部署时sess

Java多线程面试问题

原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题. Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者