자바 2일차

원종서·2023년 3월 7일
0

기본타입 : 저장되는 값: 값자체
참조타입 : 저장되는 값: 메모리 주소

  • 변수들은 모두 스택이라는 메모리 영역에 생성.
  • 참조타입 변수는 힙 메모리 영역의 객체 번지를 저장.

메모리 사용 영역

메소드 영역

  • 바이트코드 파일의 내용이 저장되는 영역.

힙 영역

  • 객체가 생성되는 영역: 객체의 번지는 메서드 영역과 상수 영역의 상수와 변수에서 참조 할 수 있음.

스택 영역

  • 메서드를 호출할 때 마다 생성되는 프레임이 저장되는 영역. 메서드 호출이 끝나면 프레임은 자동제거. 프레임 내부에는 로컬 변수 스택이 있음(기본 타입 변수와 참조 타입 변수가 생성되고 제거됨)

String

자바는 문자열 리터럴이 동일하다면 String 객체 (힙 영역의) 를 공유함.
단 new 연산자를 이용하여 String객체를 생성하면 공유한다고 장담하지 못함

String name1= "name"; -> 0x00001
String name2= "name"; -> 0x00001

name1 == name2 ; //  true

String name3= "newName" -> 0x0002
String name4 = new String("newName") ; -> != 0x0002

name3 == name4 ; // false

String methods
char charAt(int index);
int length()
String replace(oldString, replaceString)
String substring(int beginIndex, [int endIndex]);
int indexOf(findString);
boolean contains(findString)
String[] split(splitString)

배열

  1. 배열 복사

String[] oldStrArr = {"java", "array", "copy"};
String[] newStrArr = new String[5];

// System.arrayCopy(원본배열 , 원본 배열 복사 시작 인덱스, 새 배열, 새 배열 붙여넣기 인덱스, 복사 항목 수)
System.arrayCopy(oldStrArr, 0, newStrArr, 0 , oldStrArr.length);

// 190

0개의 댓글