빅데이터 교육과정 (2021-01-25 ~ 2021-06-24)/JAVA (01-28 ~)
6일차 2021.02.01.월 JAVA
hwangpro
2021. 2. 2. 01:30
1.29 금 수업 복습
* 제어문
* if문
* switch문
* 반복문 (무한루프 신경써야됨)
* for문
* while문
* do ~ while문
* for each문
2.1.월
배열: array
동일한 데이터타입을 메모리상에 순차적으로 확보.
장점: 일괄처리.
단점: 메모리 추가, 삭제 힘들다.
처음부터 여유있게 잡아서 쓰자. 나중에 모자란 것보다 남는게 남.
int a,b,c;
선언
DataType [ ](첨자) 레퍼런스이름; // int []arr;
arr = new int [ 3 ];
배열을 쓸 때는 레퍼런스 변수가 필요하고, 레퍼런스 변수를 실제로 잡아야 한다.
= new 처럼
용어 avg=average
--------------------------------------------------------------------------------------------
반복문을 이용해서 배열을 하는 이유 : 일괄처리가 가능하기 때문에
oveflow 오류 발생하면 *(실제 접근하고 있는 레퍼런스).length*를 써라
[ 형변환(Casting) ]
1.자동형변환 *알아서 해주는 것! ( 서로 다른 타입을 연산할 때 발생. )
: 작은 타입이 큰 타입으로 바뀌어서 연산.
3 + 4
3 + 4.1(double로 인식) -> ( int(3) + double(4.1) ) => 3.0 + 4.1 = 7.1 ( 모두 타입이 double )
2.강제형변환 * ( 같은 타입을 연산할 때 개발자가 필요에 의해 처리 )
int a = 3;
int b = 4;
3/4 (double)a/(double)b; -> 바꾸고 싶은 타입을 써서 명시.(앞에선 float, double 중에 선택) 연산할 때만! 잠시 바뀌는 것. 데이터가 바뀌는 건 아니다.
1차원배열 [ 요소의 개수 ]
2차원배열 [ 행의 개수 ] [ 열의 개수 ]
int [][] arr2;
arr2 = new int[2][2];
3차원배열.. [ 면의 개수 ] [ 행의 개수 ] [ 열의 개수 ]
(예제) int[][][]arr3 = new int[2][3][2];
[ for each문 ]
for(int data:arr) { // data를 찍은 이유 : 하나씩 하나씩 꺼내오기 때문에
System.out.println(data); }
문자열 String Class는 데이터를 바꿀 수 없다. 객체를 바꾸는 것.
equals 알아두기.
String []str = new String[3]; -> 객체를 3개 만든 게 아니라 레퍼런스를 3개 만든 것.
[] 첨자
**중요 문법**
1. String []str = new String[3]; (**객체) -> new String에 소괄호가 없다. 객체 새로 안 만든 것. 소괄호 유무로 확인!
내가 객체를 배열로 만들고 싶다면 내가 쓰고 싶은 만큼의 레퍼런스가 필요하다.
레퍼런스 배열을 먼저 만들어놓고 객체한테 주렁주렁 열매 맺듯이 일괄처리를 하는 것.
2. str[0] = new String("Superman"); -> 이렇게 소괄호가 ( ) 있어야 객체가 새로 만들어진 것.
실행하고 있는 중에 쓰는 메모리 = 동적메모리
name = new String[num];
score = new int[num][4];
avg = new float[num];
method : 자기자신의 특정기능을 수행.
사용자정의 method
1. instance method
2. static method
모듈화 (기능대로 나누겠다.)
1. call by name - 호출 값. ( 주고 받는 게 없음. 각자 자기 역할이 확실함. 문제가 생겼을 때 확실함. 대신 기능적으로 확장성이 떨어진다. 그래서 다른 거랑 같이 씀. )
2. call by value - 값을 주고 받으면서 무언가를 준다. / * 직접 접근할 수 없다.
3. call by reference - 값의 위치를 알려줌으로서 무언가를 준다. / * 직접 접근할 수 있다.