2023114_TIL 플랫폼 독립성 vs 플랫폼 종속성 플랫폼 독립성 하나의 프로그램이 '모든' 플랫폼에서 실행 가능 플랫폼 종속성 하나의 살행 파일은 '하나의 특정' 플랫폼에서만 실행 가능 자바 개발 도구와 자바 실행 환경 여기서 주목해야 하는 점은 포함 관계입니다. JDK 자바 개발 도구 JRE 자바 개발 환경 JVM 자바 가상 머...
2023114_TIL 배열 생성하기 자바의 메모리 구조 클래스 영역, 정적 영역, 상수 영역, 메서드 영역 스택 영역 기본 자료형, 참조 자료형, 지역변수 힙 영역 객체가 위치하는 공간 배열 자료형 변수에 객체 대입하기 객체의 위치를 참조 변수에 저장하는 이유 new 키워드 -> 객체 생성한다는 것(JVM이 힙의 빈 공간에 객체 생성) 참조 ...
2023114_TIL 인스턴스 필드와 정적 필드 인스턴스 메소드와 정적 메소드 인스턴스 메소드 -> 인스턴스 메소드 영역 정적 메소드 -> 클래스 영역 정적 메소드 안에서 사용할 수 있는 필드와 메소드 static은 객체의 생성 없이 사용 가능 / instance는 객체의 생성으로 사용 정적 메소드 안에서 인스턴스 멤버 사용 -> 결국 정적 메소드...
2023114_TIL final 변수 필드, 지역변수, 메소드, 클래스 앞에 위치 한번 대입된 값이 최종 값 -> 절대 수정 못함 final 변수는 언제 많이 사용 이벤트 처리할 때 메모리에서는 사라진 그 변수를 나중에 사용해야 할 떄가 있다 사라지지 않는 영역인 상수 영역에 복사해 놓는 것 final메소드와 final클래스 final메소드 -...
2023113_TIL 예외와 에러의 차이점 예외 -> 개발자가 처리할 수 '있는' 오류 에러 -> 개발자가 처리할 수 '없는' 오류 예외 클래스의 상속 구조 Throwable클래스를 상속받은 Exception 클래스 일반예외 클래스(checked Exception) -> 실행 전 실행예외 클래스(Unchecked Exception, Runtim...
2023114_TIL 인스턴스 멤버 이너 클래스 객체 내부에 멤버 형태로 존재 outer class의 모든 접근 지정자 멤버에 접근 가능 순서 -> 아우터 클래스 -> 이너 클래스 이너 클래스는 독립적 사용 불가능 인스턴스 이너 클래스 객체 생성 아우터 클래스 객체 생성 -> 이너 클래스 객체 생성 아우터 클래스 객체를 참조하기 위해서(반드시 참조...
2023114_TIL 추상클래스의 정의 추상 메소드 -> 메서드의 본체가 완성되지 않은 미완성 메서드 추상 메소드 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스 메소드 완성의 기준 추상 클래스의 특징 추상 클래스는 내부의 미완성 메소드 있음 -> 객체 직접 생성X 힙 메모리에 내부 요소가 미완성인 채로 못들어감 추상 클래스를 상속한 자식 클...
2023115_TIL 프로그램과 프로세스의 개념 컴퓨터 구성요소 -> CPU, MEMORY, HARD DISK CPU -> 연산 수행, 실제 프로그램 실행 -> 가장 빠름 HARD DISK -> 데이터 저장역할 -> 가장 느림 하드디스크에 저장된 프로그램 실행 -> 프로그램을 메모리로 로딩하는 과정 필요함 -> 프로세스 상태 -> 로딩된 메모리의...
2023115_TIL 동기화의 개념 동기화(synchronized) -> 하나의 작업이 완전히 완료된후 다른 작업을 수행하는 것 비동기화(asynchronous) -> 하나의 작업 명령 후 완료 여부와 상관없이 바로 다른 작업 명령을 수행 동기화의 필요성 동기화를 사용하지 않았을 때 -> 스레드가 겹침(원하는 값이 나오지 않음) 동기화 방법 하나의 스레드...
2023119_TIL 제네릭 없이 여러 객체를 저장하는 클래스 작성하기 그래서 필요한 것이 제네릭 제네릭 클래스와 제네릭 인터페이스 정의하기 잘못된 캐스팅? -> 바로 오류 -> 강한 타입 체크 제네릭 클래스의 객체 생성 제네릭 클래스 -> 객체 생성과정은 일반 클래스의 객체 생성과정과 비슷 단 객체를 생성할 때, 제네릭 타입 변수에 실제 타입을 대입하...
2023120_TIL 컬렉션이란 collection -> 동일한 타입을 묶어 관리하는 자료구조 컬렉션과 배열의 차이점 데이터의 저장용량(capacity)을 동적을 관리 배열 -> 생성 시점에 저장 공간의 크기를 확정, 나중에 변경 불가 컬렉션 -> 메모리 공간이 가변적 컬렉션 프레임워크란 라이브러리 -> 연관된 클래스와 인터페이스들의 묶음 프레...
2023120_TIL 배열과 리스트의 차이점 차이점 -> 저장 공간의 크기가 고정(배열)? 동적(리스트)? List 객체 생성하기 List는 인터페이스이기 때문에 객체 생성 불가 따라서, 상속받아 자식 클래스를 생성 후, 자식 클래스를 이용해 객체를 생성 ArrayList, LinkedList, Vector 클래스들이 존재 List 인터페이스 구...
2023121_TIL Set 컬렉션의 특징 집합의 개념 인덱스 정보 X -> 데이터를 중복해 저장하면 중복된 데이터 중 특정 데이터를 지칭해 꺼낼 방법 없음 Set의 데이터를 구분하는 방법 '데이터'그 자체 동일한 데이터의 중복 저장 허용 X -> '같음' 과 '다름' 비교 필요 인터페이스이기 때문에 객체 생성 불가 자식 클래스 이용 HashSet,...
2023121_TIL Map 컬렉션의 특징 Key와 Value 한 쌍으로 데이터를 저장 한 쌍의 데이터를 'Entry' -> Map.Entry 타입으로 정의 Map는 데이터를 엔트리 단위로 입력받는 것 Key는 중복 저장불가, Value는 중복 가능 Map 인터페이스의 주요 메소드 Map는 Key들을 Set형으로 관리 -> 중복이 안되는 이유!!!...
2023121_TIL Stack컬렉션의 특징 스스로 객체 생성 가능 상속구조 Stack => Vector => List LIFO구조 Stack의 주요 메소드 >### 참조 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jaun2014&logNo=220732230304
2023121_TIL Queue 컬렉션의 특징 스스로 객체를 못만든다 -> LinkedList가 Queue인터페이스의 구현 클래스 상속구조 LinkedList => Queue => Collection FIFO Queue의 주요 메소드 데이터가 없을 때 예외 발생 add(), element(), remove() 데이터가 없을 때 기본값으로 대체 ->...
2023121_TIL 객체지향 구조 내에서 람다식 적용 과정 함수 -> 기능 또는 동작을 정의 메소드 -> 클래스 또는 인터페이스내에 정의된 함수 하나의 추상 메소드만 포함하는 인터페이스 -> 함수형 인터페이스 함수형 인터페이스의 호출 및 기능을 구현하는 방법을 새롭게 정의한 것 '람다식' 람다식을 사용하면 독립적으로 정의한 함수를 호출만 하면 공통...
2023123_TIL byte단위 입출력과 char단위 입출력 송수신하고자 하는 데이터를 byte 단위로 쪼개 보내고 받는 것 모든 데이터는 byte들의 모음 byte단위 입출력은 텍스트 전송에 특화됨 byte단위 -> InputStream | OutputStream (추상클래스) char단위 -> Reader | Writer (추상클래스) InputStr...