Language 4

[Java] Generics

1. 정의 - 타입을 일반화 하는 것을 의미 - 클래스 내부에서 정하는 것이 아닌 사용자 호출에 의해 타입이 지정되는 것 - class / interface / method 등의 타입을 파라미터로 사용할 수 있게 해주는 역할 - Java 5 부터 추가된 개념 ex) List list = new ArrayList(); // 는 diamond라고도 하고 제네릭 표현식임 2. 사용하는 이유 1) 재사용성 증가 : 여러 타입의 파라미터를 삽입해 객체를 생성할 수 있기 때문에 코드를 간결하게 하고, 재사용성을 높인다 2) 컴파일 시 타입 에러 발견 가능 : 컴파일시 잘못 사용되는 문제점을 발견할 수 있기 때문에 런타임 단계에서 발견 될 가능성을 방지한다 3) 컴파일러가 타입 변환 수행: 컴파일 단계에서 타입 캐스..

Language/Java 2022.10.26

[Kotlin] Null Safety

Nullable types and non-null types 코틀린은 null 참조 위험에 대비한다 예를 들어, Java언어의 경우에는 null 참조가 NullPointerException(NPE)를 불러일으킨다 1. Regular variable 기본적인 변수 선언 방식 var a : String = "abc" //non-null 하게 초기화 된 변수 a = null //이러한 경우 컴파일 에러가 발생함 ////////// var b: String ? = "abc" // it can be set to null b= null //ok print(b) //null이 출력됨 ////////// val l = a.length //a는 non-null하므로 가능 val l = b.length //b는 null ..

Language/Kotlin 2022.09.13

[Kotlin 기초]

1. function //메인함수 fun main(){ println("Hello World!") } //sum 을 반환하는 함수 fun sum(a: Int, b:Int) : Int{ return a+b } //같은 동작 다른 형태 fun sum(a: Int, b:Int) = a+b //반환을 안하고 출력하는 함수 fun printSum(a: Int, b:Int) { println("sum of $a and $b is ${a+b}") } 2. Variables - val : read-only 로컬 변수를 선언할 때 사용함 -> 오직 단 한번만 값을 할당할 수 있음 - var: 여러번 값을 할당할 수 있음, 로컬에서만 사용하지 않아도 됨 //val val a : Int =1 // immediate assi..

Language/Kotlin 2022.09.04

Java Basic

Java Basic JVM(Java Virtual Machine) 동작 방식 (1) Class Loader JVM내로 클래스 파일을 로드하고, 링크를 통해 배치하는 작업 수행 (2) Execution Engine class loader를 통해 JVM 내의 Runtime Data Area에 배치된 바이트 코드드을 명령어 단위로 읽어서 실행함 (3) Garbage Collector heap 메모리 영역에 생성된 객체들 중 참조되지 않은 객체들을 탐색 후 제거하는 역할 (4) Runtime Data Area JVM의 메모리 영역으로 자바 애플리케이션을 실행할 때 사용되는 데이터들을 적자하는 영역 - Method Area: 모든 스레드가 공유하는 메모리 영역으로 class, interface, method, f..

Language/Java 2022.07.22