String 은 Charecter Line을 나타낸다. Character Line 객체는 변형되지 않기 때문에 공통으로 사용할 수 있다.
그 값을 바꾸기 위해서는 필요에 따라 대입을 시켜줘야 한다.

StringBuffer는 Thread를 사용할 수 있는 변형이 가능한 캐릭터라인이다. 
예를 들어,
 StringBuffer z = "start";
라고 한 경우, 
z.append("le")라고 하면 z의 내용은 "startle"가 되며, z.insert(4,"le")라고 하면 z의 내용은 starlet가 된다.

두 클래스 다 직렬화(Serializable)를 지원하는구나. ㅡㅅ-);;

참고 : http://hongsgo.egloos.com/2033998 요 글을 보면, String < StringBuffer < StringBuilder 속도 차이가 있다. 흠... String은 적게 쓰는게 좋군요. ㅡㅅ-);;

참고 : http://cacky.tistory.com/36

  • String : 변경되지 않는 Character 문자열 객체
    문자열이 변경되지 않을 경우에는 String 사용
  • StringBuffer : 값이 변경 가능 // 동기화 가능 : 다중 스레드 일 경우에 사용
    문자열이 변경되고 다중 스레드에서 사용될 경우 사용
  • StringBuilder : 값이 변경 가능 // 동기화 되지 않음 : 단일 스레드일 경우에 사용
    문자열이 변경되고, 단일 스레드에서 사용될 경우 사용
업계에서는 경력자를 요구한다. 아직 검증되지 않은 신입을 발굴하여 고용하는 비용보다는 경력자를 고용하는 것이 더 비용 대비 효과가 좋은 것으로 판단을 하고 있는 것으로 보인다. 그게 틀린 말은 아니라는 생각도 든다. ㅡㅅ-)>

하지만 초보자로서 경력을 쌓아할 수 있는 인재를 발굴하려는 노력도 해줘야하지 않을까?

내가 개발자 신입으로 취업을 하지 못하는 상황이기 때문에 하는 이야기(OTL) 이기도 하지만, 그런 노력이 부족한 것도 사실이라고 생각한다. 현재 나에게 중요한 것은 3년을 비비고살 든든한 산을 구하는 일이 아닐까 생각된다. 

몇번의 면접을 보고나서 입사제의를 거절한 짧은 경험을 바탕으로 조금 적어보고자 한다.

프로그래머 신입 개발자로서 준비해야할 것
  • 자신감 - 어디에 가서든 내 역활을 제대로 수행할 수 있다.
  • 도전정신 - 새로운 것에 대한 도전정신, 그것은 사회 초년병이 가져야할 무기다.
  • 기술력 - 프로그래머로서의 기본은 어디까지나 프로그래밍 능력이다. 코등 스타일, 프로그래밍에 대한 개념을 깨우치자.
  • 친화력 - '다른 사람들과 얼마나 친하게 어울릴 수 있는가' 하는가를 주의깊게 보는 것 같다.
  • 인내심 - 원래 노동 자체가 어려운 일이다. 2~3년 이상을 한 직장에서 꾸준하게 버틸 수 있는 인내심이 필요하다. 2~3년 뒤에는 당신을 찾는 이들이 많은 것을 경험하게 될 것이다. 지금 구인 정보를 봐도 2~3년 경력직을 찾는 이들이 많다.
  • 자격증 - SCJP, OCP 같은 국제공인 자격증은 모르겠다. 하지만 반드시!! '정보처리기사, 산업기사' 자격증을 취득하라.
  • 이력서 - 자신이 가지고 있는 것을 제대로 표현할 수 있는 이력서 양식을 갖추어라.
    • 컨설턴트는 입사만 하면 된다라는 이야기를 한다. 그게 사실일지 모른다. 그럴 생각이라면 제대로 꾸며쓰고 제대로 외우고 자신의 것으로 만들어라. '입사'라는 목적을 위한 수단으로 사용하는 이력서를 제대로 자신의 것으로 숙지하라.
  • 자기PR - 현재는 자기를 제대로 광고하고 자신을 상품화할 수 있는 능력을 필요로 한다.
    • 개인 블로그, 위키, 포트폴리오 기록 등을 남기는 것을 게을리하지 말자.

