// 날짜 생각 없이 만들자.
1월 25일 (1일)
-
JDK 설치
www.orcale.com 에서 JAVA SE-> jdk 다운.. 후 설치..
JAVA EE - Enterprise(기업..)
JAVA ME -micro(휴대폰 등..)
JAVA SE - Standard (기본)
-
환경변수 설정
- 내컴퓨터->속성->고급->환경설정-> 시스템변수의 CLASSPATH에 C:\Program Files\Java\jdk1.6.0_30\bin를 추가..
- 클래스명은 파일명과 동일하게 만들어야 한다.
- 자바는 모든명령문들이 class 내에 존재해야 한다.
- main method는 이 class를 실행할 때 최초 실행되는 method이다.
-
주석
- // - 한 줄 주석..
- /* 내용 */ - 여러줄 주석...
- /** 내용 */ - 특별한 주석.
1월 26일 (2일)
-
변수(Variable) - 임시저장공간 (자바의 정석 P.20)
-
변수타입
* 기본형
문자 - char
숫자 - 정수 - byte, short, int, long
실수 - float, double
논리 - boolean
* 참조형
-
기본형을 제외한 나머지.. (String , System 등)
2. 보수 = 보충해주는수..
- 10의 보수 4 > 6
3 > 7
3. 명명규칙..
- 대소문자가 구분되며 길이에 제한이없다.
- 예약어를 사용해서는 안된다..
- 숫자로 시작해서는 안된다.
- 특수문자는 " _ "와 " $ "만을 허용한다.
-
권장사항
- 클래스 이름의 첫 글자는 항상 대문자로 한다..
- 여러 단어 이름은 단어의 첫글자를 대문자로 사용한다..(낙타표기법.) 예) lastIndexOf, StringBuffer
-
상수의 이름은 대문자로 쓰고, 단어는 " _ " 로 구분한다. (변수는 값을 변경해도 되지만 상수는 값을 한번 정하면 바꿀수 없다.)
- 예) final int NUM = 0;
- NUM = 10; ->에러...
- final int MAX_NUMBER = 0; <- 이런식으로 전부 대문자로 표시함.....
-
리터럴과 접미사
-
특수문자를 저장할때 사용 (자바의정석 P.26).. 역슬러시 (|)를 사용함..
- String str = "그가 |"잘가|"라고 말했다. ";
- 역슬러시를 저장할때도 ||으로 하면 특수문자인 | 로 인식한다.
- int i = 100; = 10진수 표현 >> (자바의정석 P.34)
- int oct = 0100; = 8진수 표현 0을 붙히면 8진수 라는 것을 의미
- int hex = 0x100; = 16진수 표현 0x 를 붙히면 16진수 라는 것을 의미
-
-
변수의 기본값과 초기화
- 초기화 = 변수의 처음 값으로 변경.
-
형변환 - 값의 타입을 다른 타입으로 변환하는것.(boolean을 제외한 7개의 기본형은 서로 형변환이 가능)
-
예) float형을 int 형으로 바꿀 때.. (자바의 정석P.36 표 참고.)
- float f = 1.6f;
- int i = (int)f;
- 변환시 값의 크기가 변환된 타입의 표현가능한 범위를 넘어가면 값 손실이 발생할 수 있다.
-
1월 27일 (3일)
- Overflow..
-
연산자. (자바의 정석 P.44)
- 단항 연산자 = 값이 하나만 필요로 하는 연산자..
- 이항 연산자 = 값이 두개를 필요로 하는 연산자..
- 삼항 연산자 = '?' , ':' 를 이용하여 값을 세개로 필요로 하는 연산자.. (조건식?참일경우:거짓일경우) x>y?a:b
- 대입 연산자 = 값을 대입 할 때 사용.. (int result = z + b;)
- i = j++ 은 i에 j값을 대입 한 뒤 j가 증가된다..
- i = ++j 는 j를 증가한뒤 i에 대입된다..
-
비트 전환 연산자 ' ~ '
- byte b = 10;
- System.out.println("~b = " + ~b); ==> -11
-
이항연산자는 크기가 int보다 작은 자료형은 int 형으로 형변환 후 연산 된다..
- byte a = 10;
- byte b = 20;
- byte c = a + b; <- int형으로 변환되기때문에 에러가 난다 그러므로
- byte c = (byte)(a+b); <- byte로 형변환을 다시 시켜줘야함..
1월 30일( 4일)
-
연산자
- / = 나누기 연산자(몫을 저장 ex. 10/8 = 1)
- % = 나머지 연산자 (나눈 뒤 나머지값을 저장. ex. 10%8 = 2 )
-
쉬프트연산자
- <<
- >>
- <<<
-
비교 연산자
-
대소비교 연산자
- <
- >
- <=
- >=
-
등가비교 연산자
- ==
- !=
-
논리 연산자
- && = (AND결합) 피연산자 양쪽 모두 true 이어야 결과값이 true.
- || =(OR결합) 피연산자 중 한 쪽만 true이면 true를 결과로 얻는다.
-
비트 연산자 - 이진 비트연산을 수행한다.
- & = (AND연산자) 피연산자 양 쪽이 모두 1 이어야 1을 결과로 얻는다. 그 외에는 0을 얻는다.
- | = (OR연산자) 피연산자 중 한 쪽의 값이 1 이면, 1을 결과로 얻는다. 그 외에는 0을 얻는다.
- ^ = (XOR연산자) 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 그 외에는 0을 얻는다.
-
삼항 연산자
- ?: = (조건식) ? 식1: 식2 > 조건식이 true이면 식1을 false면 식2를 수행함.. if문과 비슷..
-
대입연산자
-
1월 31일 (5일)
-
조건문
- if문
- switch
-
반복문
- for
- while
- do-while
- 입력 받기.
-
-
BufferedReader..
- // 키보드로 부터 줄단위로 입력받기 위한 리더준비.
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String readStr1 = br.readLine(); //입력받은 값을 String형태로 저장.
- (생략..)
- //입력받은 String 값을 int형으로 바꿔서 계산하는 방법..
- int sum = Integer.parseInt(readStr1) + Integer.parseInt(readStr2) ;
- //Integer.parseInt(s), Double.parseDouble(s), Float.parseFloat(s) 등의 형태로 바꿀 수 있음.
-
scanner...
- Scanner scan = new Scanner(System.in); //new Scanner
- String str = scan.next();//문자열 1개를 입력받기.(공백기준)
- String strLine = scan.nextLine();//문자열 1개를 입력 받기(엔터키 기준)
- int num = scan.nextInt();//숫자로 이루어진 문자열을 숫자형 데이터로 입력 받기
- System.out.println( strLine ); //test.... strLine = 엔터키 기준으로 입력을 받는다..
- System.out.println( num ); //test.... 숫자만 받아서 출력한다.
-
JOptionPane
- String str = JOptionPane.showInputDialog("입력하세요.제발..;"); //다이얼로그 형식의 입력폼이 뜬다..
- System.out.println("다이얼로그에 입력한 문자열 : " + str);
-
2월 1일 (6일)
-
여러개의 점수를 입력받아 평균을 구한뒤 if문과 switch문으로 학점을 계산하는 코드...
- workspace/Chapter4/BranchEx.java 참고
-
현재 시스템(pc)시간을 반환해주는 method
- System.currentTimeMillis();
-
반복문에서 break를 만나면 자신이 포함된 {}를 빠져나오고 continu를 넣으면 그 부분을 제외시키고 다음 조건을 수행함..
- for(int j=1; j<=9; j++){//i*5까지 정상 순서로 출력
- if(i==3&&j==5) break; or continu -->break = for문을 빠져나옴 continu = for문의 다음 조건을 수행.
- System.out.println(i + "*" + j + "=" + i*j);
- }
-
while문.
- while(조건식){ 조건식이 참인 동안 실행할 명령문}
-
do while문.
- do{조건식이 참인 동안 실행할 명령문들..
- }while(조건식);
2월 02일
-
java에서 String 문자열 비교.
- String 변수명 = "문자";
- 변수명.equals("비교할 문자");
- 변수명 == "비교할 문자"; => 비교가 되지 않는다...
2월 03일
- 변수명 한번에 바꾸기 : 바꿀 변수명에 커서를 가져간 뒤 -> alt + shift + r 누르고 난 뒤 바꾸면 그 변수의 이름이 한번에 다바뀜
-
System.out.printf("")는
- System.out.printf("국어는 %d 수학은 %d 영어는 %d", kor, mat, eng) 식으로 문자 중간에 %d 같은 표현으로 입력될 수 있다..
- 여기서 %d는 10수 %o는 8진수 %x는 16진수.. 등등..검색 ㄱㄱㄱ
- Math.round() 함수는 소수점 반올림을 해준다.
5장. 배열
-
배열이란
- 같은 타입의 여러변수를 하나의 묶음으로 다루는 것
- 많은 양의 값을 다룰 때 유용하다.
-
선언 방법
- 타입[] 변수이름; -> int[] score; (권장 방법..)
- 타입 변수이름[]; -> int score[];
-
생성
- 변수이름 = new 타입[배열길이]; score = new int[5];
- 배열의 길이는 생략 가능하다. 만약 배열 길이를 지정해준 경우 그 길이를 벗어날 수 없다.
-
초기화 - 생성된 배열에 처음으로 값을 저장하는 것
- int[] score = {100, 90, 80, 70}; // 사용가능 선언과 초기화를 한번에 할때 가능..
- int[] score = new int[]{100, 90, 80, 70} // 사용가능
-
| int[] score; | // 사용불가능 선언 따로 한뒤 초기화 시 이방법은 사용 불가.
| score = {100, 90, 80, 70} |
-
int[] score;
score = new[]{100, 90, 80, 70} //사용가능
- 배열길이는 -> 배열이름.length 를 이용하면 알 수 있다.
-
랜덤 함수 ==> Math.random();
- random 함수는 0.0~1.0 까지만(1.0은 포함 x) 반환 하므로 *10을 해서 0~9까지의 값을 사용할 수 있도록한다..
- 더블 형태로 반환 하므로 int로 형변환을 해줘야 한다.
2월6일 월요일
*정렬 할때..
for(int i=0; i<score.length-1; i++){
for(int j=i+1; j<score.length; j++){
if(score[i]<score[j]){
temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
}
-
다차원 배열
-
선언방법
- 타입[][] 변수이름; ->int[][] score;
- 타입 변수이름[][]; ->int score[][];
- 타입[] 변수이름[]; ->int[] score[];
- 생성 ==> int [][]score = new int[5][3] 이런식으로
-
생성과 초기화를 한번에..
- int[][] score = new int[][]{ {100, 100, 100}, {20, 20, 20}, {30, 30, 30}, {40, 40, 40}, {50, 50, 50}}
-
-
가변 배열..
- 선언방법
- int[][] score = new int[5][];
- score[0] = new int[3];
- score[1] = new int[2];
- ...이하 생략...
- score[5] = new int[5];
- 이런식으로 배열 안의 배열의 크기를 바꿔서 지정할 수 있다..
-
간단하게 배열 복사하기..
- System.arraycopy(arg1, 0, arg2, 0, arg.length); 메소드를 이용하여 간단히 할 수 있다.
-
System.arraycopy(복사할 배열, 복사할배열 시작 위치, 복사될 배열, 복사될 배열시작위치, 복사할 배열의 길이)
1. Overloding
▶ 생성자 메소드(함수)처럼 메소드의 형태가 동일하지만, 입력되는 파라미터들의 값들이 다른 경우에 overloading이라고 한다.
▶ 하나의 클래스에 여러 개의 overloading된 메소드들이 존재 가능하다.
2. null
▶ 참조하고 있는 객체가 없음을 의미한다.
▶ 객체생성을 하지 않은 상태에서 레퍼런스만 준비해둔 상태이다.
▶ String a = null;
a라는 레퍼런스만 준비해둔 상태
String 클래스 타입의 객체가 필요하다는 의미
3. instanceof
▶ 연산자 중에 객체단위에 적용되는 연산자
▶ A instanceof B 는 A레퍼런스가 B타입의 객체를 가르키고 있는가를 의미한다.
▶ 객체의 타입을 검사하기 위해 사용.
4. this
▶ 객체형 변수(레퍼런스 자료형)에서 현재의 객체를 일컫는 용어이다.
▶ String str = new String("aaa"); 인 경우에는 현재 하나의 변수가 선언되어
그 변수를 이용해서 객체를 언급하는것을 의미한다.
▶ 반면에 this.name = new String("aaa"); 와 같은 경우에는 현재 만들어 지고
있는 객체의 name이라는 속성의 값이 "aaa"라는 것을 의미하게 된다.
이 글은 스프링노트에서 작성되었습니다.
'JAVA' 카테고리의 다른 글
SqlExploler(eclipse) (0) | 2012.05.08 |
---|---|
자바 EXE 만들기. (0) | 2012.05.08 |
JDBC (0) | 2012.05.08 |
VisualSVN (0) | 2012.05.08 |
JAVA 에러코드 (0) | 2012.05.08 |