Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
南宫梦沉
toBeTopJavaer
提交
91292f60
T
toBeTopJavaer
项目概览
南宫梦沉
/
toBeTopJavaer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
toBeTopJavaer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
91292f60
编写于
11月 17, 2020
作者:
H
Hollis
提交者:
GitHub
11月 17, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #115 from changfubai/master
调整部分笔误
上级
fbb3ce8c
61f62540
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
6 addition
and
6 deletion
+6
-6
docs/basics/java-basic/class-contant-pool.md
docs/basics/java-basic/class-contant-pool.md
+1
-1
docs/basics/java-basic/replace-in-string.md
docs/basics/java-basic/replace-in-string.md
+1
-1
docs/basics/java-basic/switch-string.md
docs/basics/java-basic/switch-string.md
+2
-2
docs/basics/java-basic/value-of-vs-to-string.md
docs/basics/java-basic/value-of-vs-to-string.md
+2
-2
未找到文件。
docs/basics/java-basic/class-contant-pool.md
浏览文件 @
91292f60
...
...
@@ -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。
### 常量池中有什么
...
...
docs/basics/java-basic/replace-in-string.md
浏览文件 @
91292f60
...
...
@@ -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"));
```
...
...
docs/basics/java-basic/switch-string.md
浏览文件 @
91292f60
...
...
@@ -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的。**
docs/basics/java-basic/value-of-vs-to-string.md
浏览文件 @
91292f60
我们有三种方式将一个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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录