프로그래밍/Java 49

JRebel 대체제인 DCEVM을 적용해보자.

layout: post title: "DCEVM(Dynamic Code Evolution VM)을 적용해보자" description: "DCEVM(Dynamic Code Evolution VM)을 적용해보자" date: "2019-03-13 18:16" tags: [java,hot swap, programming] comments: true DCEVM을 설치 해서 조금 더 빠르게 수정된 부분을 반영하여 Tomcat이 해당 수정 코드를 빠르게 반영 하고자 설치하려고 한다. 원래는 JRebel이라는 유료 툴을 이용하면, 빠르게 Hot Swap하여 수정 된 코드를 반영할 수 있다. 그러나 연간 $550정도로 구독 모델이 굉장히 비싸서 사용하기가 어려워서 대체제를 찾다가 발견한 것이 바로 DCEVM이다. 아래와..

프로그래밍/Java 2019.03.13 (3)

Class JavaLaunchHelper is implemented in both Error on Mac OS

Mac에서 Java run 안 될 때! Class JavaLaunchHelper is implemented in both ~ 라는 에러를 발견 한다면, 운이 나쁜 겁니다….ㅠㅠ 😭😭😭 이럴때는 어떻게 해야하는지 알려 드리겠습니다. 스택 오버 플로우를 찾아 보니 아래와 같습니다. 이 문제에 대해서 java9 or java8.152 업데이트에서 fixed 될 예정이라네요. You can find all the details here: IDEA-170117 “objc: Class JavaLaunchHelper is implemented in both …” warning in Run consoles It’s the old bug in Java on Mac that got triggered by the Java ..

Try-with-resources를 사용하자!!

Try-with-resources 사용하기 JDK7에서 생겨난 자원 자동 종료?라고 생각하면 된다. 물론, 다되는 것은 아니고 Autocleable을 구현한 클래스만 사용가능하다. String readDataFromFile(String filePath) { BufferedReader br = null; String data = ""; try { br = new BufferedReader(new FileReader(filePath)); data = br.readLine(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { br.close(..

프로그래밍/Java 2017.05.18 (2)

Top 10 Mistakes Java Developers Make

Top 10 Mistakes Java Developers MakeTop 10 Mistakes Java Developers Make자바 개발자가 가장 자주 실수하는 10가지에 대해 알아보자.1. ConvertArray To ArrayList배열을 ArrayList로 변환할때, 개발자들은 종종 이렇게 한다 :List list = Arrays.asList(arr); Arrays.asList() Arrays 안에 있는 private static class ArrayList를 반환 할 것이다. 그리고 그것은 java.util.ArrayList 클래스 안에 있는 것이 아니다. 그것은 java. util.Arrays.ArrayList 클래스 set() , get (), contains() 메소드들을 가지고 있다. 그..

Java 8 시작 하기

Edit Java 8 시작하기 언어:JAVA 티스토리 도대체 왜 함수형인가? 사실 필자도 함수형을 잘 모른다. 왜냐? Java8도 아직 잘 모른다. 내가 경헌한 건 JavaScript, Python, Ruby 정도에서 First Class Function이 유사하게 가능하다는 느낌정도? 물론, JavaScript는 충분히 느낄수 있는 일급 객체를 지원한다. 요즘 대세인 Scala, Closure등 여러가지 함수형 언어가 실무에서도 쓰이고 있는 실정이다. 자, 그럼 자바에서 도대체 뭐가 바뀐 건지 천천히 따라가보자. 첫 째는 람다의 등장이다. 많은 언어에서 람다를 이미 지원 해주었다. ( ㅠㅠ 자바는 업데이트가 최소 8년은 늦었다…)C#에 이미 많은 부분에서 지고 있는 실정… 사례로 한 번 알아보자 - 람..

Java BigInteger class 사용하기

Edit 주로 int 형 타입을 사용하게 되는데, 이 정수형 타입은 허용 가능한 범위가 존재합니다. 그럴때는 Java 언어에서 지원하는 BigInteger Class, BigDecimal Class를 사용할 수 있습니다. 해당 클래스 또한 표현 가능한 범위가 있는 것으로 알고 있는데, 대략 100억은 가볍게 표현 가능합니다.사용하는 방법은 간단합니다. (참고로 Class가 무엇인지, API가 무엇인지는 알고 계셔야 합니다.) 1. public void longNumberSum(long x, long y) 2. { 3. BigInteger a = BigInteger.valueOf(x); 4. BigInteger b = BigInteger.valueOf(y); 5. BigInteger result = a.a..

예외처리 관련 기본기

예외 블랙홀try{ }catch(SQLException e){ //예외를 잡고는 아무것도 하지 않는 경우 } 위 코드도 좋지 않는 경우이지만, 아래 코드 또한 좋지 않은 습관이다.}catch(SQLException e){ System.out.println(e); } }catch(SQLException e){ e.printStackTrace(); } 예외처리 할 때 반드시 지켜야 할 핵심 원칙은 한 가지다. 모든 예외는 적절하게 복구 되든지 아니면 작업을 중단시키고 운영자 또는 개발자에게 분명하게 통보 되어야 한다. 위의 코드 보다는 아래의 코드가 훨씬 나은 예외처리라고 한다.}catch(SQLException e){ e.printStackTrace(); System.exit(1); } 물론, 실제로 이렇..

Java언어에서의 중첩 클래스

중첩 클래스Nested class : 다른 클래스 내부에 정의 되는 클래스를 말함. static class: 독립적으로 오브젝트로 만들어 질 수 있는 것을 말함.inner class: 자신이 정의된 클래스의 오브젝트 안에서만 만들어질 수 있는 것을 말함. member inner class: 멤버 필드처럼 오브젝트 레벨에서 정의 됨.local class: 메소드 레벨에 정의 됨.anonymous inner class: 익명 내부 클래스라고 불리며, 이름이 없는 클래스이고, 범위는 선언 위치마다 접근 할 수 있는 범위가 다르다. Anonymous inner class이름을 갖지 않는 클래스이며, 클래스 선언과 오브젝트 생성이 결합된 형태로 만들어지며, 상속할 클래스나 구현할 인터페이스를 생성자 대신 사용하고..

반응형