Java/스터디 9

2주차 피드백 참고

리터럴 https://www.notion.so/2-38b5d67c7f5a48238529bb8f1617ea0d 2주차 과제: 자바 데이터 타입, 변수 그리고 배열 목표 www.notion.so 래퍼런스 타입 https://velog.io/@jaden_94/2%EC%A3%BC%EC%B0%A8-%ED%95%AD%ED%95%B4%EC%9D%BC%EC%A7%80 2주차 항해일지 - 자바 데이터 타입, 변수, 배열 목차 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프 velog.io 데이터 타입의 사이즈가 어떻게 정해졌는가? https://github.com/kksb0831/Prac..

Java/스터디 2021.08.15

바이트코드

IDE (인텔리제이)에서는 int a = 10으로 한 줄짜리 코드지만 바이트코드로 보면 두 줄이다 * bipush 10을 스택에 넣고(push) istore_1으로 변수에 저장(store) 멀티 쓰레드할 때 코드는 한 줄인데 사실상은 두 줄이여서 문제가 될 수 있다고 말씀하심 a 쓰레드가 0을 처리하고 b 쓰레드가 2를 처리하고 a가 다시 3을 처리하면 이상한 값이 나올 수 있다. 아직 정확히 이해는 안가지만 지금은 IDE에선 한 줄로 보이는 코드가 실제로는 2~3줄일 수도 있다는 점을 알고 있으면 될 듯하다.

Java/스터디 2021.08.15

(2주차) 자바 데이터 타입, 변수 그리고 배열

자바 데이터 타입 - 기본형 (8개) stack 영역에 실제값을 저장 문자형 (char) : 'A', '가' ... 논리형 (boolean) : true, false 정수형 (byte, short, int, long) : 1, 10, 200, 3000, 60000 ... 실수형 (float, double) : 1.2, 30.21 ... - 참조형 (기본형을 제외한 나머지) heap 영역에 메모리 주소를 저장 배열, 인터페이스 , 클래스(String 포함) 등등 - 타입 크기 (byte) byte(1) == boolean(2) > short(2) == char(2) < int(4) == float(4) < long(8) == double(8) 리터럴 순수한 그 값 자체를 의미 int number = 2; ..

Java/스터디 2021.08.04

JIT 컴파일 (1주차)

JIT는 Just In Time의 약자이다. 프로그래밍에서 고급언어 (사람이 이해하는 코드)를 기계어로 변환하는 방법은 크게 컴파일 방식과 인터프리터 방식이 있다. 컴파일 방식 : 소스 코드 전체를 기계어로 변환 (통역사가 말을 듣고 이해한 후 나에게 한글로 전달해줌) 인터프리터 방식 : 소스 코드를 런타임시 한 줄 한 줄 변환 (통역사가 그 자리에서 실시간 번역) https://youtu.be/9sSxdhYGYSM 니콜라스가 잘 설명해주는 것 같아 첨부한다. 자바는 독특하게 두개의 방식을 같이 쓰는데 이건 딱 봐도 비효율적인 면이 있다. * 고급언어 -> 바이트 코드 (컴파일 방식 사용) * 바이트 코드 - > 기계어 (인터프리터 방식 사용) 그래서 도입된게 JIT 방식으로 JIT 컴파일러는 한 번 읽..

Java/스터디 2021.08.01

바이트 코드란 무엇인가? (1주차)

바이너리코드 vs 기계어 vs 바이트 코드 바이너리코드 - 컴퓨터가 이해할 수 있는 0과 1로 구성된 이진 코드 기계어 - 0과 1로 이루어져 있는 바이너리코드 (But 바이너리코드 != 기계어, 기계어는 바이너리코드로 이루어져 있을 뿐임) - 특정 언어가 아니라 CPU 제조사에서 지정한 명령어 집합 *CPU가 바뀌면 기계어 역시 바뀔 수 있다. 바이트 코드 - 가상 머신이 이해할 수 있는 0과 1로 구성된 이진 코드 - 사람이 이해할 수 있는 코드에서 가상머신이 이해할 수 있도록 한 번 컴파일 한 코드 - 바이트 코드는 JIT 컴파일러를 통해 바이너리 코드로 변환된다. * 참고한 블로그 https://shrtorznzl.tistory.com/82 바이트코드와 바이너리 코드의 차이는 무엇일까? C언어는 ..

Java/스터디 2021.08.01

JVM이란 무엇인가 & 구성 요소 (1주차)

https://youtu.be/peEXNN-oob4 1. JVM이란 무엇인가? 바이트 코드를 컴파일하는 자바 가상 머신이다. 독립적으로 동작하기 때문에 모든 OS에서 호환된다. * 아래 블로그에서 참고해 작성했습니다. https://gbsb.tistory.com/2 자바의 구동 원리와 JVM(Java Virtual Machine) 자바 프로그램의 구동 원리 소스코드를 작성한다. (.java 확장자의 소스 파일) 컴파일러(javac.exe)가 바이트코드로 변환한다. (.class 확장자의 클래스 파일) 런처(java.exe)로 자바 가상 머신 gbsb.tistory.com

Java/스터디 2021.07.26