23.12.07

KSang·2023년 12월 7일
0

TIL

목록 보기
6/101

지연초기화

lateinit var 늦게 초기화

사용할때는 값이아니라 참조형태로 사용해야하기 때문에 this:: 또는 ::를 붙임

    fun displayInfo() {
				if(this::name.isInitialized) {
	        println("이름은: ${name} 입니다.")
	        println("나이는: ${age} 입니다.")
				} else {
					println("name변수를 초기화해주세요.")
				}
    }

상수는 lazy

fun main(){
    var s1 = Student()
    s1.name = "참새"
    s1.displayInfo()

    s1.age = 10
    s1.displayInfo()
}

class Student {
    lateinit var name:String
    var age:Int = 0
    val address: String by lazy {
        println("address 초기화")
        "seoul"
    }

    fun displayInfo() {
        println("이름은: ${name} 입니다.")
        println("나이는: ${age} 입니다.")
        println("주소는: ${address} 입니다.")
    }
}

쓰레드

프로세스

프로그램이 메모리에 올라가서 실행될때 이를 프로세스 1개 라고 함

쓰레드

  • 쓰레드는 프로세스보다 더 작은 단위
  • 프로세스 안에서 더 작은 작업의 단위가 쓰레드
  • 쓰레드는 생성되서 수행할때 각 독립된 메모리 영역인 STACK 을 가짐
  • 즉 쓰레드를 한 개 생성하면 스택메모리의 일정 영역을 차지함

fun main() {
    thread(start = true) {
        for(i in 1..10) {
            println("Thread1: 현재 숫자는 ${i}")
            runBlocking {
                launch {
                    delay(1000)
                }
            }
        }
    }

    thread(start = true) {
        for(i in 50..60) {
            println("Thread2: 현재 숫자는 ${i}")
            runBlocking {
                launch {
                    delay(1000)
                }
            }
        }
    }
}

ArrayList<>() = a
a.find{it == 찾고싶은거}

index
custardList.forEachIndexed { index, custard -> println("${index + 1}. ${custard.info}") }

if (LocalTime.now() in LocalTime.of(23, 10)..LocalTime.of(
23,
20
)

0개의 댓글