아직도 나는 구직을 희망하고 있는 백수!!

빠른 시일 안에 백수를 타파하는 것이 나의 목표!! +_+)b 9월은 취업의 달!!

'Programming' 카테고리의 다른 글

[펌] 2010년 전략 기술 톱 10  (0) 2009.10.26
잘 만들어진 코드  (0) 2009.09.07
코딩 스타일  (0) 2009.08.24
Adapter 패턴  (0) 2009.08.18
허니몬, 새삼 느끼다. 공부한 것의 정리에 대해서.  (0) 2009.05.12
Eclipse Galileo 에 Spring IDE 설치를 기준으로 한다.

1. Help -> Install New Software 를 클릭한다.

2. Install 팝업창에서 오른편에 있는 Add를 클릭한다.

3. Name 에 적당한 이름(나는 Spring IDE)을 입력하고, Location 에는
를 입력한다.


4. OK를 클릭한다.

5. 잠시 후 지정된 경로에서 인스톨 정보를 불러와 화면에 보여준다.
보여지는 정보에서 Core 와 Extensions 두 가지만 체크를 하고 Next를 누르고, 과정을 진행하면 설치가 완료된다.


6. 설치가 진행된 후에 이클립스를 다시한번 실행시키고 나면 된다.


7. 정상적으로 설치가 이루어지면, 프로젝트 창 부분에서 새로운 프로젝트를 생성하려고 하면 위 그림과 같은 내용을 확인하여 볼 수 있다.


마침 넷빈즈를 실행시켜보니 스타트 페이지에 다음과 같은 내용들이 나오기에 가만히 보다가 관련한 블로그에서 Java IDE로 무엇을 사용하는지에 대한 투표를 하는 블로그가 연결되어 있었다. 그래서 사이트에 가서 투표를 해봤다. 

결과는 보는 것처럼 이클립스 쪽이 우세한 상황이다. 그 뒤를 넷빈즈가 바짝 뒤쫓고 있다.
JavaFX에 대한 플러그인과 썬사의 적극적인 지원으로 넷빈즈도 자바 IDE로서 조금씩 유용하게 쓰이고 있는 것 같다.
하지만... 아직은 이클립스쪽이 조금 더 낫지. ^^ 힘내라!!



JDK 7 버전이 릴리즈 된지 얼마 되지 않았다.

Host: Ed Ort, Senior Staff Information Engineer, Sun Microsystems
Guest: Danny Coward, Chief Architect for Client Software at Sun Microsystems

두 사람이 나누는 대담을 통해 JDK 7 에 깊이 빠져들어가보자.


JDK 7 : Top 5 New Features

#1 : Modularity
#2 : Multi-Language
#3 : New Garbage Collectors
#4 : Nio.2 File System APIs
#5 : Swing API Additions

#1 : Modularity
// Declaring that a class belongs to a module:
module M;
package P;

public class Foo {...}

//Defining a module in a module-info.java file

module M @1.0 {
requires N @2.1;
requires L @0.5;
}
Java SE 7 : Project Jigsaw
  • Low Level Modularity System in JDK 7
  • Breaking Up the JDK 7 Code
  • Packaging Format
  • Uses Java Language Modularity(JSR 294) // ㅡㅅ-);; JSR 은 뭐지?
http://openjdk.java.net/projects/jigsaw
http://jcp.org/en/jsr/detail?id=294

아래에 나오는 내용은 "Coin Project"란다.


