Jini's Blog

Ing...

  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Downloads
    • Dvd
    • Games
    • Software
      • Office
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Uncategorized

New Features Java 1.7(JDK 1.7)

 Jini     오전 1:10     JAVA     No comments   

■ The New Objects Class
  1) Objects.requireNonNull(T), Objects.requireNonNull(T, String)
    #. 아래 Person 객체 생성시 newLastName이나 newFirstName에 null이 들어갈 경우 NullPointerException 발생.
    #. Not Null임을 보장하고 있으므로 해당 Property를 사용할 때 Null 검사를 생략할 수 있음.
public class Person {

    private String lastName;
    private String firstName;
 
    public Person(final String newLastName, final String newFirstName) {
        this.lastName = Objects.requireNonNull(newLastName, "Last name cannot be null.");
        this.firstName = Objects.requireNonNull(newFirstName, "First name cannot be null.");
    }
 
    public String getLastName() {
        return lastName;
    }
    
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    
    public String getFirstName() {
        return firstName;
    }
    
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
}


  2) Objects.toString(Object), Objects.toString(Object, String)
    #. 인자가 하나인 메소드는 전달받은 Object가 Not null인 경우 Object의 toString() 결과를 리턴하며, null인 경우 "null"을 리턴한다.
    #. 인자가 둘인 메소드는 전달받은 Object가 Not null인 경우 Object의 toString() 결과를 리턴하며, null인 경우 전발받은 String 메시지를 리턴한다.
    #. toString() 메소드를 Override할 때 Null 체크를 별도로 하지 않아도 되는 편리함이 있다.
public class Bar {
    private Foo foo;
    private Bar parent;

    @Override
    public String toString(){
        return "Bar {foo = " + (foo == null ? "null" : foo.toString()) + ", parent = " + (parent == null ? "o parent, orphan" : parent.toString()) + "}";
    }
}
위 코드를 아래와 같이 수정할 수 있다.
public class Bar {
    private Foo foo;
    private Bar parent;

    @Override
    public String toString(){
        return "Bar {foo = " + Objects.toString(foo) + ", parent = " + Objects.toString(parent, "no parent, orphan") + "}";
    }
}
소스출처

  3) Objects.hash(Object...), Objects.hashCode(Object)
    #. Objects.hash(Object...) : 입력받은 모든 Object들에 대한 HashCode를 리턴한다.
    #. Objects.hashCode(Object) : Object가 null이면 "0"을 리턴, 그렇지 않으면 Object.hashCode()를 리턴한다.
public class Bar {
    private Foo foo;
    private Bar parent;

    @Override
    public int hashCode(){
        int result = 17;

        result = 31 * result + (foo == null ? 0 : foo.hashCode());
        result = 31 * result + (parent == null ? 0 : parent.hashCode());

        return result;
    }
}
위 코드를 아래와 같이 수정할 수 있다.
public class Bar {
    private Foo foo;
    private Bar parent;

    @Override
    public int hashCode(){
        return Objects.hash(foo, parent);
    }
}
소스출처

  4) Objects.equals(Object,Object), Objects.deepEquals(Object,Object)
    #. Objects.equals(Object,Object) : 두 입력값이 null이면 true를 null이 아니면 Object.equal(Object) 결과를 리턴한다.
    #. Objects.deepEquals(Object,Object) : 두 입력값이 Arrays Type인 것을 제외하고는 Objects.equals() 메소드와 동일하다.
public class Bar {
    private Foo foo;
    private Bar parent;

    @Override
    public boolean equals(Object obj){
        if (obj == this) {
            return true;
        } 

        if (obj instanceof Bar) {
            Bar other = (Bar) obj; 

            if (foo != other.foo) {
                if (foo == null || !foo.equals(other.foo)) {
                    return false;
                }
            } 

            if (parent != other.parent) {
                if (parent == null || !parent.equals(other.parent)) {
                    return false;
                }
            } 

            return true;
        } 

        return false;
    }
}
위 소스를 아래와 같이 변경할 수 있다.
public class Bar {
    private Foo foo;
    private Bar parent;

    @Override
    public boolean equals(Object obj){
        if (obj == this) {
            return true;
        } 

        if (obj instanceof Bar) {
            Bar other = (Bar) obj; 

            return Objects.equals(foo, other.foo) && Objects.equals(parent, other.parent);
        } 

        return false;
    }
}
소스출처

  5) Objects.compare(T,T,Comparator c) : 입력받은 두 값이 null인 경우에도 정상동작하며, true를 리턴해준다. null이 아닌 경우에는 c.compare(T, T) 결과를 리턴한다.

