1.判断定义为String类型的s1和s2是否相等

  String s1 = "abc";    //这个“abc”对象首先会进常量池

  String s2 = "abc";    //这行会先看常量池有没有“abc”对象 没有才到栈哪里去创建 否则直接记录它

  System.out.println(s1 == s2);
  System.out.println(s1.equals(s2))

  事实上两个输出都是为true。原因看注释。

2:这句话中创建几个对象?

  String s = new String("abc");

  答案:2个。一个在常量池中,一个在堆中(就是常量池的副本,上一节提到过)

3:判断真假

  String s1 = new String("abc");

  String s2 = "abc"; 

  System.out.println(s1 == s2);  // false  (堆)==(常量池)
  System.out.println(s1.equals(s2))   //  true 序列一样

4:判断真假

  String s1 = "a"+"b"+"c"; //在编译的时候已经是“abc“字符串了,所以放到了常量池

  Sreing s2 = "abc";

  System.out.println(s1 == s2);  // true java中有常量优化机制 
  System.out.println(s1.equals(s2))   //  true 序列一样

5:判断真假

  String s1 = "ab";

  String s2 = "abc";

  String s3 = s1+"c";  

   System.out.println(s2 == s3);  // false s2在常量池中,s3在栈中
  System.out.println(s2.equals(s3))   //  true 序列一样

  如图所示:

  这个是java api的描述 (截图了)

  

  

意思就是当有“+”的时候,底层都会new一个StringBuffer()对象,然后该对象会调用tostring()方法转换-->new String()对象。然后就有了地址。。。

String类的常见面试题(3)的更多相关文章

  1. Java面试炼金系列 (1) | 关于String类的常见面试题剖析

    Java面试炼金系列 (1) | 关于String类的常见面试题剖析 文章以及源代码已被收录到:https://github.com/mio4/Java-Gold 0x0 基础知识 1. '==' 运 ...

  2. Java中String类的常见面试题

    1. 判断定义为String类型的s1和s2是否相等 String s1 = "ab"; String s2 = "abc"; String s3 = s1 + ...

  3. String字符串相加常见面试题

    String name1="jack"; String name2="jack"; System.out.println(name1==name2); // t ...

  4. 【转载】常见面试题:C#中String和string的区别分析

    在很多人面试C#开发工程师的时候,会遇到一个面试题,就是C#中String和string有啥区别.其实针对这个问题C#中String和string没有本质上的区别,两者在程序中都可使用,稍微的一个区别 ...

  5. java常见面试题及答案 1-10(基础篇)

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  6. JDBC常见面试题

    以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. ...

  7. Mybatis常见面试题

    Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是 ...

  8. JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  9. 整理的最全 python常见面试题(基本必考)

    整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...

随机推荐

  1. java异常之后代码执行测试

    1.程序代码: public static void main(String[] args) { int[] a = {1,2,3}; for(int i=0;i<4;i++){ System. ...

  2. 一周中的后两天 笔记(网路基础 Python基础)

    网络基础 (统一的协议) 一,  计算机之间通过物理介质(网络设备)连接在一起 二,  计算机之间基于网络协议通信   tcp/ip五层   应用层: 传输层:tcp/udp协议 找到对应的软件 一个 ...

  3. Android SQLite 简易指北

    Android SQLite SQLite一款开源的, 轻量级的数据库. 以文本文件的形式存储数据. SQLite支持所有标准的关系型数据库特性. SQLite运行时占用内存非常少(约250 KByt ...

  4. Html5笔记之第七天

    视频格式 格式 MIME-type MP4 video/mp4 WebM video/webm Ogg video/ogg MP4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 ...

  5. Python常用库大全

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...

  6. PHP字符串和数组

    php常用函数和数组 字符串替换 , 分割字符串(字符串转数组),  拼接数组的值(数组组转字符串) , 格式化输出  查找字符首次出现的位置 , 获取字符串长度 以一个数组作为key另一个数组作为v ...

  7. svn status详解

    svn 是在提交前查看本地文本和版本库里面的文件的区别.返回值有许多种具体含义如下: [url=]  L    abc.c               # svn已经在.svn目录锁定了abc.c M ...

  8. 查看linux网卡硬件名称

    查看linux网卡硬件名称 lspci | grep -i ether

  9. test文件伪装

    该文件属于伪装图片类型.图片另存后把后缀改为rar将看到txt文件. 利用了 cmd cp  /b  命令 命令格式:copy /b 文件1+文件2+......文件N 合并后的文件名<br&g ...

  10. C# 文件的上传和下载

    本文主要介绍一下,在APS.NET中文件的简单上传于下载,上传是将文件上传到服务器的指定目录下,下载是从存入数据库中的路径,从服务器上下载. 1.上传文件 (1)页面代码 <table alig ...