일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 금리인상
- 자바
- etf
- 현금흐름표
- object
- S&P500
- 백준
- 그리디 알고리즘
- 배당성장
- 잉여현금흐름
- 알고리즘
- 객체지향
- Java
- XLF
- StringBuffer
- mco
- 다형성
- javascript
- 제태크
- 무디스
- 프로그래머스
- 인플레이션
- 미국주식
- 접근제어자
- Today
- Total
목록Java (57)
오늘의하루
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 풀이 class Solution { public String solution(int num) { String answer = ""; if(num % 2 == 0){ return answer = answer + "Even"; }else{ answer = answer + "Odd"; } return answer; } } num % 2의 나머지가 0인지 확인하여 짝수만 통과 시킨다. 그 ..
변수(Variable) 하나의 값을 저장할 수 있는 기억공간 변수의 타입(Data type) 변수의 기본형 타입(Primitive type) 논리 = boolean 문자 = char 숫자 정수 = byte, short, int, long 실수 = float, double 구분 1byte 2byte 4byte 8byte 논리형 boolean 문자형 char('') 정수형 byte short int long(L) 실수형 float(f) double 변수의 참조형 타입(Reference type) 기본형을 제외한 나머지(예를 들어 String, System 등) 객체의 주소를 저장한다. (4byte) 변수 선언 시 용어 정리 변수(variable) = 하나의 값을 저장하기 위한 공간 상수(constant) =..
프로세스와 스레드 구분하기 모든 프로세스는 최소한 1개 이상의 스레드를 가지고 있다. 프로세스(공장) : 실행 중인 프로그램, 자원(resources)과 스레드로 구성되어있다. 자원은 메모리, cpu.. 등등 메모리에는 프로세스에 필요한 소스코드, static 멤버, heap(동적 메모리 영역), stack(지역변수, 매개변수, 반환 값 등 일시적인 데이터) 공간을 확보한다. 프로세스 생성 시 PCB블록이 함께 생성된다. 스레드(일꾼) : 프로세서 내에서 실제 작업을 수행하는 것을 말한다. 경량화된 프로세스 : 스레드는 프로세스의 소스코드, static멤버, heap을 공통된 자원으로 사용한다. 스레드는 stack만 별도로 가지고 있다. 싱글 스레드 : 자원 + 스레드 1 멀티 스레드 : 자원 + 스레드..
Java에서 제공하는 애너테이션에는 표준 애너테이션과 메타 애너테이션이 있습니다. 애너테이션 종류 표준 애너테이션 설명 @Override 컴파일러에게 오버라이딩하는 메서드라는 것을 알린다. @Deprecated 사용하지 않을 것을 권장하는 대상에 붙인다. @SuppressWarnings 컴파일러의 특정 경고를 나타나지 않게 해준다. @SafeVarargs 제네릭 타입의 가변인자에 사용한다. @FunctionalInterface 함수형 인터페이스라는 것을 알린다. @Native native메서드에서 참조되는 상수 앞에 붙인다. 메타 애너테이션 설명 @Target* 애너테이션이 적용가능한 대상을 지정한다. @Documented* 애너테이션 정보가 javadoc으로 작성된 문서에 포함되게 한다. @Inheri..
제네릭스는 컴파일 시 타입을 체크해주는 기능으로 객체의 타입 안정성을 높이고 형 변환의 번거로움을 줄여줌으로써 코드가 간결해질 수 있다. 제네릭 클래스 선언 클래스를 작성할 때 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()..
TreeSet은 이진 탐색 트리(binary search tree)로 구현되어있으며, 범위 탐색과 정렬에 유리합니다. 이진 트리의 경우 한개의 노드가 최대 2개의 하위 노드를 갖게 됩니다. TreeSet의 기본형태 및 특징 부모를 기준으로 작은 값은 왼쪽에 큰 값은 오른쪽에 저장된다. 데이터가 많아 질수록 비교 횟수가 증가하기 때문에 추가, 삭제에 효율성이 떨어진다. class TreeNode{ TreeNode left; // 왼쪽 자식 노드 Object element; // 저장할 객체 TreeNode right; // 오른쪽 자식 노드 } 데이터의 저장 boolean add(Object o) equals()와 hashCode()를 자동으로 호출한다. Set은 중복을 허용하지 않는다. TreeSet의 ..