■ Collections class에 아래 3개의 method 추가 : Iterator를 만들 때 Null인 경우 아래의 Method를 사용할 경우 Null 처리가 간편해짐
  1) Collections.emptyIterator
  2) Collections.emptyEnumeration
  3) Collections.emptyListIterator
import java.util.Collections;
import java.util.Iterator;
public class Main {

  public static void main(String[] args) {
  
  }
  public static Iterator getMy(){
    String nullFlag = null;
    if(nullFlag == null){
      return Collections.emptyIterator();
    }
    return null;
  }
}
소스출처

참고자료 Post

계속...

정리하기 전에 링크부터

http://www.rapidprogramming.com/technology/differences-between-java-16-java-17-jdk-16-jdk-17-934
http://radar.oreilly.com/2011/09/java7-features.html
http://marxsoftware.blogspot.kr/2011/03/jdk-7-new-interfaces-classes-enums-and.html
http://eclipse.or.kr/wiki/Java_1.7c
http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
http://en.wikipedia.org/wiki/Java_version_history#Java_SE_7_.28July_28.2C_2011.29
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Design Patterns

 Jini     오전 12:20     JAVA     No comments   



01. Iterator Pattern
왜 for문을 사용하지 않고 Iterator를 구현할까? 기존 구문 변경없이 loop 순환이 가능함. 즉 특정 구현에 의존하지 않을 수 있게 디자인이 가능함.


02. Adapter Pattern


03. Template Pattern


04. Factory Method Pattern


05. Singleton Pattern


06. Prototype Pattern


07. Builder Pattern


08. Abstract Factory Pattern


09. Bridge Pattern


10. Strategy Pattern


11. Composite Pattern


12. Decorator Pattern


13. Visitor Pattern


14. Chain of Responsibility Pattern


15. Facade Pattern


16. Mediator Pattern


17. Observer Pattern


18. Memento Pattern


19. State Pattern


20. Flyweight Pattern


21. Proxy Pattern
필요할 때 생성한다.


22. Command Pattern

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Redmine Text Format

 Jini     오후 1:22     Redmine     1 comment   

1. 글자색상 변경

%{color:red}dev%



2. 음영색상 변경

%{background:lightgreen} lightgreen%


3. 문단 넘버링(띄어쓰기 주의)

# 큰 제목
## 큰제목의 하위 제목
# 두번째 큰 제목
# 세번째 큰 제목

실제로는 다음과 같이 출력됨

1. 큰 제목
    1. 큰 제목의 하위 제목
2. 두번째 큰 제목
3. 세번째 큰 제목


4. 문단 단계화(띄어쓰기 주의)

* 큰 제목
** 큰제목의 하위 제목
* 두번째 큰 제목
* 세번째 큰 제목

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Visual Studio 2013 팁 및 단축키(이클립스랑 비교)

 Jini     오후 9:54     Visual Studio     1 comment   

이클립스에는 있는데 VS에는 없어서 있었으면 하는 기능 중 실제로 있었는데 내가 몰랐던 것들



1. 한 줄 삭제

이클립스는 ctrl + d / VS는 ctrl + shift + l


2. 한 줄 그대로 복사하여 아래로 붙여넣기(위로 붙여넣기는 모르겠다.)

이클립스는 ctrl + alt + ↓ / VS는 복사하고자 하는 라인에서 영역을 선택하지 않은 상태로 ctrl + c 후 다시 ctrl + v



이클립스에는 없는데 VS에는 있는 기능중 깜짝 놀랄만한 것.


1. 코드가 도구상자에 등록이 되고 도구상자에 있는 코드를 드래그 해서 다시 가져올 수 있음.

코드를 드래그 해서 도구상자에 넣으면 끝. 가져올 때도 일반 Control 가져오듯이 드래그해서 가져오면 됨.


그 외 단축키


1. Code Indent

이클립스는 ctrl + I / VS는 ctrl + k 후 ctrl + D


2. 대응하는 괄호 찾기

