목록Java (11)
UpDown Dev Story
인터페이스와 추상클래스에 대해 알아보기전 일반적인 개발 절차에 대해 알아보자 분석 설계 개발 및 테스트 시스템 릴리즈 인터페이스와 abstract 클래스를 사용하는 이유 설계 시 선언해 두면 개발할 때 기능을 구현하는 데에만 집중할 수 있다. 개발자의 역량에 따른 메소드의 이름과 매개 변수 선언의 격차를 줄일 수 있다. 공통적인 인터페이스와 abstract 클래스를 선언해 놓으면, 선언과 구현을 구분할 수 있다. 추상클래스란? 추상 클래스(abstract class)란 하나 이상의 추상 메소드(abstract method)를 포함하는 클래스이다. 추상 메소드는 선언만 있고 본체는 없는 함수이며 선언부에 ‘abstract’ 라는 키워드를 붙인다. 추상 메소드가 포함되었다면 클래스도 추상 클래스이므로 클래스..
우선 클래스에 대해 알고 넘어가자 클래스란? 자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용됩니다. 즉, 필드(field)란 클래스에 포함된 변수(variable)를 의미합니다. 또한, 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성됩니다. 자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 된다 출처 : http://tcpschool.com/java/java_class_intro Object 클래스 란 무엇일까? 모든 클래스의 부모클래스 아무런 상속을 받지 않으면 java.lang.Object 클래스..
String이란? 특징 불변(immutable) thread safe 하지 않다 String은 참조형 변수 이기 때문에 선언할때마다 새로운 객체를 생성하고 그 객체를 바라보는 주소값을 가지게 된다 String변수를 선언하는 방법에는 두 가지 방법이 있다 public class StringStudy { public static void main(String[] args) { String literalString1 = "비교값"; String literalString2 = "비교값"; String objectString = new String("비교값"); System.out.println(literalString1); System.out.println(literalString2); System.out.pr..
직렬화(Serializable) 란? 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술. JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술 역직렬화(Deserialize) 란? byte로 변환된 Data를 원래대로 Object나 Data로 변환하는 기술을 역직렬화(Deserialize)라고 부릅니다. 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태. 직렬화 방법 변환하려는 객체가 Serializable 인터페이스를 implements 해야한다 serialVersionUID라는 값을 지정해 주는 것..
목적 자바 컬렉션(List, Map, Set)에 대해 정리하면서 공부하기위해 글을 작성하였습니다 컬렉션이란 무엇일까? 목록성 데이터를 처리하는 자료구조를 통칭 자바의 컬렉션과 관련된 클래스들의 구조 여기서 보면 Map만 별도로 분리되어 있음을 확인할수 있다 List 특징 순서가 있다 List - ArrayList 확장 가능한 배열 여러 명이 달려들어 값을 변경하려고 하면 문제가 발생할 수 있다 (not-thread-safe) index 값이 있기때문에 특정 요소를 찾을때 유리 중간에 node를 하나 삭제하게 되면 index를 다시 채번해야한다(삽입,삭제 가 빈번한경우 부적합) 인스턴스 생성시 디폴트로 10개로 정해져 리스트의 개수가 capacity 이상이 되면 1.5배씩 늘려 나아가는 전략을 택하고 있다..
목적 자바에서 Process와 Thread에 대해 알아보고 기록하기 위해서 작성했습니다 프로세스란? 프로그램의 실행의 단위 자바프로그램에서 JVM이 시작되면 자바 프로세스가 시작한다 실행 중인 프로그램을 뜻하고 프로그램을 실행하면 OS(JVM)로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다 프로세스는 각각 메모리 영역을 할당받기 때문에 다른 프로세스의 변수나 자료에 접근할 수 없다 프로세스가 할당받은 메모리 영역 쓰레드란? 프로그램의 작업의 단위 프로세스는 쓰레드가 하나 이상 수행된다 프로세스의 자원을 이용해서 작업을 수행하는것 하나의 프로세스안에 여러개의 쓰레드가 존재하기 때문에 프로세스안에 있는 메모리 영역을 쓰레드끼리 공유한다 쓰레드 메모리 공유 예시 자바 프로세스 쓰레드 실행과정 j..
목적 자바에서 Error와 Exception에 대해 알아보고 기록하기 위해서 작성했습니다 그래서 Error란? Error(오류)는 자바 프로그램 밖에서 발생한 예를 말한다. 예) 메인보드 고장 서버 디스크 고장 등... 그래서 Exception이란? Exception(예외)는 프로그램 안에서 우리가 예상한, 혹은 예상치도 못한 일이 발생하는 것을 미리 예견하고 안전장치를 하는 것 Exception 의 대한 예시 백화점에서 물건을 구매하는것으로 예시를 들어보겠습니다 정상적인 프로세스 고객이 상품 선택 -> 상품 가격 확인 -> 카드나 현금 전달받음 -> 계산 처리 -> 물건 싸서 줌 예외상황 고객이 상품 선택 -> 상품 가격 확인 -> 가격 흥정 시작 -> 버티기 -> 가격 흥정 반복 후 못이기는 척 깎아..
http://www.yes24.com/Product/Goods/42643850 자바의 신 세트 - YES24 성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책이다. 현장 중심으로 자바의 기본서를 다시 정의한 책이다. 독자가 생각하며 www.yes24.com 해당 책을 읽고 내용을 정리해보고 있습니다 21장 실수를 방지하기 위한 제네릭이라는 것도 있어요 1. 제네릭이 자바에 추가된 이유는 무엇인가요? 제네릭은 타입 형 병환에서 발생할 수 있는 문제점을 "사전"에 없애기 위해서 만들어졌다. 2. 제네릭 타입의 이름은 T나 E 처럼 하나의 캐릭터로만 선언되어야 하나요? 제네릭의 선언시 타입 이름은 예약어만 아니면 어떤 단어도 사용할 수 있다. 단,..
http://www.yes24.com/Product/Goods/42643850 자바의 신 세트 - YES24 성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책이다. 현장 중심으로 자바의 기본서를 다시 정의한 책이다. 독자가 생각하며 www.yes24.com 해당 책을 읽고 내용을 정리해보고 있습니다 12장 모든 클래스의 부모 클래스는 Object에요 1. 모든 클래스의 최상위 부모 클래스인 Object 클래스는 어떤 패키지에 선언되어 있나요 ? java.lang 2. 클래스가 어떻게 선언되어 있는지 확인할 수 있는 명령어(실행파일)의 이름은 무엇인가요? javap 3. Object 클래스에 선언되어 있는 모든 메소드를 Overriding해야 ..
http://www.yes24.com/Product/Goods/42643850 자바의 신 세트 - YES24 성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책이다. 현장 중심으로 자바의 기본서를 다시 정의한 책이다. 독자가 생각하며 www.yes24.com 해당 책을 읽고 내용을 정리해보고 있습니다 정리내용 정리해 봅시다 1장 프로그래밍이란 무엇인가? 1. 클래스가 뭔가요? 클래스는 Java의 가장 작은 단위이며 상태와 행동을 가지고 있다. 클래스 안에 변수를 선언하면 이를 상태라 하고 메소드를 선언하면 행동이라고 볼 수 있다. 2. 메소드가 뭔가요? 메소드는 클래스 내에서 행동에 속하는 부분으로 특정한 작업을 수행하는 단위이다. 매개변수..