首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jvm源码解析(一)String

    String底层由char数组组成 jdk1.7后,永久代被元空间替换,字符串常量池从方法区移动到java堆中 重要方法如下: 一、多构造方法 1.以String为参数的构造方法 2.以char数组为参数的构造方法...类型的String格式) 各基本类型调用其包装类型的toString(获取对应的字符数组然后调用String的new String(char[]),boolean则是直接三目运算符写死,引用类型调用他的...toString方法 toCharArray(返回字符数组) 创建一个新数组,System.arrayCopy,返回 concat(返回String+String) 底层是System.arraycopy...substring(返回子字符串) new String(value,start,end); 五、常见问题 为什么String要用final修饰 安全、高效 1、不可变类能够缓存结果,传参时不需要考虑值是否被修改...String类型在jvm中如何存储,编译器对String做了哪些优化 String str1 = "java"; String str2 = new String("java"); 在jvm中存储的方式截然不同

    47020

    Java中String部分源码解析

    String源码解析和面试题 String 不变性 一旦被初始化,就不能再被改变;即使修改,也是新的对象 String s = "Hello"; s = "你好"; 为了满足不可变对象,Java语言要求遵守以下...*/ private int hash; // Default to 0 } 从源码可以看出,String满足不可变对象的5条原则,源码解析String类被final修饰,说明String...String的其他方法是怎么回事? 既然String是不可变的,好像内部还有很多substring, replace, replaceAll这些操作的方法。...String str = “Hello world!”; str = str.replace("world", "World..."); String真的不可变吗? 真的不能改变String吗?...通过反射来改变String: public class StringDemo { public static void main(String[] args) { String

    33731

    JS解析

    JS解析 学习目标: 了解 定位js的方法 了解 添加断点观察js的执行过程的方法 应用 js2py获取js的方法 1 确定js的位置 对于前面人人网的案例,我们知道了url地址中有部分参数,但是参数是如何生成的呢...找到js的位置之后,我们可以来通过观察js的位置,找到js具体在如何执行,后续我们可以通过python程序来模拟js的执行,或者是使用类似js2py直接把js代码转化为python程序去执行 观察js...的使用 在知道了js如何生成我们想要的数据之后,那么接下来我们就需要使用程序获取js执行之后的结果了 3.1 js2py的介绍 js2py是一个js的翻译工具,也是一个通过纯python实现的js...的解释器,github上源码与示例 3.2 js的执行思路 js的执行方式大致分为两种: 在了解了js内容和执行顺序之后,通过python来完成js的执行过程,得到结果 在了解了js内容和执行顺序之后,...使用类似js2py的模块来执js代码,得到结果 但是在使用python程序实现js的执行时候,需要观察的js的每一个步骤,非常麻烦,所以更多的时候我们会选择使用类似js2py的模块去执行js,接下来我们来使用

    2.9K50
    领券