前三章

两个名词
jdk(java开发环境包) JRE(java运行环境)
一个程序是如何运行的?
编译过程
从这张图我们可以看出,.java文件被编译成字节码文件.class,然后类加载器加载字节码文件,然后执行引擎找到入口方法main()执行字节码文件
那么问题来了?
1.如何编译成字节码文件
2.类加载器是什么?具体执行过程是什么呢?
要想解决这两个问题,就牵扯到JVM虚拟机原理,在这里先留个疑问,等到我们学习了java虚拟机再讲
八种数据类型
int short long byte float double char boolean
String类解析
String类是非常重要的一种类,之前我一直以为八种数据类型中有String,实际发现并不是,接下来就对String类进行源码解析
一.定义

public final class String implements java.io.Serializable, Comparable<String>, CharSequence{}

从定义中可以看到,String类是final类型的,表示不可被继承、同时还实现了序列化接口和和比较接口,比较接口将是我们经常遇到的
二 属性

private final char value[];

可以发现String类的值是用char类型实现的,同时也用final修饰,用于存储字符串内容,虽然有这样的例子: String s = “a”; s = “b” 但是,这并不是对s的修改,而是重新指向了新的字符串, 从这里我们也能知道,String其实就是用char[]实现的。

三 构造方法
这里写图片描述
我们已经知道String类是用char[]实现的
方法:Arrays.copyof()
这个方法是将原有的字符数组中的内容逐一的复制到String中的字符数组中。
同样,我们也可以用一个String类型的对象来初始化一个String。这里将直接将源String中的value和hash两个属性直接赋值给目标String
使用字节数组构造一个String
—–未完待续

猜你喜欢

转载自blog.csdn.net/wang_ze_ma/article/details/82662657