[Intel] 10주차 회고록

LHW·2023년 9월 15일
0

Intel교육과정

목록 보기
10/15

Intel AI For Future Workforce 10주차 회고록

개인적으로 듣고 이해한 바를 작성해 두었습니다. 잘못된 정보에 대한 피드백 환영합니다 !

☕Java

월요일과 화요일은 그렇게 크게 한 것 없이 수요일부터 Java를 시작했다. 추후에 실시할 Final Project를 대비하여 여러 모델들을 앱에 적재하는 경험을 위해 하는 듯 했다.

처음엔 기본적인 문법들과 함께 알고리즘 문제들을 풀다가 이후에 안드로이드 스튜디오를 시작하면서 App을 다뤄보게 될 것 같다.

사실 자바는 기본적인 문법 정도는 한 번 봤던 터라 생각보다 수월하게 잘 들을 수 있었던 것 같다.

자료형

사실 여기서 제일 크게 놀랐던 점은 처음 들을때는 언급이 없었어서 String또한 일반 자료형이겠거니 싶었는데 사실 객체 자료형이었던 것..

자바의 특성 상 객체 자료형들은 Stack Area와 Heap Area에 할당되기에 String또한 그렇다. 꽤나 중요하다고 강사님께서 강조하셔서 열심히 집중해서 들었다 😊

Null, NullPointerException

처음 들었을 때 너무 당황스러웠다. 그냥 오류가 발생하면 구글링해서 해결하면 될 거 같은데 무슨 Stack 영역이니 Heap 영역이니 ... 간단하지도 않을 뿐더러 평소에 귀찮아서 한 번도 제대로 보지 않았던 메모리 관련된 지식이라 좀 어려웠다.

이참에 좀 제대로 정리 해 두어야 겠다 싶어서 좀 집중해서 들은 주관적인 견해는 아래와 같다.

[Null]
: 객체 자료형을 선언할 때 아래와 같이 선언을 하곤 했다.

int[] b = null;

일단 간단하게만 강사님이 예시를 들어주신 듯 했는데, 위 코드가 뜻하는 것은 직관적으로 볼 땐 배열이 비어있다고 생각할 수 있지만 Stack 영역에 할당되는 레퍼런스가 null이라는 뜻이다. 즉, Stack영역에 b라는 변수 이름으로 한 공간을 차지는 하지만 레퍼런스가 null이기 때문에 Garbage인 것이다.

[NullPointerException]
: 그럼 위와 같은 예외는 어떤 상황에 발생할까?

int[] b = null;
b[0] = 11;

위 코드를 보면 Stack 영역의 레퍼런스가 null이다. 이 말인 즉슨, Heap영역에 동일한 레퍼런스로 참조할 값 조차 없다는 뜻이고, 참조가 애초에 불가하기에 Heap영역에 무언가 값을 할당하려고 하는 순간 NullPointerException이 발생하는 것이다.

제대로 이해한건진 모르겠지만 어느정도는 감이 잡힌 듯 하여 재밌게 들었던 것 같다.

Objects

객체지향의 개요와 함께 클래스의 필드를 이용해보기도 하고, 메소드를 직접 만들어서 사용을 해보기도 했다.

느낀 점

자바.. 생각보다 재밌다..!! DNN관련 라이브러리 있는지 찾아보고 얼른 구현해봐야겠다. 없다면.... 알고리즘 문제라도 풀어보고 알고리즘도 하기 싫다... 라고 하면 단순 신경망 계산 코드를 자바로 구현하는거..?!

도전 ! 👊

profile
하루가 다르게 성장하기

0개의 댓글