일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- SUM
- LeetCode
- 빌트인객체
- Roman
- 자바
- implements
- 릿코드
- 로만
- 인가
- 부탁드립니다
- 메모리
- 제네릭
- jre
- strict mode
- Two
- integer
- 할당
- JVM
- JDK
- 제너릭
- 직렬화
- 이냐
- 모던 자바스크립트 딥 다이브
- JSON
- 모던자바스크립트
- java
- javascript
- 파견
- 비전공
- 딥다이브
- Today
- Total
목록자바 (6)
AnnSEo.log

자바 개발자면 JRE가 바이트코드를 실행하는 걸 알 거다. 근데 대다수가 JRE는 바이트 코드를 분석하고 interpret하고 실행하는 JVM의 구현(implementation)이라는 걸 모른다. 자바 개발자면 JVM 아키텍처 정도는 알아야지! 코드를 더 효율적으로 작성할 수 있다. 이 기사에서는 JVM 아키텍처에 대해서 깊히 알아보도록 하자! JVM이 뭐냐?! 가상 머신은 물리적인 기계의 소프트웨어 구현이다. 자바는 가상 머신을 구동해 WORA(Write Once Run Anywhere, 한 번 쓰면 여러 군데서 써라) 개념을 실현하게끔 개발되었다. 컴파일러는 자바 파일을 .class 파일로 컴파일하고 그 클래스 파일을 JVM에 넣어 적재되고(쌓이고), 실행한다. 아래 사진은 JVM 아키텍처의 diag..

JVM은 자바 바이트코드(.class 파일)를 각 OS에 맞게 네이티브 코드로 변환해(인터프리터, JIT Compiler) 실행한다. 각 OS에 맞게 네이티브 코드로 바꾸기 때문에 특정 플랫폼에 종속적이다. JRE(Java Runtime Environment): 자바 애플리케이션 실행이 목적, 프로퍼티 세팅, 리소스 파일 등이 포함 (여긴 개발 관련 툴이 포함되지 않음 ex) javac) JDK(Java Development Kit): JRE + 개발툴, 자바 11부터 JDK만 제공해 JRE를 따로 제공하지 않는다. Java: 프로그래밍 언어로 자바 컴파일러를 이용해 바이트코드로 컴파일 할 수 있다. JVM 언어: JVM 기반으로 동작하는 프로그래밍 언어 - 클로저, 그루비, JRuby, Jython, ..

긱포긱에서 컬렉션을 보고 있는데 https://www.geeksforgeeks.org/how-to-learn-java-collections-a-complete-guide/ How to Learn Java Collections - A Complete Guide - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions. www.geeksforgeeks.org 지금까..
Generics in Java 제네릭은 parameterized types 즉 매개변수화된 타입이다. Integer, String 등의 타입을 매개변수처럼 사용하자! 라는 개념. 그래서 제네릭으로 다른 데이터 타입을 갖는 클래스를 만들어낸다. 왜 제네릭을 쓸까? 오브젝트는 모든 클래스들의 상위 클래스로 오브젝트 참조는 모든 타입의 오브젝트를 참조할 수 있다. 이 경우 타입 안정성이 떨어지는데 제네릭을 사용해 타입 안정성을 높일 수 있다. 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지한다거나 재사용성이 높아진다거나. (잠깐~! 타입 안정성이 뭐지? → 프로그래밍 언어가 타입 오류를 방지하거나 예방하는 정도. 예를 들어 변수가 데이터 타입이 달라서 제대로 동작하지 않는 등의 문제가 타입 안정성과 ..

단순 클래스 선언하면 heap 메모리에 할당되지 않고 reference만 생성된다. 이 생성된 reference는 힙 메모리에 생성될까?? 답은 context에 따라 다르다라고 한다. 만약 선언이 오브젝트의 한 부분이면 reference를 위한 공간이 필드를 포함한 나머지 오브젝트를 위한 공간과 함께 heap에 할당이 된다. 그렇지 않다면 그냥 reference가 JVM의 stack frame에 할당된다고 한다. 출처 https://stackoverflow.com/questions/32810120/jvm-allocates-memory-at-declaration-for-primitive-types-but-not-for-non-primiti JVM allocates memory at declaration f..
회사에서 자바 공부중이다. 직렬화를 모르는데 써본 거 같다(?) 공공데이터를 JSON 형식으로 받고 그걸 다시 오브젝트로 바꿔서 데이터베이스에 저장하는 코드를 작성했었는데 그 당시는 그냥 하는가 보구나~ 했었는데. 자바 공부하다가 직렬화 내용이 나와서 보니 이게 그 때 그 JSON 바꾸는 거랑 똑같다는 생각이! JSON이라는 게 데이터를 주고 받기 위해서 쓰는 key-value 포맷이라고 생각하고 있었는데 직렬화라는 것도 오브젝트를 바이트 코드로 바꾸는 작업이었다. 그럼 왜 바이트 코드로 바꿔야할까? 오브젝트는 그대로 보낼 수 없는 걸까? 라는 생각으로 좀 찾아봤는데 좋은 글을 읽었다. 정리를 해보자면, 자바에서든 다른 언어든 메모리 구조에 값 형식과 오브젝트 형식이 있다. 오브젝트 데이터는 참조값을 담..