Skip to content

Commit 9cc0bf8

Browse files
committed
Update code
1 parent 0cce375 commit 9cc0bf8

File tree

4 files changed

+7
-5
lines changed

4 files changed

+7
-5
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
####[09 尾递归优化](http://v.qq.com/x/page/f0345wmuw2m.html)
5555
  尾递归,顾名思义,就是递归中调用自身的部分在函数体的最后一句。我们知道,递归调用对于栈大小的考验是非常大的,也经常会因为这个导致 StackOverflow,所以尾递归优化也是大家比较关注的一个话题。Kotlin 支持语法层面的尾递归优化,这在其他语言里面是不多见的。
5656

57-
####10 单例[预计 11.14 录制]
57+
####10 单例[11.20 上传中]
5858

5959
  单例大家一定都不陌生,只要你动手写一个程序,就免不了要设计出一些全局存在且唯一的对象,他们就适合采用单例模式编写。在 Java 里面,单例模式的写法常见的有好几种,虽然简单却也是涉及了一些有意思的话题,那么在 Kotlin 当中我们要怎么设计单例程序呢?
6060

code/Kt10/src/main/java/net/println/kt10/java/PlainOldSingleton.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
public class PlainOldSingleton {
77
private static PlainOldSingleton INSTANCE = new PlainOldSingleton();
88

9-
private PlainOldSingleton(){}
9+
private PlainOldSingleton(){
10+
System.out.println("PlainOldSingleton");
11+
}
1012

1113
public static PlainOldSingleton getInstance(){
1214
return INSTANCE;

code/Kt10/src/main/kotlin/net/println/kt10/kotlin/LazyNotThreadSafe.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package net.println.kt10.kotlin
55
*/
66
class LazyNotThreadSafe {
77
companion object{
8-
val instance = lazy {
8+
val instance by lazy(LazyThreadSafetyMode.NONE) {
99
LazyNotThreadSafe()
1010
}
1111

code/Kt10/src/main/kotlin/net/println/kt10/kotlin/LazyThreadSafeDoubleCheck.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ package net.println.kt10.kotlin
55
*/
66
class LazyThreadSafeDoubleCheck private constructor(){
77
companion object{
8-
val instance = lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED){
8+
val instance by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED){
99
LazyThreadSafeDoubleCheck()
1010
}
1111

12-
@Volatile var instance2: LazyThreadSafeDoubleCheck? = null
12+
private @Volatile var instance2: LazyThreadSafeDoubleCheck? = null
1313

1414
fun getInstance() = {
1515
if(instance2 == null){

0 commit comments

Comments
 (0)