[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)..