1. 함수란?
= 파라미터에 값을 넣으면 함수 안에 있는 조건식이 동작을 하여 결과를 보여준다.
ex) public static int 함수명(int x, int y) // 파라미터
{
c = a+b;
return c;
}
함수명(2,3); //함수호출! -> 결과 : 5
2. 지역변수, 전역변수
1) 지역변수 : 함수 안에서만 사용가능함
-> 파라미터 , 선언 초기화한 변수
2) 전역변수 : 함수 밖에 위치하며 어느 함수든 타입형식을 지정하지 않아도 사용가능함
-> 객체, 클래스 소속 변수
3. 메모리 구조 (메소드, 힙, 스택)
- 모든 자바는 JVM(자바 가상 머신)으로 진행된다.
- 자바를 실행시키면 JVM은 운영체제로 부터 프로그램에 필요한 메모리를 할당받는다.
1) 메소드 영역 (가장 높음)
- 클래스의 정보와 클래스 변수가 저장된다.
- 클래스 파일(*.CLASS)을 읽어 해당 클래스의 정보를 저장한다.
2) 힙 영역
- 자바에서 사용하는 인스턴스 정보가 저장된다
- NEW로 생성하면 인스턴스가 된다.
- 해당 인스턴스의 정보를 힙에 저장한다.
3) 스택 영역
- 메소드가 호출될 떄 형성된다.
- 지역변수와 매개변수를 저장한다.
- 메소드 호출시 사용되며 메소드 호출이 완료되면 소멸된다.
- 푸쉬로 데이터를 저장하고 팝으로 데이터를 인출한다.
-> 후입선출로 늦게 들어온 메모리가 가장 빨리 인출한다.
- 메모리가 높은 주소에서 낮은 주소로 할당된다.
4. 배열 (1차, 다차원 배열)
= 한 부대씩 움직이게 하기 / 0번 부대부터 유한한 숫자까지 존재한다.
-> 한 부대씩 움직여야해서 외벽은 반복문으로 주로 사용하며 내부에는 제어문으로 행동을 제어한다.
ex) 1. int[] 배열명 = new int[인덱스];
2. 배열명 = new int[인덱스];
ex) int[] array = new int[5];
int[] array1 = new int[5];
array[1] = 80;
array[2] = 81;
array[3] = 82;
array[4] = 83;
array1[0] = 85;
for(int i=0; i<array.length; i++){
System.out.println(array[i]+""); // 결과값 = 0,81,82,83
}
for(int i=0; i<array1.length; i++){
System.out.println(array1[i]+""); // 결과값 = 85,0,0,0,0
}
5. 배열 초기화
= 변수 유닛처럼 선언과 동시에 공격력 정할 수 있다
ex) 1. int[] 배열명 = {배열요소1, 배열요소2 ....}
2. int[] 배열명 = new int[]{배열요소1, 배열요소2 ....}
ex) 1) int[] array = {70,80,90};
2) int[] array1 = new int[]{70,80,90};
for(int i=0; i<array.length; i++){
System.out.println(array[i]+"");
}
for(int i=0; i<array1.length; i++){
System.out.println(array1[i]+"");
}
6. 다차원 배열
= 2차원 이상의 배열을 의미하며 한 줄이 아닌 여러 줄의 부대를 이끌 수 있다.
-> 한 줄 씩 늘어날떄마다 for 반복문도 추가가 된다.
1) 2차원 배열
ex) int[][] arr = new int[2][3];
int k=10;
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr.length; j++){
arr[i][j] = k;
k += 10;
System.out.println(arr[i][j]+"");
}
}
2) 선언과 동시에 초기화
ex) int arr = { {10,20,30} {40,50,60} };
3) 가변적 배열
ex) int arr = { {10} {20,30,40} {50,60} }
-> 배열 길이를 자유롭게 설정한다.
'자바 이야기' 카테고리의 다른 글
DB 연동방식 (0) | 2020.07.30 |
---|---|
자바 이야기 6. 메소드의 활용 (0) | 2020.05.12 |
자바 이야기 2. 내 맘대로 조종하기 / 귀찮은거 반복하게 하기 (0) | 2020.02.24 |
출력 메소드 (0) | 2020.02.19 |
자바 이야기 0. 유닛 타입 만들기 (0) | 2020.02.19 |