이클립스는 ctrl + shift + p / VS는 ctrl + [


3. 대소문자 변환

이클립스는 ctrl + shift + y, ctrl + shitf + x / VS는 ctrl + u , ctrl + shift + u


4. 창분할(단축키는 아님)

[세로창분할]
이클립스는 ctrl + "{" / VS는 창 → 새창 → 창 → 새 세로 탭 그룹

[가로창분할]
이클립스는 ctrl + "_" / VS는 창 → 분할

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

윈도우(Window)에서 사용 포트 확인 및 프로세스 KILL

 Jini     오후 10:11     No comments   

1. 특정포트가 열려있는지 확인
- netstat -na | findstr "포트"

2. 열려 있는 포트의 PID 확인
- netstat -nao | findstr "포트"

3. PID 찾기
- tasklist | findstr "PID번호"

4. 프로세스 죽이기
- taskkill /f /pid "PID번호"
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
최근 게시물 이전 게시물 홈

Popular Posts

  • 한글이 3byte인 경우 캐릭터셋 확인
    오라클의 문자집합이 KO16KSC5601, KO16MSWIN949 인 경우는 2 Byte로 한글을 인식. UTF8/AL32UTF8의 경우 3Byte로 한글을 인식. 단 UTF8/AL32UTF8의 경우는 한글 정렬이 가능하다는 장점이 있다. 캐릭...
  • 문법에서 문장까지(대명사)
    1. 대명사 ■ 인칭대명사 1) 대명사는 숙어 동사(phrasal verb) 사이에 쓴다. * I cut up half of one large banana and put it in cereal. 2) 소유격 대명사와 관사는 같이 쓸 수 ...
  • Redmine Text Format
    1. 글자색상 변경 %{color:red}dev% 2. 음영색상 변경 %{background:lightgreen} lightgreen% 3. 문단 넘버링(띄어쓰기 주의) # 큰 제목 ## 큰제목의 하위 제목 # 두번째 큰 제목 # ...
  • 오라클 한글깨짐 현상해결
    1. 레지스트리 편집기 실행 : 시작 -> 실행 -> regedit 2. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 하위 경로 폴더중 이름이 "NLS_LANG"인 속성의 데이터 확인 3. "...
  • Visual Studio 2013 팁 및 단축키(이클립스랑 비교)
    이클립스에는 있는데 VS에는 없어서 있었으면 하는 기능 중 실제로 있었는데 내가 몰랐던 것들 1. 한 줄 삭제 이클립스는 ctrl + d / VS는 ctrl + shift + l 2. 한 줄 그대로 복사하여 아래로 붙여넣기(위로 붙여넣기는 모...

Recent Posts

Recent Posts Widget

Blog Archive

  • ►  2023 (4)
    • ►  3월 (1)
    • ►  2월 (1)
    • ►  1월 (2)
  • ►  2022 (1)
    • ►  2월 (1)
  • ►  2020 (8)
    • ►  7월 (1)
    • ►  4월 (3)
    • ►  3월 (4)
  • ►  2018 (1)
    • ►  7월 (1)
  • ►  2015 (1)
    • ►  5월 (1)
  • ▼  2014 (5)
    • ▼  8월 (1)
      • New Features Java 1.7(JDK 1.7)
    • ►  7월 (1)
      • Design Patterns
    • ►  6월 (1)
      • Redmine Text Format
    • ►  5월 (1)
      • Visual Studio 2013 팁 및 단축키(이클립스랑 비교)
    • ►  1월 (1)
      • 윈도우(Window)에서 사용 포트 확인 및 프로세스 KILL
  • ►  2013 (10)
    • ►  12월 (1)
    • ►  11월 (1)
    • ►  9월 (2)
    • ►  8월 (3)
    • ►  7월 (3)
  • ►  2012 (1)
    • ►  3월 (1)

Categories

  • 객체지향 (1)
  • 도서요약 (1)
  • 문법에서 문장까지 (2)
  • 일상 (1)
  • 자기계발 (1)
  • 책 (1)
  • 키보드 (1)
  • 키크론 (1)
  • blogspot (2)
  • error (1)
  • exception (1)
  • GIT (1)
  • JAVA (6)
  • JUNIT (1)
  • K8 PRO RGB (1)
  • kafka (1)
  • markdown (1)
  • mongodb (2)
  • mongotemplate (1)
  • optional (1)
  • Oracle (4)
  • Redmine (1)
  • spring (1)
  • stackedit (1)
  • troubleshooting (1)
  • Visual Studio (1)
  • Webflux (1)

Unordered List

Pages

  • 홈

Text Widget

Categories

Tags

Facebook

  • Home
  • Features
  • _Multi DropDown
  • __DropDown 1
  • __DropDown 2
  • __DropDown 3
  • _ShortCodes
  • _SiteMap
  • _Error Page
  • Documentation
  • Video Documentation
  • Download This Template

Footer Menu Widget

  • Home
  • About
  • Contact Us

Social Plugin

JINI. Powered by Blogger.

Copyright © Jini's Blog | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates