未验证 提交 91292f60 编写于 作者: H Hollis 提交者: GitHub

Merge pull request #115 from changfubai/master

调整部分笔误
......@@ -67,7 +67,7 @@ Class常量池可以理解为是Class文件中的资源仓库。 Class文件中
> 从上图中可以看到,反编译后的class文件常量池中共有16个常量。而Class文件中常量计数器的数值是0011,将该16进制数字转换成10进制的结果是17。
>
> 原因是与Java的语言习惯不同,常量池计数器是从0开始而不是从1开始的,常量池的个数是10进制的17,这就代表了其中有16个常量,索引值范围为1-16。
> 原因是与Java的语言习惯不同,常量池计数器是从1开始而不是从0开始的,常量池的个数是10进制的17,这就代表了其中有16个常量,索引值范围为1-16。
### 常量池中有什么
......
......@@ -20,7 +20,7 @@ replaceAll和replaceFirst的区别主要是替换的内容不同,replaceAll是
//文字替换(全部)
Pattern pattern = Pattern.compile("正则表达式");
Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
//替换第一个符合正则的数据
//替换所有符合正则的数据
System.out.println(matcher.replaceAll("Java"));
```
......
......@@ -71,7 +71,7 @@ Java 7中,switch的参数可以是String类型了,这对我们来说是一
}
编译后的代码如下: `public class switchDemoChar
编译后的代码如下:
public class switchDemoChar
{
......@@ -147,4 +147,4 @@ Java 7中,switch的参数可以是String类型了,这对我们来说是一
看到这个代码,你知道原来字符串的switch是通过`equals()``hashCode()`方法来实现的。**记住,switch中只能使用整型**,比如`byte``short``char`(ackii码是整型)以及`int`。还好`hashCode()`方法返回的是`int`,而不是`long`。通过这个很容易记住`hashCode`返回的是`int`这个事实。仔细看下可以发现,进行`switch`的实际是哈希值,然后通过使用equals方法比较进行安全检查,这个检查是必要的,因为哈希可能会发生碰撞。因此它的性能是不如使用枚举进行switch或者使用纯整数常量,但这也不是很差。因为Java编译器只增加了一个`equals`方法,如果你比较的是字符串字面量的话会非常快,比如”abc” ==”abc”。如果你把`hashCode()`方法的调用也考虑进来了,那么还会再多一次的调用开销,因为字符串一旦创建了,它就会把哈希值缓存起来。因此如果这个`switch`语句是用在一个循环里的,比如逐项处理某个值,或者游戏引擎循环地渲染屏幕,这里`hashCode()`方法的调用开销其实不会很大。
好,以上就是关于switch对整型、字符型、和字符串型的支持的实现方式,总结一下我们可以发现,**其实switch只支持一种数据类型,那就是整型,其他数据类型都是转换成整型之后使用switch的。**
好,以上就是关于switch对整型、字符型、和字符串型的支持的实现方式,总结一下我们可以发现,**其实switch只支持一种数据类型,那就是整型,其他数据类型都是转换成整型之后使用switch的。**
我们有三种方式将一个int类型的变量变成呢过String类型,那么他们有什么区别?
我们有三种方式将一个int类型的变量变成一个String类型,那么他们有什么区别?
1.int i = 5;
2.String i1 = "" + i;
......@@ -7,4 +7,4 @@
第三行和第四行没有任何区别,因为String.valueOf(i)也是调用Integer.toString(i)来实现的。
第二行代码其实是String i1 = (new StringBuilder()).append(i).toString();,首先创建一个StringBuilder对象,然后再调用append方法,再调用toString方法。
\ No newline at end of file
第二行代码其实是String i1 = (new StringBuilder()).append(i).toString();,首先创建一个StringBuilder对象,然后再调用append方法,再调用toString方法。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册