본문 바로가기

Java

ApplicationContext란? 웹에 독립적인 애플리케이션의 모든 영역(dao, service, manager, 기타 등등) 에 대한 정의를 말한다. 더보기
iBATIS iBATIS의 개념 iBATIS는 간단한 XML서술자를 사용해서 간단하게 자바 빈즈를 SQL statement에 맵핑시킨다. 간단함(Simplicity)이란 다른 프레임워크와 객체관계맵핑툴에 비해 iBATIS의 가장 큰 장점이다. iBATIS Data Mapper를 사용하기 위해서 당신은 자바빈즈와 XML 그리고 SQL에 친숙할 필요가 있다. 여기엔 배워야 할것도 거의 없고 테이블을 조인하거나 복잡한 쿼리문을 수행하기 위해 필요한 복잡한 스키마도 없다. Data Mapper를 사용하면 당신은 실제 SQL문의 모든 기능을 가질수 있다. JDBC 로만 프로그래밍 할 때의 번거로움을 줄여주기 위해 재사용 모듈로 개발된 것인데 그 주요한 어려움을 ibatis 개발자 가이드에서 다음과 같이 정리하고 있다. iBA.. 더보기
javax.servlet.servletrequest 클라이언트의 Request에 대한 정보를 서블릿에 제공하는 오브젝트를 정의한다. getAsyncContext() getAttribute(java.lang.String name) 지정된 속성의 값을 Object 로서 얻는다. 정된 이름의 속성이 존재하지 않는 경우는,null을 얻는다. getAttributeNames() 이 Request로 이용할 수 있는 속성의 이름이 포함된 목록을 얻는다. 돌려줍니다. 이용할 수 있는 속성이 Request에 없는 경우는 빈 내용을 얻는다. getCharacterEncoding 이 Request의 본체로 사용되는 문자 인코딩의 이름을 얻는다. Request가 문자 인코딩을 지정하고 있지 않는 경우, 이 메소드는 null을 얻는다. getContentLength() Requ.. 더보기
Object.equals()와 String.equals()의 차이점 String.equals()는 메모리 주소에 상관없이 값이 같다면 true를 리턴 해준다. 하지만 Object.equals() 메모리 주소도 동일 해야지 true를 리턴 해준다. String의 경우는 메모리 주소에 상관없이 값이 같다고 나와있지만 처음에 변수가 값을 받을 때 동일한 값이면 같은 메모리 주소에 존재하는 값을 불러 오는 것으로 알고 있다. 더보기
클래스, 인스턴스, 객체 클래스(Class): 클래스란 어떤 특정 종류의 모든 객체들에 대해 일반적으로 적용할 수 있는 변수와 메소드를 정의하고 있는 소프트웨어적인 설계도(blueprint) 또는 프로토타입(prototype)이라 할 수 있습니다. 예를 들어, 실세계에 존재하는 자동차들인 아반떼, 누비라, 그랜저, 티코, 아토스, 봉고, 또는 버스 등의 자동차들이 가질 수 있는 상태 정보와 행동에 대하여 일반화시켜 정의해 놓은 것이 자동차 클래스가 될 수 있습니다. 다시 말해서, 실세계에 존재하는 객체들이 가질 수 있는 상태와 행동들에 대해 소프트웨어적으로 추상화(abstraction) 해 놓은 것이 클래스라는 것입니다. 이러한 클래스를 청사진이라 표현하기도 하고, 벽돌을 찍기 위한 하나의 틀로써 비유되기도 합니다. 인스턴스(I.. 더보기
Integer.parseInt() String을 int로 형변환 할때 사용한다. API(Integer class 에서 parseInt를 검색) ex) int first = Integer.parseInt(args[0]); 더보기
new 생성자 instance 를 만들때 사용하는 연산자로 아래와 같이 사용한다. Dog myDog = new Dog(); 첫 번째 Dog myDog = new Dog(); JVM에 인스턴스 변수를 위한 공간을 할당하도록 지시한다. 인스턴스 변수의 유형은 한번 정해지면 바뀌지 않는다. 두 번째 Dog MyDog = new Dog(); 객체를 만든다. JVM에 가비지 컬렉션 기능이 있는 힙에 새로운 Dog 객체를 위한 공간을 할당하도록 지시한다. 세번째 Dog MyDog = new Dog(); 객체와 인스턴스를 연결한다. 새로 만들어진 Dog 객체를 MyDog라는 인스턴스 변수에 대입한다. 더보기
클래스 java.lang.Object 모든 Java 클래스의 최상위 클래스이고 lang 패키지에 있다. 따라서 import 문을 사용하지 않더라도 자바 컴파일러가 자동적으로 Object 클래스를 제공 해준다. 그러므로 이 클래스가 제공하는 메소드는 자바의 어떤 클래스에서든 사용할 수 있다. 즉, 모든 클래스는 소스 맨 앞에 다음과 같은 import문이 생략되어 있다. import java.lang.*; 메소드 - clone(): 객체 자신을 복사하여 똑같은 객체를 하나 더 생성 - equals(Object obj) : 주어진 객체와 같은 내용을 가지고 있는지를 검사. 일반적으로, 하위클래스는 equals 메소드를 재정의한다. - finalize() : null 값을 가진 객체가 가비지 콜렉터에 의해 메모리상에서 제거되기전에 호출되는 메쏘드 .. 더보기
제임스 고슬링 제임스 고슬링(James A. Gosling, 1955년 5월 19일 ~ )은 캐나다의 소프트웨어 개발자이다. 자바를 최초 개발하여 '자바의 아버지'라 불리며, 가장 영향력 있는 Programmer 중 한 사람이다. Java 이외에도 Multi-Processor용 UNIX와 Complier, Mail System, 데이터 인식 시스템 등을 개발하였다. 개발자 가운데서는 마이크로소프트의 빌 게이츠(William H. Gates)만큼이나 유명하지만, 개발자 특유의 '몰두' '은둔' 성향 때문에 세상에 널리 알려지지는 않았다. 그는 또 Java커피를 하루에도 10여 잔 씩 마시는 Java 예찬론자이기도 해서, 'Java'라는 명칭을 인도네시아 섬 이름으로 유명한 커피 재배지에서 따왔다고 한다. 역사 제임스 고.. 더보기
접근 변경자(public, protected, private)의 차이점 클래스 - public: 모든 패키지에서 접근을 허용한다. - protected: 자신을 포함하는 클래스 및 상속받은 클래스 접근 가능 - private: 같은 클래스 내에서만 접근 가능 메소드 - public: 해당 클래스 밖에서도 접근 가능 - protected: 해당 클래스 및 상속받은 클래스에서 접근 가능 - private: 해당 클래스에서만 접근 가능 더보기
[Head First Java] Chapter5 SimpleDotCom(간단한 닷컴 게임) 테스트 코드 Chpater5 에서는 닷컴 가라앉히기라는 게임을 만들게 되는에 여기에서는 바로 코드를 만드는게 아니라 준비 코드를 만들고 테스트 코드를 만든 다음에 실제 코드를 완성하라고 알려주고 있다. 테스트 코드를 먼저 만들어놓은 것은 익스트림 프로그래밍의 여러 규칙 가운데 하나라고 한다. 아래와 같이 테스트 코드를 코딩하였다. SimpleDotComTestDrive 클래스 public class SimpleDotComTestDrive { public static void main(String[] args) { SimpleDotCom dot = new SimpleDotCom(); int[] locations = {2,3,4}; dot.setLocationCells(locations); String userGuess.. 더보기
[Head First Java] Chapter4 연습문제 수영장 퍼즐 코드 조각을 한번만 사용하여 아래와 같은 출력 결과를 얻어야 한다. 출력 결과 result 543345 문제 public class Puzzle4 { public static void main(String[] args) { ________________________ int y = 1; int x = 0; int result = 0; while(x < 6){ ________________ ________________ y = y * 10; ________ } x = 6; while(x > 0){ ________ result = result + ____________ } System.out.println("result " + result); } } class ________{ int ivar; ______.. 더보기
[Head First Java] Chapter4 연습문제 결과를 맞춰봅시다. 문제 소스에서 특정 부분에 코드를 대입하여 나오는 출력 결과를 알아내기. 문제 public class Mix4{ int counter = 0; public static void main(String[] args){ int count = 0; Mix4[] m4a = new Mix4[20]; int x = 0; while(_____){ m4a[x] = new Mix4(); m4a[x].counter = m4a[x].counter + 1; count = count + 1; count = count + m4a[x].maybeNew(x); x = x + 1; } System.out.println(count + " " + m4a[1].counter); } public int maybeNew(int index){ i.. 더보기
[Head First Java] Chapter4 연습문제 컴파일러가 되어봅시다. B문제 소스가 컴파일 잘 되는지 확인 원본 소스 class Clock { String time; void setTime(String t){ time = t; } void getTime(){ return time; } } class ClockTestDrive { public static void main(String[] args) { Clock c = new Clock(); c.setTime("1245"); String tod = c.getTime(); System.out.println("time: " + tod); } } 정답 class Clock { String time; void setTime(String t){ time = t; } String getTime(){ return time; } } class .. 더보기
[Head First Java] Chapter4 연습문제 컴파일러가 되어봅시다. A문제 소스가 컴파일 잘 되는지 확인 소스 public class XCopy { public static void main(String[] args){ int orig = 42; XCopy x = new XCopy(); int y = x.go(orig); System.out.println(orig + " " + y); } int go(int arg){ arg = arg * 2; return arg; } } 컴파일이 잘 된다. 출력 결과 42 84 더보기
[Head First Java] Chapter4 GoodDog 클래스 캡슐화 GoodDog 클래스 class GoodDog { private int size; public int getSize(){ return size; } public void setSize(int s){ size = s; } void bark(){ if(size > 60){ System.out.println("Wooof! Wooof!"); } else if(size > 14){ System.out.println("Ruff! Ruff!)"); } else{ System.out.println("Yip! Yip!"); } } } GoodDogTestDrive 클래스 class GoodDogTestDrive { public static void main(String[] args) { GoodDog one = new .. 더보기
[Head First Java] Chapter4 크기와 짖는 소리 Dog 클래스에는 size라는 인스턴스 변수가 있는데, bark() 메소드에서 이 값을 이용하여 짖는 소리를 결정할 수 있다.. 소스 class Dog { int size; String name; void bark(){ if(size > 60){ System.out.println("Wooof! Wooof!"); } else if(size > 14){ System.out.println("Ruff! Ruff!"); } else{ System.out.println("Yip! Yip!"); } } } public class DogTestDrive { public static void main(String[] args) { Dog one = new Dog(); one.size = 70; Dog two = new .. 더보기
[Head First Java] Chapter3 연습문제 수영장 퍼즐 코드 조각을 한번만 사용하여 아래와 같은 출력 결과를 얻어야 한다. 출력 결과 triangle 0, area = 4.0 triangle 1, area = 10.0 triangle 2, area = 18.0 triangle 3, area = 28.0 y = 4, t5 area = 343.0 코드 조각 x y area ta.area ta.x.area ta[x].area Triangel[] ta = new Triangle(4); Triangle ta = new[] Triange[4]; Triangle[] ta = new Triangle[4]; 4, t5 area = 18.0 4, t5 area = 343.0 27, t5 area = 18.0 27, t5 area = 343.0 ta[x] = setArea();.. 더보기
[Head First Java] Chapter3 연습문제 코드 자석 코드 조각을 가지고 아래와 같은 출력 결과를 가지는 코드를 만들어야 한다. 출력결과 island = Fiji island = Cozumel island = Bermuda island = Azores 코드 조각 int y = 0; ref = index[y]; islands[0] = "Bermuda"; islands[1] = "Fiji" islands[2] = "Azores"; islands[3] = "Cozumel"; int ref; while(y < 4){ system.out.println(islands[ref]); index[0] = 1; index[1] = 3; index[2] = 0; index[3] = 2; String[] islands = new String[4]; System.out.print.. 더보기
[Head First Java] Chapter3 연습문제 컴파일러가 되어봅시다. B문제 소스가 컴파일을 할 수 있는지 확인 문제 소스 public class Hobbits { String name; public static void main(String[] args) { Hobbits[] h = new Hobbits[3]; int z = 0; while(z < 4){ z = z + 1; h[z] = new Hobbits(); h[z].name = "bilbo"; if(z == 1){ h[z].name = "frodo"; } if(z == 2){ h[z].name = "sam"; } System.out.print(h[z].name + " is a "); System.out.println("good Hobbit name"); } } } 정답 public class Hobbits { String.. 더보기
[Head First Java] Chapter3 연습문제 컴파일러가 되어봅시다. A문제 소스가 컴파일을 할 수 있는지 확인 문제 소스 class Books { String title; String author; } public class BooksTestDrive { public static void main(String[] args) { Books[] myBooks = new Books[3]; int x = 0; myBooks[0].title = "The Grapes of Java"; myBooks[1].title = "The Java Gatsby"; myBooks[2].title = "The Java Cookbook"; myBooks[0].author = "bob"; myBooks[1].author = "sue"; myBooks[2].author = "ian"; while(x 더보기
[Head First Java] Chapter3 Dog를 제어해봅시다. 배열 변수 사용법을 보여준다. 소스 public class Dog { String name; public static void main(String[] args){ //Dog 객체를 만들고 접근한다. Dog dog1 = new Dog(); dog1.bark(); dog1.name = "Bart"; //Dog 배열을 만든다. Dog[] myDogs = new Dog[3]; myDogs[0] = new Dog(); myDogs[1] = new Dog(); myDogs[2] = dog1; //배열 레퍼런스를 써서 Dog 객체에 접근 myDogs[0].name = "Fred"; myDogs[1].name = "Marge"; System.out.print("마지막 개의 이름: "); System.out.print.. 더보기
가비지 컬렉션(Garbage Collection) 힙 메모리 영역에서더 이상 사용되지 않는 메모리를 정리 하는 것. 더 이상 사용되지 않는 객체나 객체에 null 값이 할당되면 가비지 컬렉션의 대상이 된다. 예시 Book b = new Book(); Book c = new Book(); Book 북 레퍼런 스 변수 두 개를 선언하고 Book 객체 두 개를 새로 생성하여 레퍼런스에 대입함. 활성 레퍼런스: 2개 접근 할 수 있는 객체: 2개 b = c; c의 값을 b에 대입. b와 c는 모두 같은 객체를 참조 하며 제일 처음 b에 대입 하였던 객체는 버림 받았기 때문에 가바지 컬렉션 대상이 된다. 더보기
상속 부모 클래스의 속성을 물려 받는 것. 사용법 class 클래스명 extends Object{} 참고 자료 Java 상속 상속(Inheritance) 개념 상속 더보기
[Head First Java] Chapter3 원시 변수 원시 변수 유형 부울과 문자 유형 비트 범위 boolean (JVM에 따라 다름) true 또는 false char 16비트 0~65535 숫자(모두 부호가 있음) 정수 유형 비트 범위 byte 8비트 -128~127 short 16비트 -32768~32767 int 32비트 -2147483648~2147483648 long 64비트 -아주 큰 값~아주 큰 값 부동소수점 소수 유형 비트 범위 float 32비트 바뀔 수 있음 double 64비트 바뀔 수 있음 큰 유형의 변수를 작은 유형의 변수에 대입은 안된다. 키워드와 변수명 - 변수를 만들때는 이름과 유형이 필요하다. - 변수 이름은 예약어를 사용해서는 안된다. 예약어 boolean byte char double float int long short.. 더보기
[Head First Java] Chapter2 연습문제 수영장 퍼즐 코드 조각을 한번만 사용하여 아래와 같은 출력 결과를 얻어야 한다. 출력 결과 helloooo.... helloooo.... helloooo.... helloooo.... 10 코드 조각 e1 = e1 + 1; e1 = count + 1; e1.count = count + 1; e1.count = e1.count + 1; x y e2 count x < 4 x < 5 x > 0 x > 1 Echo Tester echo() count() hello() e2 = e1; Echo e2; Echo e2 = e1; Echo e2 = new Echo(); x == 3 x == 4 문제 public class EchoTestDrive { public static void main(String[] args){ Echo .. 더보기
[Head First Java] Chapter2 연습문제 코드 자석 아래와 같은 출력 결과를 가지는 코드를 만들어야 한다. bang bang ba-bang ding ding da-ding 코드 조각은 아래와 같다. d.playSnare(); DrumKit d = new DrumKit(); void playSnare(){ System.out.println("bang bang ba-bang"); } public static void main(String[] args){ if(d.snare == true){ d.playSnare(); } d.snare = false; class DrumKitTestDrive{ d.playTopHat(); class DrumKit { void playTopHat(){ System.out.println("ding ding da-ding"); } .. 더보기
[Head First Java] Chapter2 연습문제 컴파일러가 되어봅시다. B문제 소스가 컴파일을 할 수 있는지 확인 소스 class DVDPlayer { boolean canRecord = false; void recordDVD(){ System.out.println("DVD recording"); } } class DVDPlayerTestDrive{ public static void main(String[] args){ DVDPlayer d = new DVDPlayer(); d.canRecord = true; d.playDVD(); if(d.canRecord == true){ d.recordDVD(); } } } 수정된 소스 class DVDPlayer { boolean canRecord = false; void recordDVD(){ System.out.println("DVD r.. 더보기
[Head First Java] Chapter2 연습문제 컴파일러가 되어봅시다. A문제 소스가 컴파일을 할 수 있는지 확인 소스 class TapeDeck{ boolean canRecord = false; void playTape(){ System.out.println("tape playing"); } void recordTape(){ System.out.println("tape recording"); } } class TapeDeckTestDrive{ public static void main(String[] args){ t.canRecord = true; t.playTape(); if(t.canRecord == true){ t.recordTape(); } } }수정된 소스 class TapeDeck{ boolean canRecord = false; void playTape(){ Syst.. 더보기
[Head First Java] Chapter2 객체지향적 프로그래밍 핵심 정리 제작과 테스트가 끝난 코드를 건드리지 않고 프로그램을 확장할 수 있다. 모든 자바 코드는 클래스 내에서 정의 된다. 클래스는 해당 클래스 유형의 객체를 만드는 방법을 설명하는 역할을 한다. 객체는 각자 알아서 자기 할 일을 처리할 수 있다. 객체에는 알고 있는것(속성)과 할 수 있는 것(메소드)이 있다. 객체가 자기 자신에 대해 알고 있는 것은 인스턴스 변수이다. 객체가 할 수 있는 것은 메소드라고 부른다. 클래스를 새로 만들 때는 그 클래스 유형의 객체를 만들어서 테스트하는 테스트용 클래스를 따로 만들어 보는 것이 좋다. 클래스에서는 덜 구체적인 상위클래스로부터 인스턴스 변수와 메소드를 상속할 수 있다. 프로그램을 실행시킬 때 보면 자바 프로그램이란 결국 다른 객체와 대화를 하는 객체에 불과하다. 더보기