자바의 static
Language/Java ☕️2024. 5. 22. 17:58자바의 static

자바를 사용해 코딩을 하다보면 static 이라는 키워드를 보게 됩니다!대표적으로 public static void main() 과 같은 구문에서도 볼 수 있죠! 오늘은 이 static 키워드가 무엇을 의미하고 어떻게 동작하는지 알아보겠습니다! 자바의 static자바에서 static 키워드는 클래스 수준에서 변수를 선언하거나 혹은 메서드를 정의할 때 사용합니다.static의 사용을 통해 클래스의 인스턴스에 속하는 것이 아닌 클래스 자체에 속하는 멤버를 만들 수 있습니다.예를 들어볼까요?static 변수static 변수는 정적 변수 혹은 클래스 변수라고도 합니다. 클래스의 모든 인스턴스가 공유하는 변수 입니다.public class Counter { private static int count = 0..

자바의 메모리 구조
Language/Java ☕️2024. 5. 22. 14:49자바의 메모리 구조

자바 어플리케이션의 성능을 확인하고 개선하기 위해선, 자바 메모리 구조에 대한 이해가 필요합니다.자바의 메모리 관리를 잘 하기만 하더라도 어플리케이션이 더욱 효율적으로 실행 될 수 있죠! 자바의 메모리 구조 자바의 메모리 구조는 크게 3가지로 나눌 수 있습니다.메서드 영역: 이 영역은 모든 스레드가 공유하는 메모리 영역으로, 클래스 수준의 정보(클래스 로더에 의해 로드된 클래스와 인터페이스의 메타데이터), 정적 변수를 저장하는 static 영역, 상수를 저장하는 Constant Pool 로 이루어져 있습니다. 이 영역은 어플리케이션이 실행되는 동안 잘 변하지 않는 정보를 저장하는데 사용합니다.스택 영역: 자바 어플리케이션 실행 시, 어플리케이션 내의 스레드마다 각 스레드의 스택이 존재하게 되는데, 해당 ..

자바의 가비지 컬렉션
Language/Java ☕️2024. 2. 2. 21:46자바의 가비지 컬렉션

안녕하세요, 이번에 Kernel 360 과정에 참여하게 되면서 기술 세미나를 맡아 준비하게 되었는데요. 거의 대부분의 팀들이 Java 와 Spring Framework 환경으로 프로젝트를 진행하고 있었습니다 (역시,, 자바민국) 그로 인해, 자바라는 언어를 처음 접하는 크루들도 굉장히 많았는데요. 그래서 이번 기술 세미나를 통해 자바의 장점을 설명하고 싶었어서 자바의 가비지 콜렉션(GC) 에 대해 발표를 하기로 하였습니다. 이번 블로그에선 발표를 위한 자료를 정리할 겸, 가비지 콜렉션에 대해 함께 알아보도록 하겠습니다! 가비지 콜렉션이란? #include #include void main() { int* pPoint; pPoint = (int*)malloc(sizeof(int)*5); pPoint[0] ..

String vs StringBuffer vs StringBuilder
Language/Java ☕️2024. 2. 2. 10:17String vs StringBuffer vs StringBuilder

자바라는 언어를 하면서 String 클래스를 접하지 않은 사람은 없을 것입니다. 저도 마찬가지로 프로젝트를 진행하며 자바 코드를 작성할 때에는 String을 사용해왔고, 문자열 연산도 String + String 이런식으로 사용해왔습니다. Java 라는 언어를 제대로 공부해보게 되면서 StringBuffer 클래스와 StringBuilder 클래스에 대해 알게 되었고 간단하게 알아보았을 때에는 그냥 String과의 차이점을 알지 못하고 필요성도 느끼지 못했습니다. 이시간은 함께 String / StringBuffer / StringBuilder 를 비교해보며 그 쓰임을 알아보도록 하겠습니다. String 자바에서 String을 선언하는 방식에는 두 가지가 있습니다. // way1 String name =..

Double과 Float를 사용하면 안되는 이유
Language/Java ☕️2024. 2. 1. 23:41Double과 Float를 사용하면 안되는 이유

자바에서 소수를 표현할 때 보통 double 이나 float 형식의 자료형을 사용합니다. 자바 관련 강의를 듣는데 강사님께서 이런 말씀을 하시더라구요. double과 float 대신 BigDecimal 자료형을 사용하세요! 왜 이런 말씀을 하시고 왜 double 과 float 대신 BigDecimal을 사용해야 하는지 알아봅시다. 부동소수점 연산의 정확도 문제 float 나 double은 부동소수점으로 값을 표현하다 보면, 소수점 이하의 값이 정확하게 표현이 안되는 오류가 발생합니다. double a = 1.03; double b = 0.42; System.out.println(a - b); // 결과 0.6100000000 위에서 보여지는 코드와 같이 연산이 실행되면, 연산의 기댓값인 0.61이 출력되..

JDK vs JRE vs JVM
Language/Java ☕️2024. 2. 1. 20:10JDK vs JRE vs JVM

자바 개발자들은 자바 코드를 작성합니다. 그리고 그 자바 코드를 컴퓨터가 알아듣고 의도에 맞게 동작합니다. 이 두 과정 사이에 자바 코드를 컴파일하고 실행하기 위해 실제로 동작하는 작업들과 관련해서 등장하는 플랫폼 독립성이라는 중요한 개념을 살펴보고자 합니다. 플랫폼 독립성 모두들 아시다시피 컴퓨터는 0과 1만을 알아듣습니다. 우리는 그것을 기본 명령이라고 부르는데, 이런 기본 명령들을 운영체제가 알아듣고 그에 맞게 동작하게 됩니다. 자바나 파이썬 같은 언어들도 결국은 0과 1로 변환되어 운영체제를 위한 기본 명령의 형태로 바뀌어야 합니다. 하지면 여기서 운영체제에 따른 기본 명령이 다르기 때문에, Windows 환경에서의 명령과 Unix 환경에서의 명령, Linux 환경에서의 명령까지 전부 다릅니다. ..

image