`

JDK源码分析-String

    博客分类:
  • jdk
jdk 
阅读更多
java中基本类型、指针是存放在栈中,new 对象是存放在堆中,唯一不同的是String类型的数据存放在:常量池中
一个初始时为空的字符串池,它由类 String 私有地维护
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此String 对象添加到池中,并且返回此String 对象的引用
String 源码:
       public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */汉化一下:这个value是用来装char的.明白了吧,String其实是char数组的包装类。
    //而这个数组是final类型的,不可能指向别的对象,但是可以改,这个请耐心看下去
    private final char value[];
    /** Cache the hash code for the string */缓存hashCode
    private int hash; // Default to 0
}

StringBuilder:
Stringbuffer每个方法均用到了同步
分享到:
评论

相关推荐

    JDK源码分析之String、StringBuilder和StringBuffer

    主要给大家介绍了关于JDK源码分析之String、StringBuilder和StringBuffer的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用jdk具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Collections源码java-jdk1.8-source-analysis:Java8源码分析,J.U.C、ThreadPool、Col

    JDK1.8源码分析 导入源码过程中的注意事项 JDK1.8对应JDK版本下载: 提取码:49wi 源码在src目录下 以下两个类手动添加的,解决编译过程中该包的丢失 sun.font.FontConfigManager sun.awt.UNIXToolkit 其中: 1.请...

    javajdk1.8源码-Java-source-reading:jdk1.8源代码分析

    java jdk1.8 源码 Java-source-reading 缓慢更新一些个人学习java相关源码过程中的笔记,在这里你将不可避免地看到以下情况: ...String java.util Arrays ArrayList LinkedList HashMap HashSet LinkedHashMap

    jdk8-source-code:jdk源码解析

    jdk1.8-source-analysis JDK1.8源码分析引入原始过程中的注意事项JDK1.8对应JDK版本下载: 码:49wi原始码在src目录下以下两个类手动添加的,解决编译过程中该包的丢失sun.font.FontConfigManager sun.awt....

    jdk1.8-source-analysis:JDK1.8源码分析

    jdk1.8-source-analysis JDK1.8源码分析引入原始过程中的注意事项JDK1.8对应JDK版本下载: 码:49wi原始码在src目录下以下两个类手动添加的,解决编译过程中该包的丢失sun.font.FontConfigManager sun.awt....

    jdk1.8-source-analysis:Java 8源码分析,JUC,ThreadPool,Collection

    JDK1.8源码分析 引入原始过程中的注意事项 JDK1.8对应JDK版本下载: 码:49wi 原始码在src目录下 以下两个类手动添加的,解决编译过程中该包的丢失 sun.font.FontConfigManager sun.awt.UNIXToolkit 其中:1.请...

    java源码剖析-JavaSourceLearn:JDK1.8源码的代码分析和学习

    JDK1.8源码分析 导入源码过程中的注意事项 源码在%JAVA_HOME%\src.zip 源码在src目录下 以下两个类手动添加的,解决编译过程中该包的丢失 sun.font.FontConfigManager sun.awt.UNIXToolkit 其中: 1.请手动添加jdk...

    java8集合源码分析-JUC:高并发与多线程

    集合源码分析 高并发与多线程 Stargazers over time 线程 线程的创建和启动 线程的sleep、yield、join 线程的状态 代码在 部分。 synchronized关键字(悲观锁) synchronized(Object) 不能用String常量、Integer、Long...

    Java-String&StringBuilder&StringBuffer的区别与分析

    文章目录一、前言二、值可变性三、线程安全性四、时间性能排名 一、前言 此博客基于JDK1.8。 我们先用一张表格来回顾一下Java中String,StringBuilder,StringBuffer...接着我们由源码可以看到,Java中String类,Stri

    生鲜配送平台源码java-bj:北京

    程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。 2 .== 和 equals 的区别是什么? == 解读 对于基本类型和引用类型 == 的作用效果是...

    生鲜配送平台源码java-test_0723:我的第一个git仓库

    程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。 2.== 和 equals 的区别是什么? == 解读 对于基本类型和引用类型 == 的作用效果是...

    硬核ArrayList源码分析,答应我每天看一遍好么

    本篇源码分析会进行每步分析,当所有方法分析完最后还会做个大总结;如果不爱看源码分析步骤,只要面试最终结论的读者可以看看文末的总结就行了; 知识追寻者(Inheriting the spirit of open source, Spreading ...

    动力节点Java基础301集_史上最全的Java基础教程

    4: 源码分析分析讲的特别到位,尤其是HashMap的工作原理和源码分析,真正的把jdk源码翻了一遍,要是拿着这个去面试绝对是秒杀级神器。 5:使用多线程模拟用户去ATM取钱讲的也非常不错,后续还提了一个小Timer定时任务...

    Jdk动态代理 底层

    java动态代理主要有2种,Jdk动态代理、Cglib动态代理,本文主要讲解Jdk动态代理的使用、运行机制、以及源码分析。当spring没有手动开启Cglib动态代理,即:或@EnableAspectJAutoProxy(proxyTargetClass = true),...

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-022-Java语言概述-第一个程序-对源码的修改.avi 北京动力节点-Java编程零基础教程-023-Java语言概述-第一个程序-易犯的错误.avi 北京动力节点-Java编程零基础教程-024-Java语言...

    最全java面试题及答案

    具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要...

    两万字吐血总结,代理模式及手写实现动态代理(aop原理,基于jdk动态代理)

    jdk动态代理源码分析(通过该示例学会阅读源码的方法)2.jdk动态代理生成的代理类的源码3.总结三、手写实现jdk动态代理 一、代理模式 熟悉代理模式的可以直接点击目录第二章,jdk动态代理实现原理,本文的精髓所在,...

    Map

    前面源码分析中常见它的身影,在里面充当了一个什么作用? Map存储的元素为键值对,通常称为key-value 而key是不允许重复的 Set存储对象唯一 二、掌握Map的常用方法 三、基本方法的使用 掌握上述的每个方法的应用...

    java基础案例与开发详解案例源码全

    9.1 String类220 9.1.1 字符串常量221 9.1.2 字符串对象操作224 9.1.3 字符串对象修改228 9.1.4 类型转换230 9.2 StringBuffer类的使用231 9.3 StringBuilder类的使用233 9.4 日期类简介234 9.5 Java语言国际化时间...

Global site tag (gtag.js) - Google Analytics