Java

· Java
JVM 메모리 구조 Java 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. Method 영역 : Runtime 중 특정 Class가 사용되면, JVM은 해당 Class의 .class파일을 읽고 분석한 결과(클래스에 대한 정보)를 이 곳에 저장한다. 참고) Class variable도 같이 저장된다. Heap 영역 : instance가 생성되는 공간이다. Runtime 중 instance는 모두 이곳에 생성된다. 참고) 즉, instance variable이 생성되는 공간이다. 콜 스택(Call Stack) : 메서드 작업에 필요한 메모리 공간을 제공한다. 메서드 호출 → 콜 스택(stack)에 메서..
· Java
알고리즘 스터디 내 팀원분께서 System.out.println을 사용하지 않고, StringBuilder만을 사용하는 것을 보았다. 여쭈어보니, 본인에게 익숙해서 라는 답변을 들을 수 있었다. 개인적으로 무슨 차이가 있을까라는 생각으로 아래 학습한 내용을 작성한다. System.out.println 왜 줄여야 하지?? 인터넷에 나와있는 것을 그대로 보는 것도 좋겠지만, 직접 눈으로 확인하면 더 기억에 잘 남게 된다. 코드를 까보는 데에 익숙하지는 않지만, 이것 또한 내가 추구하는 가치를 알릴 밑거름으로 나를 성장시켜줄 것이다. 두렵지만 코드를 까보도록 하자 synchronized 라는 것이 보인다. 찾아보니 이건 동기화를 의미한다고 한다. 동기화란??: 공유 데이터를 작업 중인 스레드가 마칠 때까지 다..
· Java
체크예외와 언체크 예외 체크 예외 : 컴파일러가 예외를 잡았는지 체크할 수 있는 예외처리를 뜻한다. := 컴파일러가 체크하는 체크 예외 → 예외를 잡아서 처리하지 않으면, 무조건 throws에 던지는 예외를 선언해야 한다. 언체크 예외 : 컴파일러가 예외를 잡았는지 안잡았는지 체크하지 않는 예외처리를 뜻한다. → 예외를 잡아서 처리하지 않아도 throws를 생략할 수 있다. 예외 기본적인 계층 구조 Throwable: 최상위 예외 객체이다. Exception: 체크 예외 애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외 컴파일러가 체크하는 체크 예외이다. (단, RuntimeException은 런타임 예외(=언체크 예외)) Error: 언체크 예외 메모리 부족이나 심각한 시스템 오류처럼 애플리케..
· Java
아래 내용들은 "점프 투 자바" 내용을 기반으로 작성되었으며, 중간중간 내 생각을 더하면서 수정했다. 앞으로 이런 참고 내용들은 글 맨 아래 "참고"에 게시하겠다. Java의 역사 Java는 썬 마이크로 시스템즈의 제임스 고슬링 (James Gosling)과 다른 연구원들이 개발한 “객체 지향적 프로그래밍 언어”로써 1995년에 발표되었다. 처음에는 가전제품 내에 탑재된 소프트웨어를 실행시키기 위해 개발했었지만, 현재는 웹 애플리케이션과 모바일 앱 개발에 가장 많이 사용하는 언어로 성장했다. 자바의 정의 Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-p..
· Java
equals 왜 override를 해야하는거지?? 예를 들어, 위와 같은 Student 클래스가 있다고 가정하자. 이전의 나는 '에이 무조건 true만 출력되지~' 였다. 하지만 출력 했을 시 아래와 같은 콘솔창을 만날 수 있다.. 와 이게 뭐지?!?!?! 조사해보니 studentYoon 변수와 studentMoon 변수는 각각 다른 객체를 초기화해서 Heap Memory 영역에 따로 저장해두고 있다. 각 변수가 저장되는 메모리 영역에 대해 조금 알고 싶으면 아래 게시글을 참고하길 바란다. JVM (Java Virtual Machine) JVM 메모리 구조 Java 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, 이 메모리를 용도에 따라 여러 영역으로 나누..
WolrdOtaku
'Java' 카테고리의 글 목록