sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
프롤로그 : 학원에서 자바강의를 듣고... SCJP를 공부하면서 정리해봄. 참고교재는 "(대림출판사) 클릭하세요! 자바2 JDK1.3증보판"
1. 자바프로그램 개발환경
1) J2SE : client side, (jvm), jdk설치, 문법+표준package
2) J2EE : server side, (jvm), jdk+확장패키지 설치, 표준package+화장package, (JDBC,SERVLET/JSP, JNDI, RMI, CORBA, EJB)
3) J2ME : mobile, (kvm), j2me+통신회사전용패키지 설치, (H.P-CLDC+MDlet, PDA-CDC, awt+applet,servlet/jsp+xml/wml)
4) 기타 : JMF(java media framework), JINI
2. 자바의 특징 :
1) PLATFORM에 독립성
2) 객체지향이다. (객체=속성+기능)
3) 멀티 THREAD를 지원한다.
4) 메모리 관리를 자동으로 한다. (VM이 garbage collection을 한다)
- Garbage Collection에 대하여 : 특정 클래스 객체를 가리키는 어떠한 레퍼런스 변수도 없다면 그 클래스객체는 가비지컬렉팅 된다.
그 외에 가비지컬렉팅은 사용자가 직접적(direct)으로 실행할수는 없고 system.gc();명령으로 시스템에 요구할 수는 있다.
3. 자바 시작
※ 시작하기에 앞서 클래스와 객체와의 관계 살펴보기 (Class, Object, Instance)
=> http://www.javanuri.net/lecture/jp01/index.html (출처 : 자바누리)
필요한 부분 : "3장. Object이해하기"
1) 자바에서의 변수의 종류
- 인스턴스변수(member or instance variable)는 생성된 객체내에서 각 메서드들이 공통으로 접근가능한 변수를 일컫는다.
- 지역변수(local variable)는 메소드레벨에서 초기화되어 해당 메소드에서만 사용가능하다.
- 클래스변수(global or static or class variable)는 클래스밖에서 또다른 static이라는 공간에 생성되는 변수이다.
- 클래스내에 선언되는 모든 변수는 의미적으로 메소드블럭{}밖에서 선언되면 전역변수로,
- 메소드블럭{}내에서 선언되면 지역변수로 구분한다. (밖에서 선언되면 맴버변수... 맴버변수는 클래스변수와 인스턴스변수 모두를 포함한다)
- 클래스나 메소드 블럭{}안에서 선언된 변수(지역, 맴버)는 {}가 끝날때 자동으로 소멸되게 된다. (변수의 생성과 소멸은 블럭단위)
다음의 예제는 각 변수들을 선언하고 사용하는데 있어서의 특성과 주의사항에 대한 예제이다.
예제)
--------------------------------------------------------------------------------------------------------------------------------------------------------
class A
{
//맴버(인스턴스)변수들
int a= 10; // 선언가능하다. (클래스 멤버필드 변수로 초기화 해도 그만 안해도 그만)
int b; // 시스템이 알아서 0으로 초기화 해준다
string str; // 시스템이 알아서 null로 초기화 해준다
string str3="abc"; // 선언과 함께 대입가능 (초기화)
//맴버static(클래스)변수
static int c; // static변수선언
public void main()
{
//지역변수들
int d; // 이 구문에서는 그냥 통과를 하지만 변수d를 사용하려는 구문에서 compile error
(메소드안에서 선언한 변수는 반드시 초기화해서 사용해야한다)
string str4; //반드시 초기화 되어야 한다.
b=5; // 사용불가능 (compile error)
c=5; // class레벨에서 정의된 static변수는 메소드레벨에서 instance생성없이 사용가능하다.
만일 c가 static이 아니라면... compile error(변수를 위한 메모리 할당은 instance생성시 일어나기때문)
또한 A.c=5;와도 같은 문법이다. static변수는 클래스명으로도 접근가능하다.
}
}
멤버변수는 시스템이 알아서 초기화 해준다(숫자는 0으로 문자는 NULL로)
지역변수는 시스템이 알아서 초기화 해주지 않는다.
--------------------------------------------------------------------------------------------------------------------------------------------------------
4. DATA TYPE (언어의 기초)
1) 종류
- 기본 DATA TYPE(INT, FLOAT기타등등)
ex) int a=10;
- REFERENCE형(CLASS,STRING,배열)
ex) button b=new button();
2) 각 datatype의 SIZE (1byte=8bit, 2byte=16bit)
Byte : 1byte (부동소수점)
Char : 2byte (0∼216-1)
Short : 2byte (-215∼215-1)
Int : 4byte (-231∼231-1)
Float : 4byte (-231∼231-1)
Long : 8byte (-263∼263-1)
Double : 8byte (-263∼263-1)
변환크기에 따른 흐름
byte < short < int < long < float < double
char <
3) 각 데이터타입의 default initialized값
Boolean : false
String과 Object : null
Char : 'u0000'
Byte, Short, Int, Long : 0
Float : 0.0f
Double : 0.0
※ 기타 data type과 관련된 내용
- " "은 값이 없음을 의미하고 Null은 Null이라는 값으로 존재함을 의미한다.
- switch(i)에서 i에 올수있는 data type은 char형과 integer형과 byte형으로 그외에 integer보다 큰 범위의 데이터 타입은 불가하다.
- 3.14는 float일까? double일까?
소수점이 있는 숫자가 끝에 d나 f가 붙지 않는다면 기본적으로 부동소수계열의 default 데이터형인 double이 된다. 마찬가지로
정수계열의 default 데이터형은 int이다.
- String은 call by value로 값을 넘겨주고, StringBuffer는 call by reference로 값을 넘겨준다.
따라서, String.replace() 와 같이 메서드를 통해서 수정한 return value는 원본이 아니다.
5. 배 열(ARRAY) (자바에서 배열의 사용은 C와 조금 다릅니다.)
1) 배열의 사용
- 선 언) int a[]; //배열의 포인터값만을 생성한다
- 생 성) a=new int[4]; //실제로 배열[4]를 메모리할당하여 a가 가리키게 된다
- 초기화) a[0]=10; a[1]=7; a[2]=5; a[3]=13; //이제 배열을 사용가능하다.
- 객체배열) String[] member = new String[3]; // 1차원 문자열 배열
2) 위의 선언과 생성을 한문장으로도 가능하다. ex) int [] foo = new int [10];
3) 다음은 모두 같은 문장이다.
int foo[][];
int [][]foo;
int []foo[];
※ 자바에서의 Key word(reserved word)
implements, extend, default, case, return, import, package, super, this, abstract, final, native, instance of, boolean,
void, int, null, true, false (대소문자를 확실히 구분할 것)
오늘의 예제 :: [1]"
1. 자바프로그램 개발환경
1) J2SE : client side, (jvm), jdk설치, 문법+표준package
2) J2EE : server side, (jvm), jdk+확장패키지 설치, 표준package+화장package, (JDBC,SERVLET/JSP, JNDI, RMI, CORBA, EJB)
3) J2ME : mobile, (kvm), j2me+통신회사전용패키지 설치, (H.P-CLDC+MDlet, PDA-CDC, awt+applet,servlet/jsp+xml/wml)
4) 기타 : JMF(java media framework), JINI
2. 자바의 특징 :
1) PLATFORM에 독립성
2) 객체지향이다. (객체=속성+기능)
3) 멀티 THREAD를 지원한다.
4) 메모리 관리를 자동으로 한다. (VM이 garbage collection을 한다)
- Garbage Collection에 대하여 : 특정 클래스 객체를 가리키는 어떠한 레퍼런스 변수도 없다면 그 클래스객체는 가비지컬렉팅 된다.
그 외에 가비지컬렉팅은 사용자가 직접적(direct)으로 실행할수는 없고 system.gc();명령으로 시스템에 요구할 수는 있다.
3. 자바 시작
※ 시작하기에 앞서 클래스와 객체와의 관계 살펴보기 (Class, Object, Instance)
=> http://www.javanuri.net/lecture/jp01/index.html (출처 : 자바누리)
필요한 부분 : "3장. Object이해하기"
1) 자바에서의 변수의 종류
- 인스턴스변수(member or instance variable)는 생성된 객체내에서 각 메서드들이 공통으로 접근가능한 변수를 일컫는다.
- 지역변수(local variable)는 메소드레벨에서 초기화되어 해당 메소드에서만 사용가능하다.
- 클래스변수(global or static or class variable)는 클래스밖에서 또다른 static이라는 공간에 생성되는 변수이다.
- 클래스내에 선언되는 모든 변수는 의미적으로 메소드블럭{}밖에서 선언되면 전역변수로,
- 메소드블럭{}내에서 선언되면 지역변수로 구분한다. (밖에서 선언되면 맴버변수... 맴버변수는 클래스변수와 인스턴스변수 모두를 포함한다)
- 클래스나 메소드 블럭{}안에서 선언된 변수(지역, 맴버)는 {}가 끝날때 자동으로 소멸되게 된다. (변수의 생성과 소멸은 블럭단위)
다음의 예제는 각 변수들을 선언하고 사용하는데 있어서의 특성과 주의사항에 대한 예제이다.
예제)
--------------------------------------------------------------------------------------------------------------------------------------------------------
class A
{
//맴버(인스턴스)변수들
int a= 10; // 선언가능하다. (클래스 멤버필드 변수로 초기화 해도 그만 안해도 그만)
int b; // 시스템이 알아서 0으로 초기화 해준다
string str; // 시스템이 알아서 null로 초기화 해준다
string str3="abc"; // 선언과 함께 대입가능 (초기화)
//맴버static(클래스)변수
static int c; // static변수선언
public void main()
{
//지역변수들
int d; // 이 구문에서는 그냥 통과를 하지만 변수d를 사용하려는 구문에서 compile error
(메소드안에서 선언한 변수는 반드시 초기화해서 사용해야한다)
string str4; //반드시 초기화 되어야 한다.
b=5; // 사용불가능 (compile error)
c=5; // class레벨에서 정의된 static변수는 메소드레벨에서 instance생성없이 사용가능하다.
만일 c가 static이 아니라면... compile error(변수를 위한 메모리 할당은 instance생성시 일어나기때문)
또한 A.c=5;와도 같은 문법이다. static변수는 클래스명으로도 접근가능하다.
}
}
멤버변수는 시스템이 알아서 초기화 해준다(숫자는 0으로 문자는 NULL로)
지역변수는 시스템이 알아서 초기화 해주지 않는다.
--------------------------------------------------------------------------------------------------------------------------------------------------------
4. DATA TYPE (언어의 기초)
1) 종류
- 기본 DATA TYPE(INT, FLOAT기타등등)
ex) int a=10;
- REFERENCE형(CLASS,STRING,배열)
ex) button b=new button();
2) 각 datatype의 SIZE (1byte=8bit, 2byte=16bit)
Byte : 1byte (부동소수점)
Char : 2byte (0∼216-1)
Short : 2byte (-215∼215-1)
Int : 4byte (-231∼231-1)
Float : 4byte (-231∼231-1)
Long : 8byte (-263∼263-1)
Double : 8byte (-263∼263-1)
변환크기에 따른 흐름
byte < short < int < long < float < double
char <
3) 각 데이터타입의 default initialized값
Boolean : false
String과 Object : null
Char : 'u0000'
Byte, Short, Int, Long : 0
Float : 0.0f
Double : 0.0
※ 기타 data type과 관련된 내용
- " "은 값이 없음을 의미하고 Null은 Null이라는 값으로 존재함을 의미한다.
- switch(i)에서 i에 올수있는 data type은 char형과 integer형과 byte형으로 그외에 integer보다 큰 범위의 데이터 타입은 불가하다.
·미리보기 | 소스복사·
- switch (int) {
- default:
- ...
- break;
- case 1:
- ...
- break;
- case 2:
- ...
- break;
- }
- 3.14는 float일까? double일까?
소수점이 있는 숫자가 끝에 d나 f가 붙지 않는다면 기본적으로 부동소수계열의 default 데이터형인 double이 된다. 마찬가지로
정수계열의 default 데이터형은 int이다.
- String은 call by value로 값을 넘겨주고, StringBuffer는 call by reference로 값을 넘겨준다.
따라서, String.replace() 와 같이 메서드를 통해서 수정한 return value는 원본이 아니다.
5. 배 열(ARRAY) (자바에서 배열의 사용은 C와 조금 다릅니다.)
1) 배열의 사용
- 선 언) int a[]; //배열의 포인터값만을 생성한다
- 생 성) a=new int[4]; //실제로 배열[4]를 메모리할당하여 a가 가리키게 된다
- 초기화) a[0]=10; a[1]=7; a[2]=5; a[3]=13; //이제 배열을 사용가능하다.
- 객체배열) String[] member = new String[3]; // 1차원 문자열 배열
2) 위의 선언과 생성을 한문장으로도 가능하다. ex) int [] foo = new int [10];
3) 다음은 모두 같은 문장이다.
int foo[][];
int [][]foo;
int []foo[];
※ 자바에서의 Key word(reserved word)
implements, extend, default, case, return, import, package, super, this, abstract, final, native, instance of, boolean,
void, int, null, true, false (대소문자를 확실히 구분할 것)
오늘의 예제 :: [1]"
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
43 | JDF(Java Development Framework) 관련 | 황제낙엽 | 2004.02.11 | 505 |
42 | JDBC Date 포맷 변환 | 황제낙엽 | 2003.11.08 | 938 |
41 | Connection 리소스 관리시 주의해야 할 점 | 황제낙엽 | 2003.09.06 | 429 |
40 | XSLTFilter ... (퍼옴) | 황제낙엽 | 2003.07.21 | 634 |
39 | (초보탈출 II) 내부클래스 | 황제낙엽 | 2003.05.20 | 505 |
38 | (초보탈출 I) 패키지 | 황제낙엽 | 2003.05.20 | 544 |
37 | 열네번째날 (화상 채팅 프로그램 프로젝트) | 황제낙엽 | 2003.04.21 | 945 |
36 | 열세번째날 - WEB APPLICATION | 황제낙엽 | 2003.04.15 | 824 |
35 | 열두번째날 - I/O | 황제낙엽 | 2003.04.15 | 285 |
34 | 열하나째날 - 스레드 | 황제낙엽 | 2003.04.15 | 330 |
33 | 열번째날 - 애플릿과 그래픽 | 황제낙엽 | 2003.04.15 | 617 |
32 | 아홉째날 - SWING | 황제낙엽 | 2003.04.15 | 542 |
31 | 여덟째날 - 예외처리 | 황제낙엽 | 2003.04.14 | 527 |
30 | 일곱째날 - EVENT | 황제낙엽 | 2003.04.14 | 245 |
29 | 여섯째날 - AWT | 황제낙엽 | 2003.04.14 | 628 |
28 | 다섯째날 - Collection, String, StringBuffer | 황제낙엽 | 2003.04.14 | 562 |
27 | 넷째날 - 추상클래스, 내부클래스, Interface, Static영역 | 황제낙엽 | 2003.04.14 | 566 |
26 | 셋째날 - 패키지, 상속, 접근제어 | 황제낙엽 | 2003.04.14 | 509 |
25 | 둘째날 - 클래스, 메서드, 연산자 | 황제낙엽 | 2003.04.14 | 482 |
» | 첫째날 - 자바의 특징과 DATA TYPE | 황제낙엽 | 2003.04.14 | 457 |