■자료구조 : 데이터 관리하고 저장하는 것. 의미 없던 데이터를 자료구조를 통과하면 하나의 정보가 됨. ArrayList : 여러 개 데이터가 들어올 때, index로 데이터 관리할 때 사용 Set : 집합 - 구현 클래스 HashSet 집합에서는 중복되는 원소를 포함할 수 없는 것처럼 HashSet이라는 자료구조는 중복되는 값을 무시한다. 저장된 값들은 인덱스가 없기 때문에 순서가 없다. 값의 유무 검사에 특화되어 있는 자료구조이고 해쉬코드로 유무 검사가 진행되고 속도가 상대적으로 좋다. 순서가 없어서 값을 가져올 수가 없음. 검사에 적합한 자료구조, contains() 특화, DBMS에서는 검색, 조회 빨라야 함 - 순서 부여 : iterator() 순서가 없는 객체에 순서를 부여하거나, 순서가 있어..
■Object클래스 1.toString() 2.equals() 3.hashCode() JVM에서 관리하는 중복없는 값. 실제 메모리에 할당되는 주소와 다르다. String 클래스에서는 필드의 해쉬코드값이 아닌 필드 안에 있는 문자열 상수값의 해쉬코드값을 리턴하도록 재정의하였다. ※ 컬렉션 프레임워크 챕터에서 재정의 목적을 이해하도록 한다. (해쉬코드) 메모리 관리를 JVM이 해줌. 필드 > JVM(에 할당할 때 갖는 필드의 고유한 값을 hashCode) > hashCode값이 메모리에 올라가면 주소값 메모리까지 가기전의 주소 실제 주소가 부여되기 이전의 주소 메모리에 올리기 전에 준비할 때 쓰는 주소 자바 자체적으로 만들어 놓은 중복없는 값 hashCode가 부여가 됐으면 거기에 맞게끔 실제 메모리에 할..

■ Day1~10 총정리 출력 메소드 : 오류 구체화 변수 : 저장공간 자료형 : int(4byte), float(4byte), double(8byte), char(2), String(?), boolean(1) 1byte가 정보의 최소단위 형변환 : 문자+정수 = 정수 입력 메소드 연산자 : 최단삼쉬관리삼대, 결합성 제어문 : 조건문, 반복문(for : 반복 횟수를 알 때, while : 반복 횟수를 모를 때) 배열 : 저장공간의 나열, 시작 주소, 인덱스 0부터 시작? 배열은 시작 주소를 가지고 있으니까 [], 1. 여러 칸 만들기, 2.규칙성 부여 메소드 : 이름(), 저장공간(소스코드의 주소값), 매개변수?화면에서 입력받은 값을 전달받는 공간 클래스 : 반, 한 번씩만 선언하기 위해서, 재사용, 1..
■ 추상 클래스 설명 클래스가 추상적이라는 말이 아님 원래 모든 클래스가 추상적임 클래스 안에 선언한 필드 중에서 추상적인 개념이 있다는 뜻 추상 메소드를 선언할 수 있는 클래스 클래스 선언하면 그 안에 필드가 구현이 안되어있는 메소드 >> 추상 메소드 >> {}가 없다는 뜻 메소드를 선언할 때 구현이 되어 있으면 {} {}가 비어있어도 구현된 것 실무에서는 {}를 '바디'라고 칭함 반드시 재정의해야 하는 메소드는 추상 메소드 상속받으면 무조건 오류 >> 재정의하라고 강제성 부여 ■ 추상 클래스 필드 안에 구현이 안 된 메소드(바디가 없음)가 선언되어 있는 클래스를 추상클래스라고 한다. 이 때 구현되지 않은 메소드를 추상 메소드라고 부른다. 반드시 재정의를 통해 구현을 해야지만 메모리에 할당되기 때문에 ..
Bank

AM 전체 인원 복습한 거 훑기 내가 뭘 배웠고 어디가 부족한지 기록하기 ■ review 클래스는 대문자로 시작! 주어이기 때문에 클래스 안에 변수, 메소드 선언 > 내용들을 '필드' 한번만 선언 > 앞으로 여러번 사용하겠다(재사용) 하드웨어 중 메모리가 기억해야 사용할 수 있음 ★생성자가 해당 필드를 메모리에 할당해주고, 그 주소값을 가져옴 생성자 != 메소드 리턴값이 주소값이기 때문에 리턴기능 제외하고 메소드와 기능 동일 매개변수를 받아와서 초기화 가능 클래스는 하나만 선언, 클래스에 접근하는 객체가 여러개 클래스를 선언하면 자동으로 this 키워드 생김 this. ; 주소값 > 메소드에 접근한 객체가 가지고 있는 필드의 주소 클래스는 추상적임 > 추상적인 개념을 가지고 필드에 접근하는 건 쉽지 않음..
클래스 복습(class : Animal, Quiz, ClassArray, RandomTest, Zoo) 변수에는 값이 담김 객체에는 주소값이 담김 기본생성자 ■public 클래스명() {;} ; 쓰는 이유 : 개발자들끼리 약속, 외국에서 자주 사용 나 일부러 비워놓은 거야,라는 뜻 ■여러 개의 데이터를 전달할 때 값에 의미를 부여할 필요가 없으면 배열 사용 값에 의미를 부여할 필요가 있으면 클래스 사용 ■확률 10단위 10, 20, 30, ... 1단위 1, 2, 3, ... 0.1단위 0.1, 0.2, 0.3, ... 0.01단위 0.01, 0.02, 0.03, ... 확률이 10단위라면 10칸 배열을, 1단위라면 100칸 배열을 선언한다. int배열로 선언한 뒤 사용자가 원하는 확률만큼 1로 값을 바..
주소에 접근하는 게 대괄호(배열) 주소를 쓰는 이유 : 영역의 구분 없이 다른 영역의 값을 수정할 때 사용 자바에서는 주소의 접근에 대한 연산자 자체가 없음 c언어에서는 직접 주소에 접근하는 연산자가 있음 하드웨어 접근 가능, 개발자를 100% 믿음 -> 핵, 크낵, 버그만들 때 사용 ■클래스(반) 공통 요소를 한 번만 선언해 놓고 가져다 사용만 하도록 설계한다. 1.타입이다 클래스 안에 선언된 변수와 메소드를 사용하고 싶다면, 해당 클래스 타입으로 변수를 선언해야 한다. 2.주어이다 Monkey.eat("바나나"); 주어 동사 목적어 대문자로 시작하는 이유 : 모든 문장 앞에서 실행하기 때문에 ■클래스에 선언된 것 > 필드(멤버)라고 부름 클래스 안에 필드가 메모리(하드웨어)에 올라가야 접근할 수 있음..
■문자 정수 연산하면 정수값! 자동으로 연산됨 'a' > 64 가능 ■전역변수 지역변수 - 해당 중괄호가 끝나면 바로 메모리에서 해제됨, 메모리 절약 ■문자열 초기화 - 목적에 따라 자유자재로 쓸 수 있어야 한다 null : 대입을 할 때 "" : 누적 연결을 할 때(+=) result += (char)(c + 32); result = result + (char)(c+32); 문자열 = 문자 + 문자열 자료형 공부하기 -------------------------------------- ■2차원 배열 : 배열 안에 배열 1차원 배열을 여러 개 선언할 때 관리하기 힘들기 때문에 2차원 배열을 한 번 선언한다. ※ 2차원 이상의 배열은 메모리 낭비가 심하므로 선호하지 않는다. 실무에서 거의 안씀, 메모리 낭..