umc 스터디 (1)

서현진·2022년 9월 28일
0

1단원 공부

1.kotlin

자바에서 추가한 언어

다양한 플랫폼에서 돌아감

nullable인것이 특징이다

왜 장점인지 모르겠다?

jvm을 이용한다 ⇒ 자바 가상 머신 상에서 동작하는 앱을 만들 수 있다.

코틀린의 장점

1.정적언어이다.

컴파일러가 자료형에 대한 오류를 미리 잡을 수 있다.

2.널포인터로 인한 프로그램의 중단을 예방 할 수 있다.

“개발자들은 코틀린의 이런 특징을 npe에서 자유롭다” 라고 한다.

npe = null pointer exception

3.데이터형 선언시 널 가능한 형식과 불가능한 형식 지원

4.자바와 완벽하게 상호운영이 가능하다.

애초에 자바 가상머신상에서 돌기 때문에

5.함수형 프로그래밍 과 객체지향프로그래밍 둘다 사용 가능

6.세미콜론 생략 가능 ㅋㅋㅋㅋㅋ

2.변수

변수 선언 방법

val/var (변수이름) : (자료형) = (대입할 값)

ex) val username : String = “kildong”

cf) 1.항상 자료형의 첫글자는 대문자이다

string(x)

String(o)

2.변수 이름의 첫 글자는 항상 소문자이다

  1. val =value 의 약자이고 불변값이다

    var=varable의 약자이고 변할 수 있는 값이다

  2. val username =3 과 같은코드에서 변수의 자료형이 추론 가능하다면 자료형을 생략하여도 문법상 문제가 발생하지 않는다

자료형엔 기본형(primitive data type)과 참조형(reference type)이 존재한다

기본형: 스택에서 바로 접근한다.

참조형 :동적공간 힙에서 스택의 주소값을 가져서 참조 주소를 가진다

unsigned int(c언어)==UInt(kotlin)

2-2

1.자료형 생략

ex)val num05= 127(Int 형으로 추론한다)

val num08= 12342523523523532523(long 형으로 추론)

2.접미사 접두사 사용

val exp01 = 123(Int 형으로 추론)

val exp02 = 123L(접미사 L을 사용해 long형으로 추론)

val exp03=0x0F (접두사 0x를 사용해 16진 표기가 사용된 Int 형으로 추론)

val exp04 = 0b00001011(접두사 0b를 사용해 2진 표기가 사용된 Int형으로 추론)

src파일이 만약 sourceroot로 변환되어 있지 않는다면 패키지 생성이 불가하다.

[Kotlin] 인텔리제이(IntelliJ) new package, class 없는 경우 해결

자료형.MIN_VALUE—-자료형의 최소값

자료형.MAX_VALUE—-자료형의 최대값

음수의 이진수 표현 방법

-6의 이진값 0000 0110

-값 뒤집기 1111 1001

-1을 더한다 1111 1010

cf)1을 더한 이유는 그래야 msb를 제외하고 0이 되기 때문이다

새로운 자료형

이름:Boolean

형식: 논리형

크기 : 1비트

값의 범위: ture,false

Untitled

Untitled

println(”str1: \”str1\”,str2:\”str1\”,str2:\”str2\””)

Untitled

틀린 이유는 “의 방향의 영향을 받는다

Untitled

올바른 코드 이다

null

코틀린의 변수선언은 기본적으로 null을 허용하지 않는다

cf) null 가능한 선언

val a:Int? =null(여기서 Int와 Int?는 완전히 다른 자료형이다)

var b:String?=null

만약 사용할 수 없는 null인 변수에 접근하면서 발생하는 예외

NPE(nullpointerexception)

Untitled

오류:Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?

해결)세이프티콜이 필요하다

세이프티콜 형식 : 변수?.멤버

세이프티콜의 역할은 만약 변수에 널값이 들어가 있다면 바로 널을 반환하고

아니라면 멤버를 처리한뒤 값을 반환한다

cf) 넌널 단정 기호: !!.

컴파일러가 널이 아니라고 무조건 판단하고 컴파일함

단축키:alt+enter ⇒ 빠른 수정 .즉 다른 코드를 추천해줌

elvis 연산자 ⇒ “ ?: ”

ex) val len =str1?.length ?:-1

0개의 댓글

관련 채용 정보