Programming/Java
-
Java의 ==, equals 연산자를 통한 문자열 비교Programming/Java 2022. 2. 27. 10:39
Stack 영역 - 함수 호출 시 각각이 Call stack에 쌓이며 함수 내에서의 변수와 포인터 등이 저장되는 영역으로, 함수 종료 시 다같이 해제되며 사라진다. Heap 영역 - 할당되어 사용되는 것들이 메모리에 쌓이는 영역으로, 프로그래머가 할당/해제 관리한다. - C계열에서는 잘 관리하는 것이 필요하고, Java에서는 참조가 끊어진 할당 객체들이 쌓이면 Garbage Collector가 동작하여 수거하고 메모리 해제를 해준다. Constant Pool - Method Area(클래스 파일 정보 저장 위치)에 속하고, 상수 자료형을 저장해두고, 동일한 값의 중복을 막아 메모리 낭비를 방지한다. - 즉, 이미 있는 값이 들어오면 새로 만들지 않고 먼저 들어있던 같은 값의 주소를 같이 참조하게 한다. ..
-
JVM 구조Programming/Java 2022. 2. 19. 20:55
JRE는 자바 클래스 라이브러리(Java API)와 JVM으로 구성된다. JVM의 역할은 자바 어플리케이션을 클래스 로더(Class Loader)를 통해 읽어 들여서 Java API와 함께 실행하는 것이다. "Write Once Run Anywhere"를 구현하기 위해 JVM은 사용자 언어인 자바와 기계어 사이의 중간 언어인 자바 바이트코드를 사용한다. 이 자바 바이트코드가 자바 코드를 배포하는 가장 작은 단위이다. JVM은 자바 바이트코드를 실행하는 실행기이다. 자바 컴파일러는 C/C++ 등의 컴파일러처럼 고수준 언어 → 직접적인 CPU 명령인 기계어로 바로 변환하는 것이 아니라, 개발자가 이해하는 자바 언어 → JVM이 이해하는 자바 바이트코드로 우선 변환한다. 자바 바이트코드는 플랫폼 의존적이지 않..
-
Java 활용 포켓몬 게임Programming/Java 2022. 1. 30. 22:27
*Tistory에 내용을 통합하기 위해 velog에 작성했던 내용을 첨부하였음 https://velog.io/@fordevelop/Java-%ED%99%9C%EC%9A%A9-%ED%8F%AC%EC%BC%93%EB%AA%AC-%EA%B2%8C%EC%9E%84 Java 활용 포켓몬 게임 자바의 내용인 상속과 인터페이스, 추상 클래스, 자바 컬렉션의 ArrayList, 싱글톤 패턴, GUI를 하나의 프로그램에 담아 다시 한번 개념을 정리하고 적용하기 위해 포켓몬 게임을 구현하였다. velog.io
-
[Java] 예외(Exception)Programming/Java 2021. 5. 19. 03:03
예외 클래스 Error와 Exception은 모두 Throwable 클래스를 상속받음 위의 그림을 통해 Exception 2가지 종류에 대해 알 수 있음 1. Checked Exception -> 일반(컴파일 체크) 예외 예외 처리 코드가 없으면 컴파일 오류 발생 예외 확인 시점 : 컴파일 단계 2. Unchecked Exception -> 실행 예외 예외처리 코드 생략해도 컴파일 됨 예외 확인 시점 : 실행 단계 RuntimeException 클래스의 하위 클래스들 예외 처리 1. Checked Exception 1-1. 예외 처리 전 import java.io.FileReader; public class CheckedException { public static void main(String[] ar..