배열 만들기 배열 생성 시 배열 타입에 대한 default 값으로 초기화 배열 초기값 자료형 초기값 int 0 double 0.0 char '0' boolean false String null 사용자 정의 class null 생성과 동시에 값 할당하기 int[] b = new int[] {1, 3, 5}; // new int[] 는 생략 가능 int[] b = {1, 3, 5}; 주의 사항 선언과 생성을 따로 하는 경우 초기화할 때 꼭 'new T[ ]'를 같이 적어줘야 한다. // X int[] a; a = {1, 3, 5}; // 컴파일오류, Array constants can only be used in initializers 이 에러 문구 나옴. // O int[] a; a = new int[]{..
연산자 우선 순위 ✔️ 연산자 우선순위가 같을 경우 연산 진행 방향(결합방향)에 의해 결정 3 * 4 * 5 1️⃣ 3 * 4 2️⃣ 12 * 5 x = y = 3 1️⃣ y = 3 2️⃣ x = 3 연산 예시 // 1 - Type mismatch byte a = 10; byte b = 20; byte c = a + b; // Type mismatch 에러 발생 // 산술 연산의 최소 단위는 int이기 때문에 'a+b'는 내부적으로 int타입으로 바껴있음. // byte c = (byte) (a + b); 이런 식으로 바꾸든가 해야 함. // 2 - Type mismatch int a = 10; long b = 20; int c = a + b; // Type mismatch 에러 발생, 더 큰 타입이 있..
변수 자료를 저장하기 위한 메모리 공간 타입에 따라 크기가 달라짐 메모리 공간에 값을 할당 후 사용 타입 ✔️ 기본형(primitive type) 미리 정해진 크기의 memory size로 표현 변수 자체에 값 저장 모든 값 타입은 메모리의 스택(stack)에 저장 ex) int, double, char 등 ✔️ 참조형(reference type) 크기가 미리 정해질 수 없는 데이터의 표현 변수에는 실제 값을 참조할 수 있는 주소만 저장 메모리의 힙(heap)에 실제 값을 저장하고, 그 참조값(주소값)을 갖는 변수는 스택에 저장 기본형(Primitive Type)의 크기 * 실수(부동 소수점)의 연산은 정확하지 않다. 유효 자릿수를 활용하여 반올림처리하기 형변환 ❓ 변수의 타입을 다른 타입으로 변환하는 ..
📔 네트워크와 모델 1. 네트워크, 인터넷, 프로토콜의 개념을 설명해주세요. ✔️ 네트워크 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어 노드와 링크가 서로 연결되어 있거나 연결되지 않은 집합체를 의미 노드 : 서버, 라우터, 스위치 등 네트워크 장치 링크 : 유선 또는 무선을 의미 ✔️ 인터넷 컴퓨터로 연결하여 TCP/IP(Transmission Control Protocol/Internet Protocol)라는 통신 프로토콜 을 이용해 정보를 주고받는 컴퓨터 네트워크 클라이언트와 서버로 구성 '~간의'를 의미하는 inter와 '네트워크'의 net을 합성한 단어 인터넷도 '네트워크 간의'를 의미하며 네트워크와 네트워크를 연결한다는 의미로 쓰임. 즉, 네트워크간의 연결, 네트..
운영체제(Operating System, OS)란? 컴퓨터 하드웨어 바로 위에 설치되어사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 ** 펌웨어(firmware) : 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것 협의의 운영체제 운영제체의 핵심 부분으로 메모리에 상주하는 부분 즉, 컴퓨터가 부팅된 이후 항상 메모리에 상주하는 것 개발자가 흔히 말하는 운영체제는 좁은 의미의 운영체제임. 커널을 말함. 광의의 운영체제 커널 뿐 아니라 각종 주변 시스템 유틸리티를 표함한 개념 메모리에 상주하지 않는 일종의 별도의 독립적인 프로그램 ex) 파일 복사하는 소프트웨어 등 운영 체제의 목적 1. 사용자가 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 내부에서는 여러 프로그..
javadoc에서 Stack class를 찾아보면 다음과 같은 설명이 있다. A more complete and consistent set of LIFO stack operations is provided by the Deque interface and its implementations, which should be used in preference to this class. Stack을 사용하지 말아야하는 이유 1. Vector class를 상속받기 때문에 동일한 문제 발생 Vector 클래스는 주요 메서드들이 각각 동기화를 진행 동기화를 하는 과정에서 락을 얻는 과정이 있다. 단일 스레드 환경에서는 락으로 인해 속도 저하 문제가 생길 수 있다. 2. 용량 설정 불가능 ArrayDeque는 초기 Ar..
Deque이란? A linear collection that supports element insertion and removal at both ends. The name deque is short for "double ended queue" and is usually pronounced "deck" "double ended queue"의 줄임말로 앞뒤로 데이터를 넣고 뺄 수 있는 선형 자료구조 큐(FIFO, First-In-First-Out), 스택(LIFO, Last-In-First-Out) 모두 될 수 있다. Deque 인터페이스를 구현한 클래스 Deque queue = new ArrayDeque(); Deque queue = new ConcurrentLinkedDeque(); Deque queue..
| 릴레이션 테이블이라고도 부른다. 릴레이션 스키마 + 릴레이션 인스턴스로 구성 동일한 튜플이 두 개 이상 존재하지 않음. 애트리뷰트(열)와 튜플(행)들의 순서는 중요하지 않음. 한 튜플의 각 애트리뷰트는 원자값을 가짐. ( == attribute는 atomic 해야 함) 원자값 : 속성값이 더 이상 논리적으로 분해될 수 없는 값 ex) { 서울특별시 구로구 } -> { 서울특별시, 구로구 } | 릴레이션 스키마 릴레이션의 구조 릴레이션이 어떻게 구성되는지, 어떤 정보를 담는지 등 기본적인 구조를 정의 | 릴레이션 인스턴스 튜플들의 집합 즉, 실제 데이터의 집합 | 애트리뷰트(Attribute=Field) 열 또는 컬럼이라고도 부른다. 디그리(degree) attribute의 수 유효한 릴레이션의 최소 ..