java

java/java 심화

List 구현

개요 LinkedList원리 Node를 통해서 객체들을 연결을 한 상태로 Node 내부에 data와 nextNode 주소, prevNode 주소 등이 들어갈 수 있다. 구현된 LinkedList 이용시 중간에 값 추가, 중간 값 삭제 등 배열보다 높은 성능을 보여준다. LinkedList 구현의 필요성 회전하는 순서 같이 LinkedList의 원리로 구현할 수 있는 부분들이 LinkedList에 구현이 되어있지 않다. ex) 1,2,3 이 저장된 list를 get(int index)을 통해서 뽑아낼때 indexrk list Node 수보다 많으면 예외발생 이 외에도 LinkedList를 직접 구현해야되는 상황이 생길시 구현을 할 줄 알아야한다. 구현 순서 LinkedList : 평소에 사용하는 Linke..

java/java 기본

15. 입출력

1.입출력(I/O)과 스트림(stream) 원리 외부와 자바프로그램간의 data를 주고 받는 과정 필요 data를 주고 받기 위해 외부와 자바프로그램을 연결시켜주는 다리가 필요 : stream stream은 14장의 Stream과 다르다. 연결시켜주는 다리(일방통행) : Input, Output 외부에서 자바로 들어가는 것 하나 : Input 자바에서 외부로 보내는 것 하나 : Output 목적 외부에서 데이터를 받아서 읽기 내부에서 데이터 작성해서 외부로 보내기 input과 output은 따로따로 이다. 연결해서 작동하는 경우가 많은 거지 서로 연결할 필요가 없다. read(), write() input과 output stream의 다른 method들이 분명 더 있겠지만 읽고 쓰기가 기본 원리이다. 외..

java/java 심화

Interface와 API

1. 인터페이스의 의미 인터페이스는 표준껍데기이다. 2가지 개념이 같이 움직인다. 표준이라는 것은 자신들이 만든 프로그램이 이런 표준이라고 상대방에게 알리는 것. 무슨 표준 규칙이 존재하는게 아니다. 상대방 기준에서 표준인 것. 2. 인터페이스 사용 하는 큰 개념들 2.1. 자바적 개념 추상메서드의 집합, 내부 변경이 쉽고 호환이 쉽다. 인터페이스와 연결된 객체는 인터페이스 내부의 실제 구현체와 의존하지 않아서 실제 구현체는 변경이 용의 구현체 : 인터페이스 구현체 연결체는 인터페이스 메서드 선언부로만 가지고 실제 구현체를 작동할수 있다. 인터페이스를 타입변수로 가진 실제 인터페이스 구현체는 설정창과 같은 곳에서 따로 관리 구현체 업데이트시 설정창의 인터페이스와 인터페이스 구현체를 새로 연결하면 된다. ..

java/java 기본

12. 지네릭스, 애너테이션

1. 지네릭스 정의 동적일 필요없는 타입을 정적으로 변환 → 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능 → 런타임 에러를 줄여준다. 클래스에서 지정한 지네릭스 타입으로 인해 다양한 타입의 객체들을 다루는 메서드에 type을 제한할 수 있다. type 제한: 지네릭스 타입 객체 및 지네릭스 타입의 자손 타입 객체 가능 method 중 지네릭스가 지정된 method는 반환시 지네릭스 타입을 반환한다 장점 타입 안정성을 제공한다 형변환 error(classCastException)을 방지한다. 의도치 않은 타입의 객체를 저장하는 것을 막고, 저장된 객체를 꺼내올 때 월래의 타입과 다른 타입으로 형변환되어 발생할 수 있는 오류를 줄여준다. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. A..

java/java 기본

11. Collection framework 개념

1. Collection Framework 컬렉션 프레임워크 컬렉션을 다루기 위한 표준화된 프로그래밍 방식 컬렉션 = 객체 1.1. 컬렉션 프레임워크 사용 이유 배열 정적배열 전통적으로 프로그래밍에서 많은 양의 자료(데이터) 처리를 위해서는 배열을 이용 배열의 단점 배열에 담는 자료형은 동일해야 한다. 다른 자료형도 함께 넣지 못함 배열은 데이터의 크기를 알 수 없는 경우에는 부적합하다. 데이터의 크기가 미리 안정해진 경우, 파악하기 어려운 경우 배열 생성이 힘들다 기준을 많이 잡아놓고 다 사용하지 않는다면 메모리만 차지 기준을 낮게 잡아놓으면 기준치초과시 다시 생성해야 함 컬렉션 프레임워크 동적배열 객체만 받음 - 오토박싱을 통한 자료형을 객체로 변환 후 받을 수 있다. 배열의 단점을 보완하기 위한 프..

java/java 심화

JVM 메모리 구조

1. 이전에 알고 있었던 JVM 메모리 구조 Method Area: class가 올라올 때 제일 먼저 static method와 static variable 생성 Call Stack: method 호출시 stack 올라오고 해당 stack에 local valiable 생성 Heap : 인스턴스 - 내부에 instance method, instance valiable 존재 하지만 위의 개념은 반은 맞고 반은 틀렸다. 맞은 점은 iv, im은 객체를 생성해야 사용가능하고 cv, cm은 객체를 생성하지 않아도 사용이 가능하다는 원리가 핵심이고 가장 중요한 부분이다. 틀렸다는 점은 내부적으로 저장된 위치와 어떻게 호출되었는지 이기에 실제로는 몰라도 크게 상관이 없다. 2. JVM 내부 작동 원리 3가지 존재 s..

java/java 핵심 요약

6. oop 요약

01. 객체자향 언어 핵심 개념: 캡슐화, 상속, 추상화, 다형성 객체지향 언어는 기존 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 것 코드의 재사용성 높고 유지보수가 용이 중복 코드 제거 02. class 와 object class: object의 설계도 또는 틀, object를 생성에 사용 설계도 변수 + 메서드 사용자 정의 타입 object: 실제로 존재하는 것, 서로 관련된 변수의 묶음  + 메서드(실제 메서드는 객체에 존재하지 않는다.) 프로그래밍 순서: class 작성 후 class로부터 object를 생성하여 사용한다. 03. object 구성요소 - property(속성) 과 function(기능) object: 속성 + 기능 둘 중 하나만 있어도 상관없다. member: object..

java/java 기본

10. 날짜와 시간 & 형상화

1. calendar 추상 클래스 구현 객체: 서양력, 태국력, 음력 구현 순서 getInstance() -> clear() -> set() 1.1. 주요 method getInstance(); 호출 Calendar가 추상 클래스에서 getInstance를 통해서 구현 객체를 호출해야한다. clear(); 오차 제거를 위한 시간 초기화 clear(); 모든 필드 초기화 clear(Calendar.SECOND); 초 초기화 // 년, 월, 요일, 시간, 분 등 초기화 가능 set(); 원하는 날짜 시간 지정 void set(int field, int value); // 시간만 셋팅할 때는 이걸로만 지정해야함 void set(int year, int month, int date); void set(int y..

wooweee
'java' 카테고리의 글 목록 (2 Page)