1. 배열 변수 선언(어떤 타입이고, 어떤 변수명으로 할지)
- 데이터타입 [] 배열 변수명;
- 데이터 타입 배열 변수명[...];
ex) int array[]; 또는 int[] array; //선언만 하므로 개수는 들어가지 않음
2. 배열 변수 생성(memory에 할당)
- array = new int[3]; // 앞에 선언된 array 타입과 생성할 타입이 같아야 한다.
- new :memory에 int data 3개를 저장할 array를 만들것이다.
- int 형은 초기값 0
- index는 0이상, array.length 미만
-String names[] = new String[5]; //로 선언과 동시에 생성이 가능하다.
3. 배열 변수 초기화
-array[0] = 100; array[1] = 3;
-String names[] = { "김씨" , "이씨", "최씨", "박씨", "유씨"}; //배열 선언 + 생성 + 초기화
4. 예제
- Java는 max값이 없다. => for문으로 구해야 함
- main옆 args는 사용자가 입력하는 변수를 저장하는 것. 내가 입력하는 dat의 개수에 따라 사이즈가 달라진다.
- java ArrayTest -- >(자동) args = new String[0]
ex) java ArrayTest.java 프로그래밍 과목 테스트 -->(자동) args = new String[4];
args[0] = "java",args[0] = "java",args[1] = "프로그래밍",args[2] = "과목",args[3] = "테스트"
-> run 메뉴 -> run config~ -> main class가 같은지 확인 후 arguments 들어가서 입력변수 넣기
5. + 연산
1) 정수/ 실수 + 정수/실수 => 덧셈
2) 문자열 + 정수/실수 or 문자열 => 문자 연결합
3) args는 string 값으로 입력받으므로, 만약 int형으로 바꾸려면 Integer패키지의 parseInt라이브러리로 int 형으로 데이터를 바꾼다.
package second;
public class MainTest {
public static void main(String[] args) {
System.out.println(args[0] + args[1]); //출력값 :1020
int first = Integer.parseInt(args[0]); // 첫번째 입력값을 int 형으로 바꿈
int second = Integer.parseInt(args[1]); // 첫번째 입력값을 int 형으로 바꿈
System.out.println(first + second ); // 출력값:30
}
}
6. 객체 지향 방식
- 객체 : object, 현실 세계에서 표현할 수 있는 모든 명사
1) 객체의 특성을 파악하기
2) 클래스 생성하기
- 정적인 특성은 변수로, 동적인 특성은 메소드로 저장
[modifier]
class 이름
[extends 클래스명][implements 인터페이스명] {
[modifier] 데이터 타입 변수명 = 값;
[modifier] 메소드명 = 동적
[modifier] 생성자명 = ();
}
7. Modifier(접근자, 제한자, 한정자)
- 해당 요소를 활용 방법이나 접근 제한을 나타내는 java keyword
역할 | modifier | 클래스 | 변수 | 메소드 | 생성자 |
접근 제한 | public | O | O | O | O |
protected | X | O | O | O | |
private | X | O | O | O | |
활용 방법 | static | X | O | O | X |
final | O | O | O | X | |
abstract | O | X | O | X |
8. 데이터 타입
기본 데이터 타입 | 참조 데이터 타입 |
char boolean int,byte,short,long double,float => 8가지 |
String : 문자열(길이를 정할 수 없음) 배열 내가 정의한 클래스 |
자바에서 미리 정의한 타입들 / 길이도 정해짐 stack 영역에 저장하는 값이 실제값 |
stack 영역에 저장하는 값이 주소값(실제 data는 heap에 있음) |
- 자바 프로그래밍에서 변수값을 메모리에 저장하는 법
클래스 영역 (= 메소드 영역) |
stack(순서가 있다. 기본 타입 변수를 저장) | heap(참조형 데이터 저장, 길이를 예측할 수 없는 것들) |
메소드나 문장을 저장하는 영역 | 변수를 저장하는 영역 | 변수를 저장하는 영역 |
s(4byte) : 100(주소 값) -> 200(주소값) i(4byte) : 10 -> 20 d(8byte) " 3.14 -> 4.14 |
100번지 : java 200번지 : Spring |
ex) int i = 10; --> stack에 i 4byte 저장
String s = "java"; --> stack에 4byte "주소 값"저장
double d = 3.14; --> stack에 8 byte 저장
i = i + i;
d = d +1;
s = "Spring";
<< 정리 >>
-> 참조 데이터: heap영역에 데이터를 저장.
기본 데이터: stack영역에 저장
-> 사용하지 않은 메모리 영역을 자동으로 삭제 => 'garbage collection'
-> 메모리 영역에 데이터를 저장할 주소도 자동으로 지정해줌
->stack은 모든 변수를 저장한다. 하지만 기본 데이터의 경우 stack에 "실제 값"이 들어가는 것이고, 참조 데이터는 stack에 "주소값"이 들어간다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java 4일차] 생성자 (0) | 2020.07.22 |
---|---|
[Java 1일차]Java 기본 & 설치 (0) | 2020.07.17 |