본문 바로가기
728x90

☕️자바 𝗝𝗔𝗩𝗔33

자바 JVM, JDE, JDK (JDK와 JRE의 차이점) JDK와 JRE의 차이점은 JDK는 Java 프로그램을 개발하고 실행할 수있는 환경을 제공하는 반면 JRE는 Java 프로그램을 실행하는 환경 만 제공한다는 것이다. JDK는 JRE와 개발 도구의 조합이며, JRE는 JVM과 라이브러리 파일의 조합 JDK JDK는 자바 개발도구(Java Development Kit)의 약자. JDK는 JRE + 개발을 위해 필요한 도구(javac, java등). 컴파일러와 디버그 도구들이 여기에 존재한다. JDK를 설치하면 JRE, JVM이 설치되는 구조다. JVM JVM은 자바 가상머신(Java Virtual Machine)의 약자. JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행한다. - 바이너리 코드를 읽는다. - 바이너리 코드를 검.. 2022. 5. 30.
[Java] 자바 문자열 비교 == equals() 차이점 Java에서 int와 boolean과 같은 일반적인 데이터 타입의 비교는 ==이라는 연산자를 사용하여 비교한다. 하지만 String처럼 Class의 값을 비교할때는 == 대신 equals()라는 메소드를 사용해 비교하는데 어떨때 equals를 사용하고 어떨때 ==를 사용하는지, equals와 == 은 어떤 차이점이 있는지 알아보자. 1. String 변수 생성시 주소할당 String변수를 생성할때는 두가지 방법이 있다. 1. 리터럴(literal)을 이용한 방식 2. new 연산자를 이용한 방식 위의 두 방식에는 큰 차이점이 있다. 리터럴을 사용하게 되면 string constant pool*이라는 영역에 존재하게 되고 new를 통해 String을 생성하면 Heap 영역에 존재하게 된다. * 자바 Str.. 2022. 5. 19.
[Java] 자바 String Pool과 new String (Java의 String은 어디에 저장되는가) String Interning Java에서의 String은 일반적인 Heap에 저장할 수도 있고, 별도의 String constants Pool이라는 공간을 제공하고 있다. 이 String Constants Pool에 저장하고 사용하는 것을 String Interning 이라고 하는데 String Interning에 저장된 String 값은 불변성(Immutability)을 가지게 된다. 불변성을 가진다는 의미는 값은 변함이 없으며 동일한 String 값을 가지고 있다면 같은곳을 가리킨다는 의미다. (동일한 값이라면 동일한 참조) String Interning은 아래의 흐름으로 값을 찾는다. 1. String의 값이 String Constants Pool에 있는지 찾음 2. 있다면 바로 반환 3. 없다면.. 2022. 5. 19.
Call by value, Call by reference 차이 (자바에서의 Call by value, Call by reference) 함수 호출 방법은 크게 두가지가 있다. Call by value(값에 의한 호출) Call by reference(참조에 의한 호출) Call by value(값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다. Call by reference(참조에 의한 호출)는 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. 간단히 말해 값을 복사를 하여 처리를 하느냐, 아니면 직접 참조를 하느냐 차이다. Call by value(값에 의한 호출) 장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단점 : 복사를 하기 때문에 메모리가 사용량이 늘어난다. Call by reference(참조에 의한 호출) 장점 : 복사하지 않고 직접 참조를 하기에 빠르다. 단점 : 직접 참조를 .. 2022. 5. 19.
[자료구조] 자바 Queue add, offer 메소드 차이 큐에 데이터를 추가하거나 삭제, 검색할때 등 기능에 차이가 있는 것은 아니지만 문제 상황에서 예외를 throw 하는지,(add) null이나 false를 반환하는지(offer)의 차이가 있다. offer 큐에 요소를 추가하고 반환하는 잘못된 요소를 추가 할 수없는 경우(큐가 가득 찬 경우)에 특정 예외를 throw 하지 않는다. add 큐에 값을 추가 한 경우 true를 반환 하거나, 공간이없는 경우 IllegalStateException을 throw. 2022. 5. 17.
Java 클래스 메소드, 인스턴스 메소드 자바 메소드의 종류는 두 가지다. - 인스턴스 메소드 (비정적 메소드) - 클래스 메소드 (정적 메소드) 인스턴스 메소드 (비정적 메소드)는 static을 붙이지 않고 선언한 메소드. 해당 클래스형의 개별 인스턴스에 속한다. 클래스 메소드는 특정 인스턴스에 속하지 않는다. 그래서 클래스 메소드는 클래스 전체에 대한 처리 또는 클래스의 개별 인스턴스와 관계없는 처리를 할 때 사용한다. 2022. 5. 16.
728x90