본문 바로가기

전체

(96)
자바 메모리 영역 1) 메소드(Method) 영역 클래스를 로더로 읽어 클래스 별로 런타임 상수풀, 필드 데이터, 메소드 데이터, 생성자 코드 등으로 분류해서 저장, 전역변수, static변수 할당, JVM 시작시 생성, 모든 스레드가 공유 2) 스택(Stack) 영역 매개변수(파라미터), 지역변수(로컬변수), 함수(메소드)등 할당 LIFO방식, 사용이 끝나면 바로 소멸, 컴파일 시 메모리 할당 3) 힙(Heap) 영역 객체(인스턴스) 저장, 가비지컬렉터가 메모리 관리 참조하는 변수나 필드가 없으면 의미 없는 객체로 분류하여 제거 +++ 전역/지역/정적 변수란? 1) 전역변수 - 프로그램에서 전반적으로 다 사용가능 2) 지역(로컬)변수 - 함수 안에서만 사용가능 3) 정적(Static)변수 - 한 번 정의하면 프로그램 종..
프로세스(Process)와 쓰레드(Tread) 프로세스(Process) 실행중인 프로그램으로 CPU가 메모리 자원을 안정되게 분배해주어야 하고 운영체제의 성능에따라 성능이 결정됩니다. 쓰레드(Tread) 프로세스 내에서 동시에 실행되는 실행단위로서 Runnable(인터페이스)로 선언되어 있는 클래스를 상속받거나 Thread 클래스를 상속받아 run() 메소드를 구현하여 사용합니다. (멀티)쓰레드는 각자 스택 영역을 가지고 있으며 동일 프로세스내 전역메모리를 공유하기 때문에 CPU로부터 새로운 자원을 할당 받지 않아도 되기 때문에 실행속도가 빠릅니다. but, 교착상태(DEADLACK)에 빠질 수 있습니다. 교착상태란 자원을 공유하기 때문에 특정 시간을 기다리고 있는 상태를 말합니다. 결국 계산기와 메모장처럼 서로 완전한 별개의 프로그램이라면 독립적인..
상속 / 인터페이스 / 추상클래스 어떻게 보면 비슷해 보이는 상속, 인터페이스, 추상클래스! 이 셋의 차이를 정리해보려고 합니다. 상속 부모클래스(기존)의 변수와 메소드를 그대로 가지면서 추가적인 기능도 가지는 클래스(자식)를 새로 만드는 것 ex) 견과류(부모) - 잣, 호두(자식) 코드중복을 줄여주고 외부적으로 볼 때 묶어서 처리하기 때문에 효율적입니다. 인터페이스 껍데기만 있는 클래스, 클래스의 템플릿, 여러 클래스의 사용 방법이 같음을 보장 자신을 implement하는 클래스들에게 메서드 구현을 강제시킴, 규격 맞추기 추상메서드와 상수만을 멤버로 함, 다중상속가능 ex) List인터페이스를 implement하는 클래스들 - ArrayList, LinkedList는 add(),get()...가짐 추상클래스 추상메소드를 하나이상 가진..
Java의 특징 1) 운영체제에 독립적이다. 컴파일러가 소스코드를 바이트코드(.class)로 변환, JVM이 바이트코드를 바이너리코드(기계어)로 변환하여 실행 (애플리케이션 - JVM(Java Virtual Machine, 자바가상머신) - OS(Operating System, 운영체제이므로 JVM만 OS별로 잘 만들어져 있으면 독립적인 것) 타언어(C 등)는 직접통신, 포인터사용, 가비지컬렉터X, 실행시간의 에러 처리X, 엄격한 형 검사(에러 조기 발견) X 2) 객체지향프로그램이다. (하나의 프로그램을 객체들의 모임으로 보는 것) 객체지향 프로그램은 프로그래밍 패러다임의 하나로, 프로그램에 필요한 데이터를 추상화 시켜 상태(속성)와 행위(메서드)를 가진 객체(붕어빵 만들기=클래스)로 만들고 그 객체간의 상호작용을 통..
형변환 기본 형변환이란 변수 또는 리터럴의 타입을 다른 타입으로 변환하는것입니다. 1. 묵시적 형변환(Implicit Type Conversion) 크기가 작은 타입을 더 큰타입으로 바꿀 때 간단한 예시 int x = 500; long y = x; 2. 명시적 형변환(Explicit Type Conversion) 크기가 더 큰타입을 작은 타입으로 바꿀 때 강제 형변환(Casting)이라고도 합니다. 간단한 예시 long x = 500; int y = (int) x; // int y = x; (묵시적 형변환 불가 - 에러) +++ 제네릭(Generic)이란? 로 타입을 변환해 주는 형식 기본 자료형을 쓰려면 wrapper클래스를 이용해야함 왜쓰나? 강한 타입체크로 에러 방지, 불필요한 캐스팅 제거