래퍼 클래스(Wrapper Class)기본형 변수도 객체로 다루어져야 하는 경우 래퍼 클래스를 이용Integer age = new Integer(30); 박싱 과 언박싱(Boxing, Unboxing)래퍼 클래스는 불변 객체이기 때문에 새로운 객체의 생성 및 참조만 가능기본자료형을 래퍼클래스로 변경하는 것을 박싱, 그 반대를 언박싱이라고 함JDK 1.5 버전 이상에서는 이를 자동으로 처리자동으로 처리하는 것을 오토박싱(AutoBoxing), 오토언박싱(AutoUnBoxing)이라고 함
불변성(Immutability)객체의 정보가 변하지 않는 것 불변 클래스인스턴스가 변경되지 않는 클래스String, 박싱된 원시 클래스, BigInteger, BigDecimal변하는 클래스보다 설계, 구현 및 사용이 용이메모리 할당String 생성시 JVM에서 상수를 이라는 메모리 공간에 할당새로 생성된 String값은 벼경할 수 없고, 이후 동일한 String 이 생성시 String 풀을 참조GC는 String 풀 영역에서는 동작하지 않음
자바에서 자주 사용하는 자료구조에는 List, Set, Map이 존재한다. List, Set은 Collections 아래 존재하고, Map은 따로 존재한다. - 순서가 있는 저장 공간- 가변적인 저장 공간- 배열은 크기가 정해져 있음- 순서대로 검색하기 때문에 데이터가 뒤에 있는경우 속도가 문제 된다. ArrayListJava 1.2에서 도입된 Collection에서 구현Vector 클래스의 단점인 Thread-Unsafe, 낮은 성능을 보완하기 위해 제공됨인덱스를 통한 아이템의 접근을 지원내부적으로 배열을 가지고 있으며, 사이즈가 늘어날 경우 기존 배열의 데이터를 복사하여 처데이터의 개수가 변하지 않는 경우에 효과적잦은 데이터의 변경은 성능이 하락됨탐색은 빠르지만 추가/삭제가 느림 LinkedList각..
JAVA9의 특징에 대하여 정리된 글들이 있어서 찾아서 스크랩 해보았다. - jshell의 제공 - 스크립트 언어와 유사한 shell 제공- JAVA 모듈화 도입 - 필요한 라이브러리만 JAR로 묶어서 경량화 가능 나만 모르고 있던 – Java 9 (Java9 빠르게 훑어 보기)Java 9의 변화와 특징 대충 정리 Java9 특징 훑어보기 from duriepark 유현석 자바9 특징 (Java9 Features) from Chang-Hwan Han
자바의 기본 객체 함수 중 하나인 equal() 함수는 객체의 값을 비교하는 연산자이다. == 연산자는 객체의 주소를 비교하고, equals()는 객체의 값을 비교하는 연산자이다. 보통 equals()는 문자열(String)의 값을 비교하는데 많이 사용한다. Object의 equals() 함수는 다음과 같다. 즉, 객체의 주소값을 비교하여 반환한다. public boolean equals(Object obj) { return (this == obj); } 하지만 String 객체의 equals() 함수는 다음과 같다. 문자열의 char 를 하나하나 비교하여 동일하면 true, 다르면 false 를 반환한다. public boolean equals(Object anObject) { if (this == a..
자바에서 HTML 파싱을 위해서 jsoup 라이브러리를 이용하면 된다. 이 라이브러리를 이용하면 html 을 get, post 방식으로 가져오는 것부터 파싱하는 것까지 한번에 처리할 수 있다. Jsoup 홈페이지(https://jsoup.org/)에서 다운로드 해도 되고, 메이븐으로 디펜던시를 추가해도 된다. org.jsoup jsoup 1.10.1 이 라이브러리를 이용하여 다음의 해외축구 사이트의 순위표를 파싱하여 처리해보면다음과 같이 처리할 수 있다. http://score.sports.media.daum.net/record/soccer/epl/trnk.daum https://jsoup.org/
자바에서 네트워크 프로그래밍을 하는 중에 프록시를 설정하는 방법은 Proxy 클래스를 이용하는 것과 시스템 프로퍼티에 프록시를 설정하는 방법이 있다. 아래의 예에서는 HttpURLConnection 을 이용하는 경우에는 Proxy 클래스를 이용하면 간단하게 처리할 수 있다. 만약 다른 외부 라이브러리를 이용하여 처리하는 경우 해당 라이브러리에 프록시 설정이 없다면시스템 프로퍼티를 이용하여 처리하면 된다. ex) jsoup package sdk.java.web; import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.InetSocketAddress;import ..
서비님이 JSON 라이브러리의 속도 관련해서 분석을 해주셨다. 많이 사용되고 있는 아래의 JSON 파싱 라이브러리 관련해서속도 체크를 한 결과 다음과 같다. JSON.simple ( Yidong Fang )GSON ( Google )Jackson ( FasterXML )JSONP ( Oracle ) 당신의 개발 환경이 빅데이터처리와 같이 주로 큰사이즈의 JSON을 처리해야한다면 Jackson 을 써라. 대용량 환경에서 GSON은 좋지않은 선택임.마이크로 서비스와 분산아키텍처 설정등과 같이 작은 용량의 많은 json 파일을 처리하는 환경이라면 GSON을 써라.대용량과 소용량 모두를 다양하게 처리하는 환경이라면 양쪽에서 2순위 정도를 기록한 JSON.simple 이 좋을수도 있겠다. 나는 작은 용량의 데이터..
트리구조
Date, Calendar 자바에서는 날짜 관련 처리를 지원하기 위해서 Date, Calendar 객체를 제공한다. Date는 JDK 1.0, Calendar는 JDK 1.1 버전에서 지원되었다. Date 가 좀더 간단하고, 이전 버전과의 호환성을 위해 계속 제공하고 있다. Calendar는 Date 객체의 추상화 버전이라고 할 수 있고, Calendar객체를 이용하는 것을 권장한다. 특정 날짜를 지정하거나, 날짜 연산을 할 경우 Calendar를 사용한다. 또한 Calendar를 사용하여 지역화 처리를 할 수 있다. * JDK8 이전의 Date 객체에는 몇가지 문제점이 존재한다. (http://d2.naver.com/helloworld/645609) - 불변 객체가 아니기 때문에 스레드에서 문제가 발생..
어노테이션과 리플렉션을 이용한 메소드 실행시간 출력 클래스에 PrintTime 어노테이션이 설정된 메소드를 찾아서 실행 시간을 출력한다. 어노테이션 @Target 은 어노테이션이 적용될 타입을 설정한다. Method, Filed 등을 설정할 수 있다. 한번에 여러 개를 적용하는 것도 가능하다. @Retention 은 어노테이션이 적용될 시점을 설정한다. Source, Runtime 등을 적용할 수 있다. 적용 시점에 따라 어노테이션 정보가 안 보일 수도 있다. 리플렉션 Class.forName() 메소드를 이용하여 데이터를 생성한다. 메소드와 메소드의 어노테이션 정보를 확인하여 @PrintTime 어노테이션이 적용된 메소드를 실행하고 실행시간을 출력한다. 테스트로 스트림을 이용한 버전과 for 문을 이용..
퀵 소트 퀵소트는 비교정렬의 한 종류이다. 찰스 앤터니 리처드 호어가 개발한 정렬 알고리즘이다. 데이터 양이 크고 섞여 있을 경우 가장 빠른 속도를 낼 수 있다. 알고리즘 1. 리스트 가운데서 하나의 원소를 고른다. (이 원소를 피벗이라 한다.) 2. 피벗 앞에는 피벗보다 작은 원소들이 오고, 피벗 뒤에는 큰 원소들이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. 이렇게 피벗의 위치가 정해진다. 3. 피벗의 앞쪽 리스트와 피벗의 뒤쪽 리스트에 대하여 1, 2 를 반복한다. 소스코드[Java] package sdk.java.example.sort; import java.util.Random; public class QuickSort { /** * 퀵 소트 처리 * * @param array * @param..
- Total
- Today
- Yesterday
- HIVE
- 백준
- Python
- 알고리즘
- oozie
- 다이나믹
- 정올
- SQL
- Tez
- Linux
- 파이썬
- java
- build
- nodejs
- AWS
- Hadoop
- bash
- 하이브
- mysql
- error
- SPARK
- airflow
- S3
- hbase
- HDFS
- emr
- yarn
- ubuntu
- 오류
- 하둡
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |