일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- FCF
- StringBuffer
- etf
- 기업분석
- 배당성장
- 알고리즘
- javascript
- 백준
- 금리인상
- 자바
- 그리디 알고리즘
- 금리인하
- 주식
- 접근제어자
- 잉여현금흐름
- 주린이
- mco
- 무디스
- 다형성
- object
- 인플레이션
- 미국주식
- 현금흐름표
- 오버라이딩
- Java
- XLF
- 객체지향
- S&P500
- 프로그래머스
- 제태크
- Today
- Total
목록자바 (57)
오늘의하루
제네릭스는 컴파일 시 타입을 체크해주는 기능으로 객체의 타입 안정성을 높이고 형 변환의 번거로움을 줄여줌으로써 코드가 간결해질 수 있다. 제네릭 클래스 선언 클래스를 작성할 때 Object 타입 대신 T와 같은 타입 변수를 사용한다. class TEST{ Object item; void setItem(Object item){this.item = item;} Object getItem(){return item;} } // Object 대신 T와 같은 타입변수 사용 class Test{ T item; void setItem(T item){this.item = item;} T getItem(){return item;} } 참조 변수, 생성자에 T 대신 실제 타입을 지정하면 형 변환 생략이 가능하다. Test ..
Enum은 관련된 상수들을 같이 묶어 놓은 것을 의미합니다. Enum // Enum 사용 x class Card{ // 무늬 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; // 숫자 static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; final int kind; final int num; } 이 경우에 if(Card.CLOVER == Card.TWO)를 하면 true가 나오지만 이것은 의미적으로 맞지 않습니다. CLOVER은 무늬이고 TWO는 숫자인데 이걸..
비트 연산자에는 AND(&), OR(|), XOR(^) 이렇게 3가지가 있습니다. 이 외에도 비트 반전(~), SHIFT 연산()이 있습니다. 비트 연산자로 홀수 짝수 구분하기 class Test{ boolean check(int x){ return ((x&1) == 1); } } 실행 과정 예를 들어 매개변수 x에 3이 대입되었다고 가정한다. 3은 2진수로 0011이 된다. 0011 & 0001을 계산하면 결과는 2진수로 0001, 10진수로 1이 나온다. 1 == 1은 같기 때문에 true를 반환한다. 예를 들어 매개변수 x에 4가 대입되었다고 가정한다. 4는 2진수로 0100이 된다. 0100 & 0001을 계산하면 결과는 2진수로 0000, 10진수로 0이 나온다. 0 == 1은 다르기 때문에 f..
Generics란 무엇인가? 컴파일 시 타입을 체크해주는 기능을 말하며 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄일 수 있다. 실행시 에러가 발생하는 것을 컴파일 에러로 만들어 준다. JDK 1.5 이후 Generics를 꼭 사용해주는 것이 좋다. ArrayList tvList = new ArrayList(); tvList.add(new Tv()); // ok tvList.add(new Audio()); // Error! Tv 타입의 객체만 저장할 수 있는 ArrayList타입의 참조변수 tvList가 만들어졌다. 예제 ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30"); Integer i = (Integer)..
Java에서 가장 중요한 개념인 객체지향에 대해 공부한 자료입니다. 객체지향 개념 코드의 재사용성을 높이고 코드의 관리를 수월하게 하며 신뢰성이 높은 프로그램의 개발을 가능하게 만들어준다. 클래스와 객체의 정의 클래스란 객체를 정의해 놓은 것을 말한다. 객체란 실제로 존재하는 개념이다. 객체는 인스턴스를 포함하는 일반적인 의미이다. 인스턴스화란 클래스로부터 인스턴스를 생성하는 것을 말한다. 객체의 구성 요소 객체에는 속성(변수)과 기능(메서드)으로 이루어져 있다. 객체에 있는 속성과 기능을 객체의 멤버라고 부른다. 인스턴스 생성과 사용 인스턴스를 생성하는 방법은 일반적으로 "클래스명 참조 변수명 = new 클래스명()"이다. Tv t; // 객체를 다루기 위한 참조변수를 선언 Tv t = new Tv()..
HashMap과 Hashtable은 Map 인터페이스를 구현한 대표 클래스이고 데이터를 키와 값 쌍으로 저장한다. HashMap(신버전)은 동기화 x, Hashtable(구버전)은 동기화 o Map은 데이터의 순서가 없으며, 키의 중복은 허용하지 않고 값의 중복은 허용한다. HashMap 순서가 없는 Map에서 순서를 유지하려면 LinkedHashMap 클래스를 사용하면 된다. 해싱(hashing) 기법으로 데이터를 저장(put)하며 데이터가 많아도 검색 속도가 빠르다. hashing이란? 해시 함수를 이용해서 해시 테이블에 데이터를 저장하고 읽어온다. 해시 테이블은 배열(접근성)과 LinkedList(변경 유리)가 조합된 상태이다. 더보기 TreeMap 범위 검색과 정렬에 유리한 컬렉션 클래스이며 Ha..
TreeSet은 이진 탐색 트리(binary search tree)로 구현되어있으며, 범위 탐색과 정렬에 유리합니다. 이진 트리의 경우 한개의 노드가 최대 2개의 하위 노드를 갖게 됩니다. TreeSet의 기본형태 및 특징 부모를 기준으로 작은 값은 왼쪽에 큰 값은 오른쪽에 저장된다. 데이터가 많아 질수록 비교 횟수가 증가하기 때문에 추가, 삭제에 효율성이 떨어진다. class TreeNode{ TreeNode left; // 왼쪽 자식 노드 Object element; // 저장할 객체 TreeNode right; // 오른쪽 자식 노드 } 데이터의 저장 boolean add(Object o) equals()와 hashCode()를 자동으로 호출한다. Set은 중복을 허용하지 않는다. TreeSet의 ..
HashSet은 Set인터페이스를 구현한 대표 클래스이며 순서를 유지하지 않는 데이터의 집합이고 데이터의 중복을 허용하지 않는다. 순서를 유지하고 싶다면 LinkedHashSet을 사용하면 된다. HashSet의 주요 Method 생성자 HashSet() : 기본 생성자 HashSet(Collection c) : Collection(c)을 저장하는 생성자 HashSet(int initialCapacity) : 초기 용량(initialCapacity) 설정 생성자 용량이 모자라면 내부적으로 초기 용량의 x2만큼 늘린다. HashSet(int initialCapacity, float loadFactor) : 용량을 x2 하는 시점(loadFactor)을 지정해준다. 예: loadFactor가 0.8일 경우 ..
컬렉션에 저장된 데이터를 접근하는 데 사용되는 인터페이스를 의미합니다. ListIterator(양방향)은 Iterator(단방향)의 접근성을 향상한 것이다. Iterator Method boolean hasNext() : 읽어 올 요소가 남아 있는지 확인 ( 있다면 true, 없다면 false) Object next() : 다음 요소를 읽어온다. hasNext()로 요소가 있는지 확인하고 next()를 사용하는 게 안정적이다. void remove() : 요소를 삭제한다. next() 호출 후 remove()를 호출해야 한다. void forEachRemaining(Consumer
컬렉션(Collection)이란? 여러 객체를 모아 놓은 것을 의미합니다. 프레임웍(Framework)이란? 표준화, 정형화된 체계적인 프로그래밍 방식을 말합니다. 컬렉션 프레임웍(Collection Framework) 컬렉션을 다루기 위한 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스(Collection Class) 제공 저장, 삭제, 검색, 정렬 등등 Collection Class에는 Vector, ArrayList, HashSet 등이 있다. java.util 패키지에 포함되어 있다. (JDK 1.2부터 제공) Collection Framework의 핵심 인터페이스 List와 Set은 Collection 인터페이스의 자식 인터페이스이다. List 순서가 있는 데이터의 ..