String animal ="...";
   
    if ( animal.equals("dog")) {
        takeForWalk(animal);
    } else if ( animal.equals("cat")) {
        leaveMilkFor(animal);
    } else if ( animal.equals("mouse")) {
        cleanCageFor(animal);
    } else {
        leaveOutside(animal);
    }
※  JDK 7 에서는 switch 에서 case에 char 타입 이외에 String 타입도 사용이 가능하게 됩니다. 조건문이 쉬워지는군요.
    String animal = "...";
   
    switch(animal) {
    case "dog" : takeForWalk(animal);
    case "cat" : leaveMilkFor(animal);
    case "dog" : cleanCageFor(animal);
    default : leaveOutside(animal);
    }

※ Exception 처리
try {
        doWork(file);
    } catch ( IOException ioe ) {
        logger.log(ioe);
        throws ioe;
    } catch ( SQLException sqle ) {
        logger.log(sqle);
        throws sqle;
    }
  JDK 7 에서는 이렇게 가능하다. Ed Ort 씨 처럼 Ah~~ha~~!!
try {
        doWork(file);
    } catch ( final IOException | SQLException ex ) {
        logger.log(ex);
        throws ex;
    }

※ 다음은 Genericㄴ 사용법 : 아직 본인은 generics 사용법에 대해서 익숙하지 못하다. ㅡㅅ-);;;
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
JDK 7 에서는 이렇게 된다고 한다. ㅡㅅ-)b
Map<String, List<String>> anagrams = new HashMap<>();

※ 다음은 Operator
Object anObject;
    ...
    if (anObject == null ) {
        s = "nothing";
    } else {
        s = anObject.toString();
    }
   
    int i;
    ...
    if ( anInteger == null ) {
        i = -1;
    } else {
        i = anIntegerr;
    }
JDK 7 에서는 이렇게 바뀐다고 한다. " ?:  " 요놈인 건데... ㅡㅅ-)> 요건 뭐가 좋은거지? ?: == null 인건가?
   String s = anObject?.toString() ?: "nothing";
    int i = anInteger ?:-1;


#2 : Multi-Language  : supporting non-Java languages at the VM level
JVM에서의 실행속도를 높인다는 건가? Bytecode를 역동적으로!? 메소드 핸들러를 가볍게!? 최적화를 변동적으로?
Broadening the JVM to Accelerate Runtimes
  • Bytecode for Dynamic Invocation
  • Lightweight Method Handles
  • A Variety Of Other Possible Optimizations
JRuby is the Pioneer
The DaVinci Project
http://openjdk.java.net/projects/mlvm

#3 : New Garbage Collectors - Garbage First,
Predictably Low Pauses + Few Full Garbage Collectors + Good Throughput
Greate for a Wide Variety of Application

#4 : Nio.2 File System APIs
DirectorySearchOperations 라는 클래스가 추가된 듯 하다. 자바로 새로운 파일 시스템을 사용해볼 기회가 있었어야 말이지..ㅡㅅ-);; 흠...
  • New Filesystem API File Notifications Directory Operations
  • Asynchronous I/O

#5 : Swing API Additions
  Java의 Swing API에 대한 불만은 여전히 있었고, ㅡㅅ-);; 추가되었다는 내용을 봐도 불만은 여전히 유지가 될 것 같다. 사용자가 필요에 따라서 자신이 디자인한 부분에 대해서 적용할 수 있도록 해주면 좋지 않을까? ㅡㅅ-)~ 현재 나는 조용히 쓰라는 대로 써야지. ㅎㅎ.
JSR 296 : Swing Application Framework
http://jcp.org/en/jsr/detail?id=296

JDK 7 과 관련된 홈페이지(MileStone)
JDK 7 Milestones Homepage
http://openjdk.java.net/projects/jdk7/milestones/
openJDK Project Homepage
http://openjdk.java.net/project/jdk7/
JDK 7 Project Homepage
https://jdk7.dev.java.net/
The Planetarium Blog
http://blogs.sun.com/theplanetarium/

+ Recent posts