

-> 나눠지지 않으면 그대로 나옴
(다른방법 접근)




-> 특정 범위값이 나옴

(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를 출력할 수 있는 형태로 자동으로 만들어주는 기능