본문 바로가기

프로그래밍/JAVA

JAD Decompiler(Enhanced Class Decompiler) 마켓플레이스에서 Find 입력창에 decompile로 검색해서 Enhanced Class Decompiler를 설치후 preference -> decompiler - default class decompiler JD CORE로 설정 Preferences>General>Editors>File Associations Click "*.class without source " 하단(Associated editors)에서 Class Decompiler Viewer 선택 후 "Default" Click "Apply and close" click
java 날짜 관련 Date,Calendar,SimpleDateFormat 문제점 오늘도 어김없이 java와 관련된 이야기를 포스팅 하려한다. 요 근래 자주 java와 관련있는 포스팅만 하는 것 같다. 다른 것들도 해야 되는데.. 아무튼 오늘은 java의 날짜와 관련된 포스팅을 한다.java의 날짜 관련API(Date, Calendar 기타 등) 설계부터가 잘못 되었고 구현조차 잘못된 클래스로 java의 가장 악명 높은 대표적인 클래스이다. 기존의 날짜 관련 API들은 문서없이 사용하기 쉽지 않고 일관성도 없는데다 알 수 없는 상수들을 남발한다. 한개씩 살펴보자.이상한 월 상수@Test public void constantTest() { Calendar calendar = Calendar.getInstance(); calendar.set(2017, 6, 18); SimpleDateFo..
JAVA8 util.time Java 1.8 날짜 정리자바 1.8 이전에는 날짜 연산이 쉽지 않았다. Joda 같은 라이브러리들을 쓰면 된다고 하는데, 필자는 Util 클래스에서 내부적으로 Calendar를 사용하여 연산하고 Date/long/String 간의 변환을 통하여 사용해왔다. 그러던 와중에 자바 1.8의 새로운 날짜들을 보니 신세계가 열렸다. 그래서 간단하게 소개하고 자주 사용될 만한 예제들도 나열하려 한다.먼저 중요하다고 생각되는 클래스들을 소개하겠다.클래스날짜 (Temporal)Instant : machine time에 유용한 1970년 1월 1일부터 시간을 세는 클래스 (millisecond 뿐만 아니라 nanosecond까지 센다)LocalDate : [년,월,일]과 같은 날짜만 표현하는 클래스 (시간은 포함하지 ..
java json 라이브러리 별 parser 속도 비교. 우선, 테스트 진행한 json 라이브러리 후보군은 JSON.simple ( Yidong Fang )GSON ( Google )Jackson ( FasterXML )JSONP ( Oracle )과 같음. 상기 라이브러리를 이용한 비교적 큰 사이즈의 json 문서 파싱 속도 벤치마킹 결과를 java 어플리케이션 성능평가/모니터링 도구를 개발하는 Takipi에서 공개. 벤치마크는 190MB 짜리( https://github.com/zeMirco/sf-city-lots-json )와 1KB 짜리( http://www.json-generator.com/ ) JSON 파일을 파싱하는 속도를 측정. AWS c3.large 인스턴스에서 큰 파일은 라이브러리당 10회 씩, 작은 파일은 10,000회 씩 수행한 결과를 정..
구분자로 ArrayList에 담기 1. 문자열을 배열로 만든 후 for 문을 이용해서 List 에 add 하는 방법 2. Arrays.asList() 를 이용하는 방법 1번 예제 코드 String str = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"; ArrayList list = new ArrayList(); String [] toColumnNm = str.split(","); for( int i = 0; i < toColumnNm.length; i++ ) { list.add(toColumnNm[i]); } 2번 예제 코드 String str = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"; List obj = Arrays.asList(str.split(",")); 2번이 확실히 깔끔함. 그렇다면, 성능 비교..
OOP? 객체지향 OOP객체 지향 프로그래밍(Object Oriented Programming), 객체라는 기본단위로 나누고 객체의 상호작용을 서술하는 방식, 쉽게 현실 세계를 프로그램 언어로 서술한 것추상화어떤 영역에서 필요로하는 하는 속성이나 행동을 추출하는 작업여러 개체들의 집합을 클래스라고 부름 (일반화하다)캡슐화관련 있는 데이터와 함수를 하나의 단위로 묶는 것약속된 부분을 제외한 나머지 부분을 캡슐로 감싸서 숨겨 버린다.(즉, 원하는 부분을 외부로 부터 숨길 수 있음)사용자는 내부의 부분을 모르더라도, 약속된 부분을 통하여 사용할 수 있다.보통 클래스에서 숨길 부분은 private로 두며, 함수, 즉, 사용자가 조작하여 원하는 값을 얻을 수 있는 약속된 기능을 public에 둔다정보 은닉클래스 외부에서 알 필요가..
자바 정규식 정규표현식 소개정규표현식(Regular expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식언어입니다. 정규표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해서 지원하고 있습니다. 자바에서도 정규표현식을 J2SE 1.4 부터 지원하기 시작했으며, 관련된 주요 클래스들은 java.util.regex 패키지에 포함되어 있습니다. 정규표현식의 사용정규표현식을 사용하여 문자열의 형식을 검사하는 방법은 다음과 같습니다.Pattern.matches(정규표현식, 검사할문자열); 위의 구문은 boolean 값을 리턴합니다. 검사할 문자열이 정규표현식의 형식에 맞다면 true, 그렇지 않으면 false를 리턴합니다. 정규표현식다음의 정규표현식들은 실무에서 자주 사..
변수 토글 방법 1. bool 타입 – 제일 쉬운 경우.. 별로 설명이 필요없는 듯.bool toggle; … toggle = !toggle; 2 . 1과 -1의 토글 – 마찬가지로 아주 쉽다. 2와 -2, 3과 -3의 토글의 경우에도 사용할 수 있겠지만, 그런 토글을 사용할 일은 아직까지 한번도 없었다.int toggle = 1; … toggle = -toggle; 3. 0과 1의 토글 – 그냥 bool로 해도 되겠지만, 0과 2의 토글, 0과 3의 토글 등의 경우에도 사용이 가능하고, 이렇게 0과 어떤 숫자와의 토글을 써야하는 때가 의외로 자주 있다. 보통의 경우 이렇게 많이 쓴다.int toggle = 1; … if (toggle == 1) toggle = 0; else toggle = 1; 조금 더 생각을 한다면..