본문 바로가기
728x90
반응형

study_java30

자바의 제네릭(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.
[JAVA]18일차 이때까지 우리가 배우면서 코드를 입력 했을 때, 잘못 코드를 짰거나 이상한 값을 입력한 경우 에러가 발생하면서 프로그램이 애초에 진행되지 않거나, 진행되다가도 잘못된 코드를 만나면 빨간 에러 문구가 출력되면서 프로그램이 종료되었다. 이처럼 자바 가상머신은 예외적인 상황을 처리할 때, 간단한 예외 정보를 출력하고 프로그램을 종료해버린다. 그런데 우리가 상용화된 어플을 쓸 때는 무언가를 잘못 입력할 경우 잘못 입력했다는 메시지만 떴지 어플은 종료되지 않는다. 왜 상용화된 어플은 값이 잘못 입력되었는데도 우리가 짜는 코드처럼 종료되지 않고 계속 실행을 유지했을까? 이것을 처리하는 것이 바로 오늘 배운 예외 처리이다. 0. 예외(Exception)와 오류(Error) 프로그램을 돌렸을 때 .. 2020. 6. 3.
DLL 이란? 1. DLL이란? DLL을 설명하기 전에 먼저 라이브러리(Library)라는 것이 있다. 라이브러리는 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는, 일종의 단편화된 프로그램이다. DLL은 다이나믹(Dynamic) 링크(Link) 라이브러리(Library)를 줄인 말이다. 라이브러리는 소프트웨어를 개발할 때 자주 쓰거나 기초적인 함수들을 중복개발하는 수고스러움을 피하기 위해, 표준화된 함수나 데이터 타입을 모아놓은 것이다. 이러한 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며, DLL은 이 중 후자를 뜻한다. 스태틱 링크(Static Link = 정적 링크)는 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일.. 2020. 6. 2.
[JAVA]17일차 어제 수업에 이어서, 인터페이스와 비슷한 추상클래스를 배웠다. 먼저 예제를 연습하다가 발견 한 것들 0. Exception in thread "main" java.lang.ArrayStoreException 배열과 맞지 않는 데이터를 저장하려고 하면 이 에러가 발생 ㅡ 예를 들어 자료형이 맞지 않거나, 상속하는 클래스가 아닌 다른 객체를 저장하려고 하면 이 오류가 뜬다. 0-1. public String toString() 자바의 조상격 클래스인 Object의 함수는 오버라이딩 할 때 접근제어자 범위를 축소할 수 없다. Object 객체에서 접근 제어자를 public으로 지정해줬기때문에 (전체 공개를 원칙으로 하기때문에) 바꾸는 것을 허용하지 않는다. 1. 추상클래스 추상클래스는 일.. 2020. 6. 2.
728x90
반응형