본문 바로가기

Dev. Java

(76)
static 블록은 언제 사용하는가? 객체는 여러 개를 생성하지만, 한 번만 호출되어야 하는 코드가 있다면, static 블록을 사용하자.static 블록은 객체가 생성되기 전에 한 번만 호출되고, 그 이후에는 호출이 불가능하다. static{try{// 접속 설정 파일 로드String resource ="com/board/db/sqlconfig/SqlMapConfig.xml";Reader reader = Resources.getResourceAsReader(resource);mySQLMap = SqlMapClientBuilder.buildSqlMapClient(reader);}catch(Exception e){e.printStackTrace();}}
[자바 기본기] 인터페이스 1. 인터페이스 ( interface ) 란? - 일종의 추상클래스. 추상클래스보다 추상화 정도가 높다.- 실제 구현된 것이 전혀 없는 기본 설계도- 추상메서드와 상수만을 멤버로 가질 수 있다.- 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용된다.- 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용된다. 2. 인터페이스의 작성 - 'class' 대신 ' interface ' 를 사용한다는 것 외에는 클래스 작성과 동일하다.interface 인터페이스이름 { public static final 타입 상수이름 = 값 ; public abstrace 메서드이름(매개변수목록); } - 하지만 , 구성요소(멤버)는 추상메서드와 상수만 가능하다.- 모든 멤버변수는 public sta..
[자바 기본기] 추상 클래스 1. 추상클래스 (abstract class ) 란? - 클래스가 설계도 라면 추상클래스는 '미완성 설계도'- 추상메서드를 포함하고 잇는 클래스- 일반 메서드가 추상 메서드를 호출할 수 있다. ( 호출할 떄 필요한 건 선언부 )- 완성된 설계도가 아니므로 인스턴스를 생성할 수 없다. - 다른 클래스를 작성하는 데 도움을 줄 목적으로 작성된다. 2. 추상메서드 ( abstract method ) 란? - 선언부만 있고 구현부(몸통, body) 가 없는 메서드abstract 리턴타입 메서드이름(); abstract void play(int pos); - 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용 - 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야 한다. 3. 추상클래..
[자바 기본기] 다형성 1. 다형성(polymorphism)이란? " 여러 가지 형태를 가질 수 있는 능력 "" 하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것 "즉 , 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있는 것이 다형성 Tv t = new Tv(); CaptionTv c = new CaptionTv(); Tv t = new CaptionTv(); " 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있지만, 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다 " Tv t = new CaptionTv();CaptionTv c = new Tv(); => TV 리모콘으로 CaptionTV를 조작하는 것은 가능하다. CaptionTV 리모콘으로 TV를 조작할 때, 리모콘에 있는 캡션 기능을..
[자바 기본기] 제어자 1. 제어자(modifier)란? - 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다. - 제어자는 크게 접근 제어자와 그 외의 제어자로 나뉜다. - 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 접근제어자는 단 하나만 사용할 수 있다. 접근 제어자 : public , protected, default, private 그 외 : static, final, abstract , native, transient, synchronized, volatile, strictfp 2. static ( 클래스의 , 공통적인 ) static이 사용될 수 있는 곳 - 멤버변수, 메서드, 초기화 블럭 3. final ( 마지막의 , 변경될 수 없는 ) final이 사용될 수 있는 곳 - 클..
[자바 기본기] package와 import 1. 패키지 (package) - 서로 관련된 클래스와 인터페이스의 묶음. - 클래스가 물리적으로 클래스파일(.class)인 것처럼, 패키지는 물리적으로 폴더이다. 패캐지는 서브패키지를 가질 수 있으며 , '.'으로 구분한다. - 클래스의 실제 이름(full name)은 패키지명이 포함된 것이다. (String 클래스의 full name은 java.lang.String) - rt.jar는 Java API의 기본 클래스들을 압축한 파일 1.1 패키지의 선언 - 패키지는 소스파일에 첫 번쨰 문장 으로 단 한번 선언한다. - 하나의 소스파일에 둘 이상의 클래스가 포함된 경우, 모두 같은 패키지에 속하게 된다. - 하나의 패키지 안에 두 개의 public class 가 존재 할 수 없다.- 파일 이름은 publ..
[자바 기본기] 오버라이딩 1. 오버라이딩 (overriding) 이란? "조상클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞게 변경하는 것을 오버라이딩이라고 한다." 2. 오버라이딩의 조건 선언부가 같아야 한다. ( 이름 , 매개변수 , 리턴타입 ) 접근 제어자를 좁은 범위로 변경할 수 없다.- 조상의 메서드가 protected 라면, 범위가 같거나 넓은 protected 나 public 으로만 변경할수있다. 조상클래스의 메서드 보다 많은 수의 예외를 선언할 수 없다. - 조상 클래스에 선언된 예외만이 선언 가능하다. 개수의 문제가 아니다. 3. 오버로딩 vs 오버라이딩 오버로딩(over loading) : 기존에 없는 새로운 메서드를 정의하는 것오버라이딩 (overriding) : 상속받은 메서드의 내용을 변경하는것..
자바 split 메소드로 문자열 분할하기 자바 1000제를 풀던 중, String 클래스의 split 메소드를 사용하게 되었다.사용법을 보니 대강 이해는 가는데, limit이 잘 이해가 안된다 ㅡㅡㅋ 출처 : http://byeonely.tistory.com/108 public String [] split(String regex, int limit) 정규표현(regex)에 따라 결과 배열의 길이를 제어(limit)하는 문자열을 만든다. 분할 할 문자열을 String regex 을 기준을 분할 시킨다. limit 에 따라 3가지 분할 방법으로 나누어 볼 수 있다. 1. limit 가 0(zero)일 경우 String str = "a/b/c/d////"; String regex = "/"; int limit = 0; String[] result =..