Back-end/이것이 자바다[신용권 한빛미디어]

배열 타입

Ho's log 2021. 7. 25. 19:08

배열 변수 이미 선언한 후에 다른 실행문에서 중괄호를 사용한 배열 생성은 허용되지 않는다.

타입[] 변수;

변수 = {1,,3,2,3,4} -> 컴파일 에러 

변수 = new 타입[] {값1, 값2, 값,3 }

 

메소드의 매개값이 배열 일 경우에 new 연사자로 이용해 값을 전달해야 한다

int add(int[] scores){...}

int result = add(1,3,2,3,4}) -> X 컴파일 에러 

int result = add(new int[] {95,99,04});

타입[] 변수 = new 타입[길이] 가능

인덱스 초과해서 사용 -> ArratIndexOutOfBoundException


커맨드 라인 입력

public static void main(String[] args){...}

"java 클래스"프로그램 실행시 JVM은 길이가 0인 String 배열을 먼저 생성하고 Main() 메소드를 호출할 때 매개 값 전달 

 

String args = {};

public static void main(String[] args){}

 

"java 클래스" 뒤에 공백으로 구분된 문자열 목록을 주고 실행하면 문자열 목록으로 구성된 String[]배열이 생성되고 main() 메소드를 호출할 때 매개값으로 전달 

이클립스 매개값 주고 실행시 [Run -> Run Configurations] Main tab [Project] [Main class] 확인

[Arguments] 탭 클릭 [Program argument] 입력란 10 입력한후 빈칸을 띄우고 다시 20을 입력 [Run] 버튼 클릭 

Integer.ParseInt() 메소드를 이용해서 정수로 변환  

-> 변환할수 없는 문자열이 주어졌을 경우 NumberFormatException 실행 예외 발생 


배열 복사 

System.arraycopy() 메소드 사용 

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

src => 원본배열

srcPos => 시작할 인덱스

dest => 매개값 새배열,

destPos => 새배열에서 붙여넣을 시작 인덱스 

length => 복사할 갯수 

 

얕은 복사(shallow copy) : 참조하는 객체 동일 

깊은 복사(deep copy) : 객체를 별도로 생성하는것

https://suminpixel.tistory.com/15

 

 

'Back-end > 이것이 자바다[신용권 한빛미디어]' 카테고리의 다른 글

try-catch-finally  (0) 2021.08.18
열거 타입  (0) 2021.07.25
String 타입  (0) 2021.07.25
JVM 내부구조  (0) 2021.07.25
Java 연산자  (0) 2021.07.25