[Java] 클래스 내부 구성 요소 3가지 (필드, 생성자, 메서드 + This)
·
Java/자바 이론
클래스의 필드, 생성자, 메서드에 대해 알아보자. 또한 클래스 내부에서 자신의 객체를 가리키는 this키워드와 자신의 다른 생성자를 호출하는 this() 메서드도 학습한다. 필드 ( Field ) 필드는 '클래스에 포함된 변수'로, 객체의 속성값을 지정할 수 있다. 지역 변수는 '메서드에 포함된 변수'다. 즉, 필드와 지역 변수는 어떤 중괄호 안에 선언됐는지에 따라 구분할 수 있다. (선언 위치가 중요하다.) 가장 큰 차이점은 생성되는 메모리의 위치다. 필드 = Heap 메모리의 객체 내부 지역 변수 = 스택 메모리 스택 메모리에 있는 변수는 JVM이 자동으로 삭제하지만, 힙 메모리의 객체 안에 저장되는 필드는 객체가 사라지지 않는 한 절대로 삭제되지 않는다. 1. 필드 - 외부에서 객체를 사용할 때 지..
[Java] String 객체 특징 ( ==와 equals의 차이점 )
·
Java/자바 이론
Stirng도 당연히 클래스이므로 클래스의 특징을 모두 지니고 있다. 하지만 워낙 자주 사용되다보니, 특별한 2가지의 특징이 있다. 1. 한 번 정의된 문자열은 변경할 수 없다. = 문자열의 내용을 변경하면 JVM은 수정하는 것이 아니라, 새로운 객체를 생성하고 기존의 객체를 버린다. 2. 문자열 리터럴을 바로 입력해 객체를 생성할 때 같은 문자열끼리 객체를 공유한다. ( => 메모리의 효율성 ) s1, s2처럼 String 객체를 생성하면,먼저 String pool에 같은 값이 있는지 확인한다. 만약 있다면 그 주소값을 리턴하고 없다면 새로운 객체를 만들어 String pool에 할당한 뒤 그 주소값을 리턴한다. s3처럼 new로 객체를 생성하면, 다른 객체들처럼 강제로 Heap 영역에 생성하고 그 주..
[Java] 자바 메모리 영역 Static, Stack, Heap
·
Java/자바 이론
프로그램이 실행되면 JVM은 OS로부터 메모리를 할당받고 그 메모리를 목적에 따라서 여러 영역으로 나누어 관리한다. 1. Static 영역 (Method Area, Class Area, Code Area라고도 불린다.) Java 파일은 크게 필드(field), 생성자(constructor), 메서드(method)로 구성되어 있는데 Static 영역은 그 중 필드 부분에서 선언된 전역변수와 정적 맴버 변수(static 으로 선언되는 것)들의 데이터를 메모리에 상주시킨다. ● 정적 맴버 변수 = Static 변수와 Static 메서드가 합쳐진 것 (=클래스 멤버) ● 객체에 소속된 맴버가 아닌 클래스에 고정된 맴버다. ● 클래스 정보(맴버변수의 이름), static변수, 변수 정보(데이터타입, 접근제어자정보..
[Java] 별 찍기 예제 (중첩 for문)
·
Java/코딩테스트 연습 & 실습
중첩 for문을 이용한 Java 별찍기 예제입니다. 1. 평범한 사각형 별 찍기 for(int i = 0 ; i i)..