프로세스 : 실행중인 메모리를 의미 필요한 메모리를 할당받아서 프로그램이 프로세스가 된다쓰레드 : 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것멀티쓰레드와 싱글 쓰레드로 나뉘어져 있다.\-> 하나의 프로세스가 가질 수 있는 쓰레드의 갯수는 제한되어 있지 않다.쉽
메서드를 하나의 식으로 표현한 것람다식은 메서드의 매개변수로 전달되어지는 것이 가능하고, 메서드의 결과로 반환될 수도 있다.기본적인 작성법은 교재를 참고한다.람다식을 담을수 있는 참조변수는 클래스 또는 인터페이스이어야 하며 람다식과 동등한 메서드가 정의 되어 있어야 한
다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능== 다룰 객체의 타입을 미리 명시해줌으로써 번거롸운 형변환을 줄인다.지네릭 클래스로 변경하려면 클래스 옆에 <T.>를 붙인다.위 아래 코드 같은 내용이지만 아래는 지네릭 클
서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 떄 사용열거형은 타입이 다르면 에러가 뜨게 된다.위 그림을 참고하면 쉽게 알수가 있다.enum 열거형 이름 { 상수명1, 상수명2, ....} 로 사용열거형을 인스턴스 변수(A)로 선언한뒤A를 초기화
프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨것주로 @를 붙이면서 사용한다.아직 나는 사용할 기회가 없을꺼기 떄문에 후에 필요성을 느끼면 다시 학습해보겠다
데이터 군을 저장하는 클래스들을 표준화한 설계를 뜨ㅏㅅ한다.Collection 에는 List, Set이 자손 클래스로 존재하며Map의 경우에는 별도로 존재 하게 된다.모든 컬렉션 클래스들은 List, Set, Map중에 하나를 구현을 하고 있다.순서가 있는 데이터의 집
가장 많이 사용되는 컬렉션 클래스for문을 사용하여 요소를 삭제하려면 변수를 감소시키면서 거꾸로 적용을 해야한다.\->증가시키면서 하게된다면 한 요소가 삭제되게 된다면 빈 공간을 채우기위해 다른 요소들이 이동을 해야하기 떄문에 다른 값이 나오게 된다.ArrayList같
Stack는 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 구조Queue는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 구조스택은 주로 ArrayList가 적합하고큐는 주로 LinkedList가 적합하다.자바에서는 스택을 클래스로 제공하지만 큐는 인터페이스로 만 정
컬렉션에서 컬렉션에 저장된 요소들을 읽어오는 방법주로 while문을 사용해서 컬렉션의 요소들을 읽어 온다.컬렉션의 클래스를 선언할떄에는 참조변수를 Collection으로 선언하는 것이 좋다.\-> 후에 클래스를 바꿔야 한다면 선언문 하나만 변경하면 되기 떄문에.\->
Arrays클래스의 메서드는 모두 static메서드 이다.copyof() : 배열 전체를copyOfRange() : 배열의 일부를복사해서 새로운 배열을 반환하다.fill() : 배열의 모든 요소를 지정된 값으로 채운다.setAll() : 배열을 채우는데 사용할 함수형
Set인터페이스의 가장 대표적인 컬렉션이며 중복된 요소를 저장하지 않는다.\->add메서드를 사용할떄 중복으로 간주하고 저장하지 않는다.만약 중복을 제거하는 동시에 저장한 순서를 유지하고 싶다면 LinkedHashSet을 사용 하면 된다.이진 검색 트리라는 자료구조의
키와 값을 묶어서 하나의 데이터로 저장하며 해싱을 사용하기 떄문에 많은 양의 데이터를 검색하는데 있어 편리하다.키는 주로 String을 대문자 또는 소문자로 통일해서 사용한다.만약 키 값을 중복해서 저장하게 된다면가장 최근에 저장한 키 값과 그에 따른 값이 저장 된다.
Object클래스의 메서드는 모든 클래스에서 사용이 가능하다.매개변수로 객체의 참조변수를 받아서 비교한뒤 그 결과를 boolean값으로 알려주는 역할주소값을 비교값이 저장된 위치를 알려주는 메서드객체의 주소값을 반환한다.만약 객체의 같고 다름을 판단해야 하는 경우라면
한번 생성된 String인스턴스가 갖고 있는 문자열은 읽어 올 수만 있고, 변경할 수는 없다.인스턴스 내에 있는 a의 문자열이 바뀌는 거이 아니라 완전하게 새로운 인스턴스가 생성이 되게 된다.==> 시스템의 사양을 낮출수 있기 떄문에 줄이는 것이 좋다.String클래스
StringBuffer클래스는 크기를 지정할수가 있다.\-> 적절한 길이의 크기를 지정해주어야 후에 수정이 필요 없다.반환 타입이 StringBuffer이고 자신의 주소값을 반환한다.\-> 연속적으로 사용이 가능하다.결과를 보면 sb, sb2, sb3 모두 같이 바뀌는
Math 클래스 같은 경우에는 이론적인 어려운 내용은 없다고 생각하기 떄문에 교재 489p에 있는 메서드 들을 참고한다.떄로는 기본형 변수도 어쩔 수 없이 객체로 다뤄야 할떄가 있다.1\. 매개변수로 객체를 요구할 떄2\. 기본형 값이 아닌 객체로 저장해야할 떄3\.
isNull() : 해당 객체가 Null인지 확인해서 null이면 true 아니면 false를 반환compare() : 두 비교대상이 같으면 0, 크면 양수, 작으면 음수를 반환deepEquals() : 2차원 배열을 비교할때에 이용Random() : 종자값() 으로
컴파일 에러 : 컴파일 시에 발생하는 에러런타임 에러 : 실행 시에 발생하는 에러논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것에러 : 수습할수 없는 심각한 오류예외 : 수습할수 있는 미약한 오류두 그룹으로 나누어 지게 된다.1\. Exception클래스와
상속 : 클래스를 재사용하여 새로운 클래스를 작성하는것.조상 클래스, 자손 클래스 라고도 부르며 상속해주는 클래스를 조상, 받는 클래스를 자손 이라고 한다.자손 클래스는 조상 클래스의 모든 멤버를 상속받게 된다.\-> 조상 클래스의 모든 멤버를 사용 가능하다.이로 인해
2021.06.22조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩클래스를 변경하여 재선언 하는것이름이 같아야 한다.매개변수가 같아야 한다.반환타입이 같아야 한다.== 선언부가 서로 일치해야 한다는걸 의미접근 제어자는 조상 클래스의 메서드보다 좁은 범
클래스의 묶음같은 이름의 클래스 일지라고 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 협업시에 발생할수 있는 충돌을 피할수가 있다.package 패키지명;으로 선언을 한다.반드시 주석과 공백을 제외한 첫 번쨰 문장이어야 하며, 하나
클래스 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 제공1\. 접근 제어자 : public, protected, default, private2\. 그 외 : static, final, abstract, native 등등1\. 멤버변수모든 인스턴스에 공통
여러 가지 형태를 가질 수 있는 능력조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있다보통 인스턴스를 생성하면 인스턴스의 타입과 참조변수의 타입이 일치한다.example : Tv참조변수 t = new Tv()인스턴스 변수;하지만 상속관계에 있을경우에는T
클래스를 설계도라고 한다면 추상 클래스는 미완성 설계도라고 할수가 있다.키워드 abstract만을 붙이면 된다.인스턴스를 생성할수 없다.이 두가지만을 제외하면 일반 클래스와 똑같이 사용 할수가 있다.추상 메서드를 사용하는 이유는 구현부를 작성하지 않기 떄문에 상속받는
일종의 추상 클래스몸통을 갖춘 일반 메서드 or 멤버변수를 가질수 없다오직 추상메서드와 상수만ㅇ르 멤버로 가질 수 있다.모든 멤버변수는 public static final 이어야 하며 이것은 생략 가능하다.모든 메서드는 public abstract 이어야 하며, 이를
한번 읽어본 결과 내부클래스는 변수와 같은 효용볌위가 있는 내부에 선언한 클래스 이다.이정도만 알고 있으면 될꺼같다고 생각하기 떄문에 필요하다면 직접 교재를 참고할 예정
클래스 : 객체를 정의해 놓은것으로 객체를 생성하는데 사용된다.객체 : 클래스에 정의된 내용대로 메모리에 생성된 것클래스를 설계도 라고 하면 객체는 설계도로 만들어진 제품클래스로부터 객체를 만드는 과정을 인스턴스화 라고 하며 이렇게 만들어진 객체를 인스턴스 라고 한다.
참조형 변수 : 기본형 변수를 제외한 모든 변수들\-> 배열, 클래스 등등멤버변수 중 static이 붙은 것은 클래스 변수붙지 않은 것은 인스턴스 변수 이다.메서드 영역 안에 선언된 변수는 지역 변수이다.클래스 변수는 모든 인스턴스가 공통된 저장공간을 공유하게 된다.\
같은 이름을 가진 메서드를 선언할떄 사용하는것으로한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 오버로딩 이라고 한다.메서드 이름이 같아야 한다.매개변수의 개수 또는 타입이 달라야 한다.반환값이 다른 경우에는 오버로딩이라고 치지 않는다.만약 여러개의 add
인스턴스가 생성될 떄 호출되는 초기화 메서드이다.주로 인스턴스 변수의 초기화 작업에 사용되며 반드시 실행되어야 할 작업조건1\. 생정자의 이름은 클래스의 이름과 같아야 한다.2\. 생성자는 리턴 값이 없다.생성자 또한 오버 로딩이 가능하므로 여러개의 생성자가 존재 할수
이 부분은 솔직히 필요가 있는지 모르겠음..프로그래밍 자체가 정답이 없다고 생각하기 떄문에 나중에 필요성을 느끼면 다시 공부해볼생각..
화면으로부터 입력을 받는 방법Scanner 클래스를 사용하고자 하면 import가 필요하다\->ctrl + shift + o 키를 통해서 자동으로 호출 가능다음에는 Scanner객체를 생성한다.Scanner scanner = new Scanner(System.in);이
2021.06.182차원 배열을 선언하는 방법은 1차원 배열과 같지만 다른점은 \[]가 더 추가된다는 점\--> 나머지 사항을 모두 같다.2차원 배열의 각 요소에 접근하는 방법은 배열이름행indexint arr = new int{{1,2,3},{4,5,6}};== {}
2021.06.18java에 대해서 fastcampus 및 programmers 에서 한번 거의다 보았기떄문에 마지막으로 자바의 정석 책을 구매하여 최종 정리를 하면서 자바에 대한 공부를 마치려고 한다.\-> 마친다는 의미가 이제 다시 훑어보는 시간은 가지지 않겠다는
2021.06.18String 배열 또한 기존의 배열과 같은 코드로 생성 및 활용 할수가 있다. 예외적으로 String은 본래 클래스 이기 떄문에 new 연산자가 생략되어있다.String\[] name = new String3;name0 = new String("Kim