본문 바로가기

2017/1011

[Java] 제네릭, 와일드카드 - 제네릭, 와일드카드는 깊게 알수록 복잡하다 [제네릭, 와일드카드 공부하면서 작성한 코드] - https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/generic [제네릭, 파라미터와 타입 파라미터]- java5부터 1) 파라미터 : 값(인자, argument)을 받아 파라미터 변수와 바인딩하고 메서드 내부에서 사용함2) 타입 파라미터- 파라미터인데, 그 값이 타입인 것- 객체를 생성할 때 타입을 받아서 그 타입으로 만듬- 인자를 넘겨받을 때에는 으로 3) 그 타입인 데이터 자체에 관심이 있다는 것- List = new ArrayList() 라면 타입인 데이터 자체에 관심을 가짐 [제네릭의 장점]1) 강력한 타입 체킹 : 인자로 받은 타입과 일치하지않는 데이터를 입력받으면 .. 2017. 10. 28.
[Java] 쓰레드 - 쓰레드, 멀티쓰레드(우선순위, 쓰레드 그룹, 쓰레드풀) 등 [예제 코드] : 같이 올리기에는 너무 많은 양의 코드라 깃헙에 올려둠 - https://github.com/imjinbro/javaBasic/tree/master/src/com/jinbro/source/thread [프로세스와 쓰레드 그리고 멀티테스킹]1) 프로세스 : 프로그램이 메모리를 할당받아 코드를 실행한 것- 1개의 프로그램이 여러개 켜져있으면 각각의 프로세스 : 독립적 2) 쓰레드 : 1가지 작업을 처리하는 실행 흐름 3) 멀티테스킹 : 동시에 2개 이상의 작업을 처리하는 것- 멀티프로세스 OR 멀티쓰레드- 멀티프로세스(1) 각각의 프로세스는 독립적이기때문에 하나의 프로세스가 잘못되어도 다른 프로세스 실행에는 영향X(2) 프로세스는 프로그램을 실행을 위해 동일하게 메모리 공간을 여러번 할당받으.. 2017. 10. 25.
[Java] 표준 API #5 - Calendar, Date, Format, java.time 패키지 [API 알아보기]1) java.util.Date, java.util.Calendar- 시스템 날짜, 시간 관련 유틸리티 객체/* [Date + SimpleDateFormat] 1) 시스템의 날짜, 시간을 읽을 수 있는 유틸리티 2) 날짜를 주고 받을 때 주로 사용 3) java.text.SimpleDateFormat 메서드로 특정 포맷 출력 가능 : 패턴 지정해줘야함 - Format 관련 패키지 : java.text */ import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { //다양한 생성자가 있지만 권장하지않는 어노테이션(Deprecat.. 2017. 10. 19.
[자료구조 알고리즘] 이진트리 - 수식트리 만들기 [수식트리]- 수식을 여러가지로 표현하기위해서 구성해놓는 트리 : 이진트리(연산자 수식 트리로 변경 : 수식트리의 루트노드만 리턴받으면 됨 */ char[] data = exp.toCharArra.. 2017. 10. 17.
[자료구조 알고리즘] 트리, 이진트리, 이진트리 순회 [트리란]1) 비선형자로구조 : 데이터의 관계를 나타내는 것에 비중이 큼2) 뿌리에서 가지를 뻗어나가는 형태의 자료구조 : 계층을 나타냄 [트리 관련 개념]1) 노드 : 트리 구성요소2) 엣지 : 노드와 노드를 연결하는 선3) 루트노드 : 트리구조에서의 최상위노드(서브트리도 포함, 어떤 트리가 문제해결의 중심이냐에 따라)4) 단말노드 : 아래로 다른 노드와의 연결없는 노드5) 내부노드 : 단말노드를 제외한 노드, 관계가 있는 노드6) 레벨 : 같은 높이에 있는 노드들7) 높이 : 루트노드(0)를 기준으로 가지가 총 몇단계에 걸쳐 뻗어져있는가?, 최대 레벨은 높이와 같음8) 서브트리 : 루트노드에서 뻗어져나온 노트들이 또 뻗었을 때 그때 트리 형태9) 형제관계 : 같은 레벨의 노드10) 부모관계11) 포화.. 2017. 10. 13.
[Java] 표준 API #4 - Arrays, Wrapper, Math, Random [src github repo]- https://github.com/imjinbro/javaBasic [API 소개] 1) java.util.Arrays- 배열 수정과 관련한 메서드를 제공하는 유틸리티 클래스 : 모두 static 메서드- 알고리즘 공부할 때 기본적으로 Arrays가 제공하는 메서드를 만들어보는 것도 좋은 듯=> Arrays만이 아니라 util에 있는 것을 똑같이 구현해보는 것도 공부많이될 듯 - 레퍼런스 타입 비교 기준 : java.util.Comparable 구현 클래스 - 메서드 오버라이딩(오름, 내림차순 코딩)=> Arrays.binarySearch가 Comparable 변수 타입 표준화, compareTo를 사용함 : Arrays.=> Arrays.binarySearch 사용하지.. 2017. 10. 12.
[자료구조 알고리즘] BOJ 풀기 [BOJ 풀기]- 자바를 활용한 프로그램 개발에 익숙해지고 문제해결력을 높이기위해서 필요하다고 생각함- 아래 커리큘럼 순서대로 예제가 있음 : 푼 문제는 깃헙에 푸쉬 - https://github.com/imjinbro/algorithm - 어려움.... 그리고 문법 배울 때 그런거지 자료구조 이런거지 했던 것들을 실전에서 써보니깐 확실하게 익혀짐 [알고리즘]- 전체 커리큘럼 : https://offline.startlink.help/hc/ko/articles/217245158 - 기본 : https://code.plus/course/4- 중급 : https://code.plus/course/5- 중급 : https://code.plus/course/6- 중급 : https://code.plus/cour.. 2017. 10. 9.
[Java] 표준 API #3 - String / StringBuffer, Builder / StringTokenizer, Pattern [API 설명]1) java.lang.String- char[]를 래핑- immutable Object : 힙영역에 1번 생성되면 값을 변경할 수 없음=> 힙 영역에서 변경이 불가하다는 것 : 최적화(같은 문자열 == 같은 객체 - 공유), 안전성=> 새로운 객체를 생성해서 참조 객체주소값을 변경하는 것=> 보통 final 클래스로 선언 : 상속해서 Immutable 속성을 없애버릴 수도 있음 - Charset 신경쓰기 : UTF-8, EUC-KR에 따라 한글 인코딩 길이가 다름import java.io.UnsupportedEncodingException; public class StringTest { public static void main(String[] args) { /* byte[]을 Strin.. 2017. 10. 9.
[자료구조 알고리즘] 덱 [덱]- Double Ended Queue- 양쪽 IO 큐 [덱 메서드] 1) isEmpty 2) pushFront3) popFront4) pushLast5) popLast6) peekFront7) peekLast [덱 구현] - https://github.com/imjinbro/datastructure/blob/master/src/main/java/com/jinbro/source/queue/Deque.java [활용하기] - BOJ 덱 활용문제 풀어보기 2017. 10. 4.
[Java] 표준 API #2 - System, Class + java.lang.reflect [System]1) java.lang.System- jvm 위에서 실행되기때문에 운영체제의 모든 기능을 이용할 순 없지만 System으로 운영체제 일부 기능을 사용할 수 있음 (1) exit(2) gc - java.lang.Object.finalize(3) currentTimeMillis / nanoTime(4) getProperty / getPropertiespackage com.jinbro.source.stdapi.system; public class SystemTest { public static void main(String[] args) { /* exit : 프로세스 종료, 0은 정상종료 0이외의 값 비정상종료 System.exit(0); */ /* setSecurityManager : exit.. 2017. 10. 1.