Java(23)
-
Java의 메모리 구조
[ 작성이유 ] Java 쓰레드 프로그래밍에 관한 강의에서도 그리고 "스프링 입문을 위한 자바 객체 지향의 원리와 이해" 책을 읽으면서 Java의 JVM 메모리를 정확하게 잘 모른다는 느낌이 들었다. 그래서 각각의 영역에 해당하는 변수, 메서드들이 왜 동작이 안되는지를 정확하게 모르는 결과로 이어졌다고 생각이 들었고 이를 정리해보고자 한다. [ 자바의 메모리 ] T메모리는 static 영역, stack 영역, heap영역을 합친 영역이다. static 영역 java.lang과 같은 패키지, import된 패키지, 프로그램 상의 모든 클래스가 static 영역에 배치된다. 내가 짠 코드 중 static 영역에 배치되어야 하는 것은 객체가 필요한 코드 실행 시점이 돼야 static에 올라가게 된다. stat..
2023.12.28 -
JVM, JRE, JDK의 차이가 무엇일까?
[ 작성 이유 ] Java로 개발을 하다보면 JVM, JRE, JDK라는 말을 생각보다 자주 보게 된다. 특히 자바 프로그램을 작성할 때에 인텔리제이 같은 IDE에서 JDK를 설정하고 그걸 gradle 파일에 작성을 해준다. 그런데 가끔씩 돌다보면 JRE 설정 같은 것도 있는데 JVM은 뭐라고 설명을 못하겠지만 대충 알겠지만 JRE는 전혀 몰랐었다. 그리고 JDK를 설정하고 나면 나머지는 세팅할 필요도 없기 때문에 딱히 신경 쓰지 않았지만 책에서 보니 한번 짚어 넘겨봐야겠다는 생각이 들었고 작성을 하게 되었다. [ 용어별 설명 ] JDK : Java Development Kit / 자바 개발 도구 JRE : Java Runtime Environment / 자바 실행환경 JVM : Java virtual ..
2023.12.28 -
Primitive Type과 Wrapper Class
[ 작성이유 ] 스트림을 공부하던 중 Stream와 IntStream의 속도성능 차이에 관해서 보게 되었다. 그런데 가만히 생각해보니 int랑 Integer 둘 다 정말 많이 쓴 것 같은데 뭔 차이가 있는지 정확하게 모르고 사용하고 있는게 아닌가 싶었다. 그래서 이 내용을 정리하고 스트림에 관해서 다시 공부를 하려고 한다. [ 고민거리 ] Java에서 프로그램을 짜다보면 굉장히 많은 상황이 발생한다. 가장 많이 사용하는 순간을 예시로 들어보자. for(int i = 0 ; i < 10 ; i++){ System.out.println("시간이 " + i + "초 경과했습니다."); } 간단하게 위와 같은 코드가 있다고 생각을 해보자. 사실 이 상태는 굉장히 이상한 상태이다. 파이썬이나 다른 언어였으면 에러..
2023.12.23 -
Enum Type에 대해서
이 글을 쓰게 된 계기 EnumType이 되게 쉬운 거라고 생각해서 간단하게 생각하고 넘어갔는데 생각보다 기능도 있고 다양하게 사용할 수 있어서 해당 부분에 대해서 공부를 해보았다. 참고 사이트는 다음과 같다. Enum Type을 쓰는 이유? 개인적인 생각이지만 클래스에서 변수값을 나타낼 게 여러 개인 경우 public static final int 같은 방식으로 상수를 지정할 수 있다. 그런데 그게 여러 개라면 해당 상수에 이름을 지정해주는 방법이 더 사용하기에 좋으니 관리하기 편하게 사용하기 위해서 사용하는 것이라고 생각을 한다. 예를 들면, 원소 번호 같은 걸 들 수 있다. 원소 번호는 각각의 번호와 이름이 지정이 되어있는데 그걸 static으로 전부 다 나타내면 굉장히 코드가 보기 안 좋고 만약에..
2023.11.06 -
자바의 정석, 열거형(Enum) 2
보호되어 있는 글입니다.
2023.08.29 -
자바의 정석, 열거형(enums) 1
보호되어 있는 글입니다.
2023.08.07