본문 바로가기
728x90
반응형

study_java/자바 공부하기12

자바의 제네릭(Generic) 자바의 제네릭 개념은, 다양한 자료형에 대한 재사용 프로그래밍이 가능하게 한다. 다이아몬드 연산자로 읽을 수도 있고, ‘’ 형태로 표기한다. 1. 제네릭 클래스(Generic class) 제네릭 클래스는 자료형을 로 표기한다. 보편적인 제네릭 타입의 매개변수(Type Parameter)에 대한 명명 규칙은 아래와 같다. 표기 알파벳 의미 E Element K Key N Number T Type V Value 사용 예) int list = new ArrayList(); 2. 제네릭 클래스 활용 2-1. 제네릭 클래스 선언부 (접근제어자) class 클래스명 { ... } 2-2 제네릭 클래스 인스턴스 생성 클래스명 인스턴스명 = new 생성자(); 사용 예) //실 사용 예 class Sample { pr.. 2023. 6. 13.
Java의 클래스와 클래스의 구성요소 1. 자바의 클래스 자바에서 클래스 = 붕어빵틀, 인스턴스 = 붕어빵틀로 찍어낸 붕어빵 으로 비유되곤 한다. 변수의 자료형은 두가지로 나뉘는데, (기본/비기본) 또는 (원시형/참조형)으로 구분한다. 여기에서 클래스로 생성하는 변수는 참조형 변수가 된다. - 기본 자료형(원시 자료형)의 생성자 = 변수 - 비기본 자료형(참조 자료형)의 생성자 = 인스턴스, 클래스로부터 생성됨, new 키워드 사용 추가적으로, String의 자료형은 예외적으로 인스턴스가 아닌 변수라고 많이 얘기하지만, String 변수라고 이야기를 하더라도 String 객체의 참조 자료형이라고 확실히 알고 있어야 한다. (* 참조 - 빵형의 java) // 기본 자료형의 생성자 int num = 10; // 참조 자료형의 생성자 Class.. 2023. 4. 6.
프로그래밍 언어에 대한 간략한 개념들 - [절차지향과 객체지향], [런타임과 컴파일타임], [컴파일 언어와 인터프리터 언어] 1. [절차지향과 객체지향] 절차지향 프로그래밍 = 순차적으로 처리되어 프로그램 전체가 유기적으로 연결되어있도록 하는 개발. 컴퓨터가 부팅되기위해서는 부트로더가 먼저 로딩되어야하는 그런 느낌 객체지향 프로그래밍 = 현실 세계를 모델링하여 소프트웨어 개발. 명령어의 체계적인 나열로 처리하는 것이 아닌, 여러개의 독립된 객체를 만들어 객체단위로 개발. 만들어진 독립된 개체들은 서로 소통하여 프로세스를 처리할 수 있다. 2. [런타임과 컴파일타임] 프로그램을 생성하기 위해 개발자는 첫째로 소스코드를 작성하고, 컴파일이라는 과정을 통해 기계어 코드로 변환 되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일 타임(Compile time) 이라고 부른다. 컴파일과정을 마친 프로그램은 사용자에 의해 실행되.. 2023. 4. 6.
반복문의 continue와 break continue와 break는 반복문에서 사용되곤 한다. continue와 break문을 통해, 반복문을 종료 또는 다음 반복 index로 넘길 수 있다. continue 문 : continue를 만나면 continue 아래의 코드는 실행하지 않고 다음 증감식으로 넘어간다. break 문 : break를 만나면 반복문을 종료시켜버린다. (다음 index로 넘어가는 continue와 다름) ** continue든 break든, 하나의 break 당 하나의 for문을 탈출한다 1. continue 문 반복문의 내용 중 continue를 만나면 continue 아래의 코드는 실행하지 않고 다음 증감식으로 넘어간다. for(int i = 1; i 조건이 true이면 실행 Sys.. 2023. 4. 6.
List와 Array 구분 (List형 컬렉션프레임워크와 배열의 구분) 내가 이해한 List와 Array의 차이에 대해 정리해보았다. 1. 간단 요약 배열 = 연속적이며 변수의 크기가 고정되어있는, 나열된 데이터 구조 리스트 = 데이터(노드) 꼬리물기 구조 2. 상세 버전 배열은 고정된 크기를 갖는 같은 자료형의 원소들이 연속적으로 저장된 구조로, 인덱스가 중요하며 cache hit가 가능함(미리 인덱스를 읽어 위치를 저장). 데이터가 삭제 되어도 인덱스를 유지해야 한다.(⇒ 메모리 낭비를 초래한다) 리스트는 빈틈없는 데이터 적재가 가능한 순서가 있는 데이터의 모임. 노드를 연결해 데이터를 저장한다. 노드는 기본적으로 헤드와 테일의 형태로 이루어져 있으며, 각 노드의 테일에는 다음 노드의 주소 정보를 저장하고 있어 꼬리에 꼬리를 무는 형태. 리스트에서는 인덱스가 배열에 비해.. 2023. 3. 30.
java 배열의 할당 각 자료형의 배열 : 연속으로 공간이 확보된 특정 자료형의 집합 1. 배열 선언 배열 선언하는 방법 ① - 명시적 할당 int[] kor_score = new int[3]; kor_score[0] = 10; // 인덱스 0 kor_score[1] = 20; kor_score[2] = 30; 숫자 3을 박아서 int형으로 3개의 공간을 할당한다. 공간은 0번부터 시작하며, 0, 1, 2..와 같은 번호를 인덱스(index)라고 부른다. (kor_score[0] 부터 시작) 4byte 4byte 4byte kor_score[0] kor_score[1] kor_score[2] +) new 키워드 : new 키워드는 메모리에 데이터를 저장할 공간을 할당받고 그 공간의 참조값을 반환한다. 배열 선언하는 방법 ② .. 2023. 3. 30.
변수의 자료형 구분(기본자료형 / 비기본자료형) - 기본 자료형 (=원시타입, Primitive Type) : 논리형(boolean) / 문자형(char) / 숫자형(정수형-byte, short, int, long, 실수형-float, double)이 있다. 숫자형 long과 실수형 float 형은 각각 변수값 뒤에 ‘L’, ‘l’ 또는 ‘F’, ‘f’를 붙인다. (구분을 위함) - 비기본 자료형 (=참조타입, Reference Type, Non-Primitive Type) : 클래스(String, Integer, Long 등) / 인터페이스(Collection, Map 등) / 배열 이 있다. 참조 자료형으로도 불림. new 키워드를 이용하여 생성하며 모든 참조변수의 기본값은 null 이다. +) - Long과 long의 차이, Integer와 in.. 2023. 3. 30.
DLL 이란? 1. DLL이란? DLL을 설명하기 전에 먼저 라이브러리(Library)라는 것이 있다. 라이브러리는 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는, 일종의 단편화된 프로그램이다. DLL은 다이나믹(Dynamic) 링크(Link) 라이브러리(Library)를 줄인 말이다. 라이브러리는 소프트웨어를 개발할 때 자주 쓰거나 기초적인 함수들을 중복개발하는 수고스러움을 피하기 위해, 표준화된 함수나 데이터 타입을 모아놓은 것이다. 이러한 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며, DLL은 이 중 후자를 뜻한다. 스태틱 링크(Static Link = 정적 링크)는 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일.. 2020. 6. 2.
데이터 영역의 구분 1. static 영역 - 패키지나 클래스 정보가 올라갑니다. - 패키지나 클래스는 프로그램 시작과 동시에 모두 올라가는 것이 아니라, 실제로 호출 될 때 올라가게 됩니다. (JVM은 영리합니다.) - static이라는 키워드를 붙여서 선언된 필드와 메소드인 '클래스 멤버'도 static 영역에 올라갑니다. static 영역에 있는 것은 어떤 곳에서나 접근이 가능해지기 떄문에 '전역'이라는 키워드를 사용합니다. - 그러므로, static (전역) 변수는 읽기 전용이 아닌 경우에는 가능한 사용하지 말아야 합니다. (누구나 접근해서 값을 수정하면 혼란을 가져 올 수 있기 때문) - class영역 혹은 method 영역 이라고도 불립니다. - static 영역에 자리잡게되면 JVM이 종료 될 때까지 사라지지 .. 2020. 5. 21.
프로그램의 실행과 메모리 관리 1. 프로그램 실행 과정 자바 소스코드 파일은 컴파일러에 의해 자바 가상 머신이 해석할 수 있는 바이트 코드 파일, 즉 클래스 파일로 변환된다. 이 클래스 파일을 클래스 로더가 읽어 메모리에 올릴 준비를 하고, 자바 가상머신이 효율적인 메모리 관리를 위해 분할한 데이터 영역의 역할에 따라 클래스 파일의 데이터들이 분배된다. 프로그램이 실행되는 동안 할당된다고 해서 Run-time Area라고 불리는 영역은 클래스 영역(Method 영역이라 부르기도 함), 스택 영역, 힙 영역으로 나뉜다. 클래스 영역에는 클래스 로더가 읽어온 내용에 기반하여 클래스 데이터들이 저장된다. 전역 변수, 정적 변수(static 키워드가 붙은 변수)가 여기에 들어간다. 클래스 영역은 로더가 읽어온 내용에 기반한, 프로그램 실행에.. 2020. 5. 20.
728x90
반응형