namu6747
취소

Git

git git 기본 리눅스 코발트가 만듬 CVCS 는 remote 에만 히스토리가 저장됨 DVCS(git) 은 Local 에도 히스토리가 저장됨 최근 Master - Slave 구조를 없애는 운동의 일환으로 default branch 가 main 으로 변경됨 git 은 commit 이전에 staging area 또는...

자바 기타

String 변수의 생성 방식 두 가지 생성자 매개변수를 통한 생성 String str = new String(args) 인스턴스 생성이므로 독립된 heap 영역에 존재하여 동등 연산자로 비교 불가 문자열이 가지는 불변성 논리에 모순이 생김 생성자를 호출하지 않는 생성 String str = "args" heap 영역의 문자열 상수...

자바 문자열 인코딩

문자 인코딩 하드웨어는 숫자 밖에 인식할 수 없어 문자에 개별 숫자를 부여해야한다. “문자 A는 숫자 65로 표시하기로 약속한다.” 이러한 문자 표현에 대한 약속을 가리켜 ‘문자 셋’이라고 한다. 유니코드는 모든 나라의 문자를 수용하여 전 세계적으로 사용하는 문자 셋이다. 자바가 유니코드를 지원하더라도 문자의 출력은 운영체제에 의존적이...

자바 추상 클래스와 인터페이스

추상클래스와 인터페이스 추상클래스 - 객체 생성이 불가능하고 추상 메소드를 선언할 수 있는 점을 제외하면 일반 클래스가 하는 대부분의 기능을 수행할 수 있다 - 일반 클래스와 같이 단일 상속만 가능하다 - 관련성이 높은 클래스 간 코드를 공유하고 싶은 경우 - 관련성이 높기 때문에 상속 받는 클래스가 필수로 가질 행동을 지정 - 클래스 스스로 기능...

자바 스레드

스레드 멀티 코어 CPU가 대중화되어 자바는 언어 차원에서 병렬 처리를 지원한다 스레드 하나에 CPU의 코어 하나가 할당된다 동기화 처리 임계 영역 : 멀티 스레드 환경에서 단 하나의 스레드만 실행할 수 있는 코드 영역 임계 영역은 곧, 동기화가 적용된 구역이다 Synchronized ReentrantLock volatile...

자바 I/O 스트림

I/O 스트림 스트림이란 ‘데이터의 흐름’을 의미한다 여기선 데이터의 이동 통로로 받아들이면 편하다 컬렉션 스트림과 달리 데이터 입출력에 대한 내용이다 (I/O 스트림은 java.io, 컬렉션 스트림은 java.util.stream 소속) 입출력 대상은 파일, 하드웨어, 서버 또는 클라이언트 등 다양하다 입출력 대상이 달라지면 ...

자바 컬렉션 프레임워크

컬렉션 프레임워크 java.util.concurrent 동기화된 컬렉션은 멀티 스레드 환경에서 하나의 스레드가 요소를 안전하게 처리하도록 도와주지만, 전체 요소를 빠르게 처리하진 못한다 스레드가 작업할 때 락이 발생하기 때문에 병렬 처리가 불가능 자바에서는 이 문제를 해결하기 위해 concurrent 라이브러리를 제공 이 구현체들은...

자바 제네릭

제네릭 제네릭 타입이 없다면 Object 객체를 생성하여 이용할 수 있지만 이땐 명시적 형변환을 요하는 상황이 반드시 나타난다 결국 반드시 실수하는 경우가 생길 것이다 => RuntimeException 제네릭이 등장하면서 자료형에 의존적이지 않은 클래스를 정의할 수 있다 하지만 단순히 제네릭이 타입 의존성에서 벗어난다는 건 착각이다 컴파일 환경...

자바 JVM

JVM 운영체제마다 JVM 종류가 다름 프로그램 실행에 필요한 메모리 공간을 가리켜 메인 메모리라 하며, 이는 물리적으로 램을 의미한다 메모리의 효율적인 사용을 위해서 운영체제가 메모리를 관리한다 JVM은 운영체제에서 메모리를 할당 받고 효율적으로 사용한다 메모리 영역 메모리 공간은 크게 메소드, 스택, 힙 영역으로 나뉜다 메소드 영...

자바 기본

변수와 타입 변수 데이터의 저장과 참조를 위해 ‘할당된 메모리 공간’에 붙인 이름 기본 타입 이진수의 음수화 : 1의 보수화 후 1을 더함. 올림 수는 버림 소수점 기준, float, double은 각각 6, 15자리의 정밀도를 갖는다 long 타입 정수를 표현할 때 리터럴 끝에 ‘L’ 문자 추가 ...