-> 나눠지지 않으면 그대로 나옴
(다른방법 접근)
-> 특정 범위값이 나옴
(if)
(if가 없을때)
-> 0,1,2를 3으로 나누면 몫 0
(금요일 공통점)
-> 7의 배수(나머지가 0이 나옴)
(토요일 공통점)
-> 나머지 1
★ 찾으려고 하는 노력이 있어야함(메모, 펜)-> 적어놓고 찾기!
★ 공통점 찾기
-> 복합연산자 먼저 (day에다가 10 더하기)
->배열이 떠오른다면 switch 필요없음
: F(대문자)-> f(소문자)
(ex) 소문자 -> 대문자 : -32
대문자 : 65~90 사이의 값 , 소문자 : 97~ 122 사이의 값
-> 뭐가 들어갈 지 모르는 상황 : 검사부터 하기
변수가 다르면 원래 이름이 다르지만, 이름을 하나의 이름으로 통일
일반변수는 int n 하면 쓸 수 있었음
배열은 1. 선언 하고 2. 만드는 2가지 과정이 필요함
-> int만 저장할 수 있는 타입
2) int 배열명[] : c언어 계열에서 나온 것
-> 공통점 : 값이 없다
a라는 이름의 변수가 5개 생김
-> 첫번째 배열 요소
5개의 int값이 0으로 나오는지 확인하기!
-> 배열의 인덱스 범위 벗어났음
-> 배열의 선언과 생성을 한번에 처리할때) 문장을 모아서
-> for문 연속된 숫자를 반복하는 반복문
배열에 저장되는 갯수 '5'이면 i<'5'랑 같다
-> length를 동일한 숫자가 들어가야 하는 자리에 변수로 맞춰줌
-> 인덱스의 시작은 0(int i = 0) 바꾸면 안됨
대괄호[] =bracket
변수에 저장해놓고 쓸수도 있지만, 배열명.length로 알아낼 수도 있음
*for문 되는 이유?
1. 이름이 같음
2. 인덱스 값 숫자가 달라서
(이름이 다르니까 for문 돌릴 수 없음)
-> 이름은 동일하게 하고 숫자는 for문으로 만들면 됨
-> 실제 사용시) 순차적으로 접근할 수 있게끔
-> 배열 생성시) 배열의 길이가 얼마인지 담겨있음 : 필드(field)
-> 필드값 : 5
★ 개발자 암묵적 약속임
- 인덱스의 변수이름은 i부터 시작한다
-> 인덱스가 아니면 i이름은 가급적 쓰지 않는것이 좋다
-> i를 못쓰는 상황 j를 쓴다
-> 최초 배열을 선언할때만 사용가능
-> 값을 안바꿀 때 초기화 많이 함
-> 목요일은 6(default값)
-> case 0 :인덱스
-> case 0 : 금요일
-> 24일이 만들어진 상태
-> 나머지가 0이 나오면 : 금요일
day % 7 인덱스로 쓰기
★ 숫자를 0부터 만들어내려는 것 : 배열때문인 경우가 많음
-> 배열자체가 분기문을 없애줘서 편하게 쓸 수 있음
-> 봄,여름,가을,겨울도 index로 지정해서 풀 수 있음
int : 기본타입(primitive type)
int []: 참조타입(reference type) - 주소를 저장
-> 배열은 따로따로 있지 않고 순서대로 모여있음(for문 ,인덱스 사용할 수 있는 이유)
int 방하나 : 4byte
숫자 차이 4씩 차이남
-> 연속된 공간을 사용함
-> 첫번째 요소 위치를 알면 모든 요소의 위치를 알 수 있음
-> @ : at(~에 있는)
-> 메모리 참조값 나옴 (3d012ddd) -> d포함(16진수라는 뜻임)
16진수 : 숫자 10 + 알파벳 6개(abcdef)
★ 2진법, 16진법 공부해두기!
-> 오류 남(생성을 안해서- 길이를 안알려줘서)
->원래는 a것인데 b가 사용할 수 있게 됨
-> new : 메모리 공간 확보해라
-> 메모리 풀어주지 않으면 컴퓨터가 느려짐
(new -> delete라는 명령으로 해제도 시켜줘야함)
-> 없애는 건 자바가 알아서 함(만드는 것만 함)
-> 메모리 못 쓰는 것 : 메모리누수
->배열의 길이를 늘릴 수 없음(구조적으로는)
-> 새로만들어야 함 (원래 있던 것 다시 옮기기)
: 3개짜리 -> 5개짜리로 이동
-> for로 해보기
자바가 해주는 기능을 가지고 있음
system 클래스 (첫 문자 대문자)
-> a배열의 모든 것을 b로 복사
object src 기존배열
object pos 인덱스 0부터
목적지
ctrl 키 + 클릭 : arrycopy가 어떻게 만들었는지 소스 보여줌
(시스템 class안에 있는 기능을 불러온것)
-> a인덱스 0부터 3개만 보내면 됨
-> a배열 다 보내는 것 (목적)
-> 새메모리 공간 5개 만드시오
-> 아직 a는 3개, b는 5개
-> 배열 a가 5개로 늘은 것
->1번지에 가면 데이터가 3개 있다는 정보를 모른다
-> 아무도 모르는 "메모리 누수"영역이 됨
1번지에 데이터 3개 있었는데 a가 참조한 값이 2번지로 바뀜
new로 잡음 , 초기화로 해도 내부에서 new로 잡음
a = b; 전에 a 반납하고
garbage collector 가 혼자 돌음 -> 다른 프로그램들도 3개의 공간 사용할 수 있도록 풀어줌
System.gc() - garbage collector 개발자가 직접 부르겠다
->부른다고 오지는 않고 재촉하는 개념(실행순서를 높여줌)
-> 배열의 주소가 나옴
-> 배열 a를 출력할 수 있는 형태로 자동으로 만들어주는 기능