언어 8

[Kotlin] 코틀린 살짝 맛보기 - 함수

다음은 함수 사용입니다. 코드를 짜다 보면 가장 많이 자바와 다른게 체감되는 부분입니다. private fun functionName(name: String, age: Int): String { } 형태를 먼저 적어봤습니다. 자바로 표현하면 아래와 같은 형태일겁니다. private String functionName(String name, int age) { } fun 이라는 키워드를 통해서 함수를 선언하고, 반환 타입의 위치도 다릅니다. 사실 여기까지의 문법만 적응된다면 나머지는 자바와 크게 다르지 않습니다. private fun functionName( name: String = "짱구", age: Int = 10 ): String { } 하지만 이런모양은 어떤가요? 매개변수의 기본값을 이렇게 할당 ..

언어/Kotlin 2022.07.20

[Kotlin] 코틀린 살짝 맛보기 - 제어문

코틀린에서의 제어문도 자바와 차이가 있는 부분입니다. 코틀린에서의 If-else 문은 그 자체로 하나의 표현식 (expression) 이 됩니다. 이는 if-else 문을 그대로 return 할 수도 있는 뜻이기도 합니다. Java에서 클린코드를 구현하다보면 else 문을 되도록 사용하지 않는 것을 권고합니다. Early return 을 통해 else 를 쓰지 않고 로직이 처리되는 것을 선호합니다. 그런데 코틀린에서는 그 자체가 하나의 표현식이라서 바로 return 문에서 활용이 가능합니다. fun getGradeWithIf(score: Int): String { return if (score >= 50) { "P" } else { "F" } } 위와 같은 표현이 가능합니다. switch-case 구문은..

언어/Kotlin 2022.07.20

[Kotlin] 코틀린 살짝 맛보기 - 타입과 변수

코틀린을 공부해보고자 합니다. 현재 회사에서 사용하고 있는 언어이지만 학습해본적이 없어 시작해보려고 합니다. 현재 간단하게 인프런의 기본개념 강의를 들은 상태에서 지금까지 써왔던 Java 와 다른 몇가지를 먼저 작성해보고 어떻게 코틀린을 사용해서 클린코드를 만들 수 있을지 이어서 작성해보려고 합니다 :) 먼저 변수에 대한 것을 살펴보겠습니다. // 가변 var number1 = 10L // 불변 val number2 = 10L // 타입을 명시적으로 작성하지 않아도, 타입이 추론된다. // 초기값이 없으면 타입 지정해줘야함 var number3: Int val number4: Long // Long, long -> 코틀린은 연산이 필요한 경우, 알아서 primitive type 으로 변환한다. // nu..

언어/Kotlin 2022.07.10

[Java] JVM이란?

JVM이란 JVM(Java Virtual Machine)은 자바를 싱행하기 위한 가상 머신이다. 자바로 작성된 어플리케이션은 모두 JVM에서 실행되며, 일반 어플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는 반면, 자바 어플리케이션은 JVM을 한번 더 거치게 된다. 이때문에 자바 어플리케이션은 OS와 하드웨어에 독립적이다. 단, JVM은 OS에 종속적이므로 OS에 따라 실행가능한 JVM이 필요하다. JVM의 메모리 구조 JVM의 3가지 주요 영역에 대해서 써보려고 한다. 1. Method Area 프로그램 실행 중 어떤 클래스가 사용되면, JVM읜 해당 클래스의 클래스파일을 읽어서 분석하고, 클래스에 대한 정보를 이곳에 저장한다. 해당 클래스의 클래스변수 또한 이 영역에 함께 생성된다. 2. Hea..

언어/Java 2019.09.25

[Java] wrapper class

Wrapper Class 래퍼(wrapper) 클래스란 자바의 기본형 변수를 객체로 다뤄야 할 때 사용된다. (기본형 8개는 객체로 다루지 않는다) 래퍼 클래스들은 객체생성 시에 생성자의 인자로 주어진 각 자료형에 알맞은 값을 내부적으로 저장하고 있고, 이에 관련된 여러 메서드가 정의되어있다. 기본형 래퍼클래스 생성자 예시 boolean Boolean Boolean(boolean value) Boolean(String s) char Character Character(char value) Character c = new Character('a'); byte Byte Byte(byte value) Byte(String s) Byte 는 실제 사용 시 byte형의 범위 내에 있는 값을 넣어도 정수의 기본 자..

언어/Java 2019.09.17

[Java] 변수 - 형변환(Casting)

형변환 형변환이란 변수 또는 상수의 타입을 다른 타입으로 변환하는 것을 말한다. 형변환의 방법은 간단하다. 형변환하고자 하는 변수나 *리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여주면된다. 서로 다른 타입간의 대입 또는 연산을 할 떄, 편의상의 이유로 형변환을 생략할 수 있다. 이를 '자동 형변환'이라고 한다. 자동형변환은 기존의 값을 최대한 보존할 수 있는 타입으로 변환한다. 표현범위가 좁은 타입에서 넓은 타입으로 형변환하는 경우에는 값 손실이 없으므로 두 타입 중 표현범위가 더 넓은 쪽으로 형변환이 이루어진다. boolean을 제외한 기본형 7개의 자동형변환은 그림과 같이 왼쪽에서 부터 오른쪽으로 자동형변환 되며, 오른쪽에서 왼쪽으로의 변환은 명시적으로 형변환연산자를 써줘야 한다. * 기본형..

언어/Java 2019.09.05

[Java] 변수 - 타입

자료형은 값이 저장될 공간의 크기와 저장형식을 정의한 것이다. 자료형은 크게 기본형과 참조형으로 나눌 수 있는데, 기본형 변수는 값을 저장하고, 참조형 변수는 어떤 값이 저장되어 있는 주소를 값으로 갖는다. (메모리에는 1byte단위로 일련번호가 있는데, 이를 메모리 주소라고 한다. 위에서 말한 주소는 변수, 객체가 저장된 메모리 주소를 뜻한다.) * 기본형 변수 분류 타입 논리형 boolean (1 byte) true 와 false 중 하나를 값으로 갖고, 조건식과 논리적 계산에 사용. 문자형 char (2 byte) 문자를 저장하는데 사용, 변수에 하나의 문자만 저장 가능. 정수형 byte (1 byte) short (2 byte) int (4 byte) long (8 byte) 정수를 저장하는데 사..

언어/Java 2019.09.04

[Java] 변수 - 선언과 초기화

변수 변수란 값을 저장할 수 있는 메모리 공간. 하나의 값을 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다. 변수의 선언 변수의 선언은 '변수의 타입 변수이름' 과 같은 형식으로 적어준다. ex) int a; int는 변수의 타입, a는 변수의 이름이다. 변수의 이름은 값을 저장하는 메모리 공간에 이름을 붙여준 것. 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보되고, 이 저장공간은 '변수이름'으로 접근하여 사용할 수 있게 된다. 변수의 초기화 변수는 초기화를 해주어야 한다. 그 이유는 메모리는 자바프로그램 하나만 사용하는 자원이 아닌 여러 프로그램이 공유하는 자원이다. 메모리에 알 수 없는 '쓰레기값'이 남아있을 수 있기 때문에 초기화를 해주어야 한다..

언어/Java 2019.09.04