노력과 삽질 퇴적물
JAVA: 자바 기초 (1) 본문
00장. 개발환경
컴파일러: 이클립스 유노, Eclipse Juno R Packages
자바환경: jdk1.7.0_04 & jre7 [J2SE]
01장. 기본구조
1. 기본구조-Hello_World
|
// package : 클래스 묶음 //package chapter01; // import : C/C++의 #include와 같은 쓰임새 import java.io.IOException; public class Java_Novice // public class 클래스_이름 == 클래스_이름.java // [public class 1개 / 파일 1개]만 가능. { public static void main (String[] message) //main함수. 항상 이 형태! { //static. 선언된 파일내에서만 참조가능. String tweet = "Hello_World";
int n_i = 1234; double n_d = 3.14; //성능상 double보다 float권장.
//1. 기본출력법 System.out.println("println() : " + tweet); // JAVA식 기본 출력1. System.out.print("print() : " + tweet + "\n");// JAVA식 기본 출력2. System.out.printf("printf() : " + tweet + "\n"); // C언어식 출력문. printf() System.out.println("\n"); System.out.println("println(), int : " + n_i); System.out.printf ("printf(), double : %f", n_d); // int처럼 출력하려면 %.0f로 지정. } //public static void main (String args[]) }// public class Java_Novice |
2. 기본구조-자료형 기본출력법 | |
//package chapter01; public class Exam01 //!!!주의 - java파일명과 같아야 함.!!! //!!!주의 - 클래스명은 대문자로 시작.!!! { public static void main( String[] message ) { System.out.print("연습용\n"); System.out.println("자바코드");
System.out.println("1. 정수형 자료"); byte a = 10; //1byte. -128 ~ 127 short b = 128; //2byte. -32758 ~ 327676 int c = 1000; //4byte. -2147483640 ~ 2147483647 long d = 6580L; //8byte. -2^61 ~ 2^(2^61-1). //식별성을 위해 대문자L을 권장.
System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.print("\n");
System.out.println("2. 실수형 자료형"); float e = 24.5f; //4byte. 1.4E-45 ~ 3.40282E38 double f = 120.40; //8byte. 4.92E-324 ~ 1.8E308
System.out.println("e : " + e + "\n" + "f : " + f );
System.out.println("3. 문자 변수"); char x = 'A'; //자바만 char이 2byte char y = '헐'; char z = '%';
System.out.println("x : " + x + "\n" + "y : " + y + "\n" + "z : " + z );
System.out.println("4. 문자열 자료형"); String str1 = "Hello Java"; String str2 = "Hello World"; String str3 = "2012-07-09";
System.out.println("str1 : " + str1 + "\n" + "str2 : " + str2 + "\n" + "str3 : " + str3 );
System.out.println("5. 논리형 자료형"); boolean b1 = true; //1 1byte boolean b2 = false; //0 System.out.println("b1 : " + b1 + "\n" + "b2 : " + b2 ); } } |
|
* 교재등에 다루어지는 자바 API는 일부분이라고 한다. 공식 API웹문서[SE7]등을 이용해서 원하는 클래스를 찾는 습관을 들이는게 좋을것 같다.
3. 연산자 /*연산자 우선순위 01. 최우선 연산자 : . []행렬 () 02. 단항연산자 : ! 일반부정 ~ 이진부정(bit부정) +/- ++/--(전위 증감 연산자) casting_연산 03. 산술 연산자 : + - * / % 04. 시프트 연산자 : << >> >>> 05. 관계 연산자 : < > <= >= = 06. 비트 연산자 : & ^ | 07. 논리 연산자 : && || 08. 삼항 연산자 조건항 09. 배정대입 연산자 : = += -= <<= 10. 후위 증감연산자 :++/--후위 증감연산자 */ | |
//package chapter01; public class Exam02 { public static void main( String[] message ) { boolean a = false; //0 boolean b = !a; // !a == 1 boolean b2 = !!a; //!!a == 1. 이렇게 쓰는 경우도 있음.
System.out.println("a : " + a + "\n" + "b : " + b + "\n" + "b2 : " + b2 );
int c = ~10; //-11 // 0000 1010 // 1111 0101 int d = ~-15; //14 // 0000 1010 // 1111 0101 System.out.println("c : " + c + "\n" + "d : " + d ); /*비트 부정시, 양수k는 -(k + 1). 음수j는 -(j + 1)*/
int x = 10; x++; // x == 11. 증가연산자-후위형 ++x; // x == 12. 증가연산자-전위형 System.out.println("x : " + x); x--; // x == 11. 감소연산자-후위형 --x; // x == 12. 감소연산자-전위형 System.out.println("x : " + x);
//!!!주의 - 증감연산자를 변수의 값으로 할당은 비권장 !!! int y = 10; int z = y++; //후위형 증감연산자는 '='로 변수값 할당후에 처리. System.out.println("z : " + z + "\n" + "y : " + y ); } } |
|
4. 캐스팅 연산-형변환 | |
//package chapter01; public class Exam04 { public static void main( String[] message ) { byte a = 10; byte b = a; // b == a == 10 byte c = 10; //1byte short e = c; //2byte byte f = (byte)e;//byte로 캐스트 연산처리된 d
System.out.println("e : " + e + "\n" +"f : " + f); int x = 100; long y = x; int z = (int)y; System.out.println("z : " + z);
float i = 24.5f; float j = i; float k = (float)j; System.out.println("k : " + k + "\n");
int java = 10; float value = 24.5f; float sum = java + value; System.out.println("sum : " + sum);
int p1 = 10; int p2 = 3; float result1 = p1/p2; float result2 = (float)p1/p2; System.out.println("result1 : " + result1 + "\n" +"result2 : " + result2 ); } } |
|
02장. 기본입력
1. read() | |
//package chapter02; import java.io.IOException; public class Exam11 { public static void main( String[] message ) throws IOException { //문자 1byte, 문자열 2byte System.out.print("Press to any key and enter_key : "); char x = (char)System.in.read(); System.out.println("x : " + x); System.in.read(); // \r로 작용 System.in.read(); // \n로 작용
System.out.print("Press to any key and enter_key : "); char y = (char)System.in.read(); System.out.println("y : " + y); System.in.read(); // \r로 작용 //System.in.read(); // \n로 작용
System.out.print("Press to any key and enter_key : "); char z = (char)System.in.read(); System.out.println("z : " + z); System.in.read(); // \r로 작용 //System.in.read(); // \n로 작용 } } |
|
2. readLine(), BufferedReader |
//package chapter02; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam12 { public static void main( String[] message ) throws IOException { BufferedReader in_key = new BufferedReader (new InputStreamReader(System.in));
//문자열 입력 System.out.print("문자열 입력 : "); String str1 = in_key.readLine(); //버퍼&스트림을 통해 키보드입력을 불러온다. System.out.println("출력 : " + str1); //정수형 입력 System.out.print("정수형1, byte[08bit] : "); byte str2 = Byte.parseByte( in_key.readLine() ); System.out.println("출력 : " + str2);
System.out.print("정수형2, short[16bit] : "); short str3 = Short.parseShort( in_key.readLine() ); System.out.println("출력 : " + str3);
System.out.print("정수형3, int[32bit] : "); int str4 = Integer.parseInt( in_key.readLine() ); System.out.println("출력 : " + str4);
System.out.print("정수형4, long[64bit] : "); long str5 = Long.parseLong( in_key.readLine() ); System.out.println("출력 : " + str5);
//실수형 입력 System.out.print("실수형1, float[32bit] : "); float x = Float.parseFloat( in_key.readLine() ); System.out.println("출력 : " + x);
System.out.print("실수형2, double[64bit] : "); double y = Double.parseDouble( in_key.readLine() ); System.out.println("출력 : " + y);
//문자 입력 System.out.print("문자 입력 : "); char key = (char)System.in.read(); System.in.read(); System.in.read(); System.out.println("문자출력 : " + key); } } |
3. Scanner | |
import java.util.Scanner; import java.io.IOException; public class Exam109 { public static void main(String[] message) throws IOException // IO예외처리는 JAVA: 자바 기초 (3)에서 { Scanner key = new Scanner( System.in );
System.out.print("정수 입력 : "); int x = key.nextInt();
System.out.print("실수 입력 : "); float y = key.nextFloat();
System.out.print("문자열 입력 : "); String str = key .next();
System.out.print("문자 : "); char ch = (char)System.in.read(); System.in.read(); System.in.read();
System.out.print("java.util.Scanner\n"); System.out.print("정수 : " + x + "\n" + "실수 : " + y + "\n" + "문자열 : " + x + "\n" + "문자 : " + x + "\n"); } } |
|
03장. 제어문
1. if-else | |
//package chapter03; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam13 { public static void main( String[] message ) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
System.out.print("입력1, if-else문 : "); int y = Integer.parseInt(in.readLine()); if( y > 100) { System.out.println("100보다 크다"); } else if( y < 0) { System.out.println("0보다 크다"); } else { System.out.println("10보다 작다"); } System.out.print("2012-07\n\n"); } } |
|
2. switch -> 라벨(Label)과 break연동은 자바에만 가능? | |
//package chapter03; import java.io.IOException; public class Exam17 { public static void main( String[] message ) throws IOException { System.out.print("문자 입력 : [1, W, B] "); char key = (char)System.in.read(); System.in.read(); System.in.read();
myLabel: switch(key) //조건식[key]에는 byte&short&char&int만 허용 { case '1': System.out.print("숫자1\n"); // 구현문1 break; // 자신의 직속블록 바로 위의 블록을 종료. /* break부재시 다음번 case로 자동실행되는 성질을 이용가능. * '이음동의'(?)처럼 대소문자 구분없이도 입력처리도 가능. */ case 'w': case 'W': System.out.print("백\n"); // 구현문2 break myLabel; // 지정된 라벨의 블록을 종료.
case 'b': case 'B': System.out.print("청\n"); // 구현문3 break myLabel; // 지정된 라벨의 블록을 . default : // 지정입력외인 '예외처리' System.out.print("지정되지 않은 입력\n"); //break; }//switch() } } |
|
3. for |
//package chapter03; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam13 { public static void main( String[] message ) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); System.out.print("입력3, for문 : "); int x = Integer.parseInt(in.readLine()); int cnt; for( cnt = 0; cnt<x; cnt++ ) { System.out.print(cnt + "\t"); } } } |
4. while |
//package chapter03; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam13 { public static void main( String[] message ) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); System.out.print("입력4, while문 : "); int z1 = Integer.parseInt(in.readLine()); while( z1 <= 15 ) //while()의 조건식 ≒ 순환문 루프조건 { z1++; System.out.print(z1 + "\t"); } System.out.print("\n\n"); } } |
5. do-while |
//package chapter03; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam13 { public static void main( String[] message ) throws IOException { BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); System.out.print("입력5, do-while문 : "); int z2 = Integer.parseInt(in.readLine()); do { z2++; System.out.print(z2 + "\t"); }while( z2 <= 15 ); System.out.print("\n\n"); } } |
04장. 배열
* 동일한 자료형들을 인덱스화하여 정리한것.(첨자값을 가진다.)
1. 1차원 배열 | |
//package chapter04; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam32 { public static void main( String[] message ) throws IOException { BufferedReader key = new BufferedReader ( new InputStreamReader(System.in) );
System.out.print("배열수를 입력하세요 : "); int cnt = Integer.parseInt(key.readLine()); int[] arr = new int[cnt]; // JAVA에선 // '자료형[] 변수명 = new 자료형[] {...};'이거나 // '자료형[] 변수명 = new 자료형[10];' 처럼 자료형 뒤에 배열기호 System.out.print("배열길이 : " + arr.length + "\n\n");
for( cnt = 0; cnt < arr.length; cnt++ ) // length, 배열의 길이를 자동으로 받는게 가능. { System.out.print("배열원소입력 : "); arr[cnt] = Integer.parseInt(key.readLine()); } System.out.print("입력완료\n\n"); System.out.print("1차원 배열\n"); for( cnt = 0; cnt < arr.length; cnt++ ) { System.out.print(arr[cnt] + "\t"); } } } |
2. 2차원 배열
|
//package chapter04; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Exam35 { public static void main( String[] message ) throws IOException { BufferedReader key = new BufferedReader ( new InputStreamReader(System.in) ); int[][] arr = new int[][]{{10, 20, 30}, {40, 50, 60}, {70, 80, 90}, {1, 2, 3} };
System.out.print("행렬 " + arr.length + "행 * " + arr[0].length + "열\n"); for( int col = 0; col < arr.length; col++) { for( int row = 0; row < 3; row++ ) { System.out.print(arr[col][row] + "\t"); } } System.out.print("2차행렬 행길이, arr.length : " + arr.length + "\n"); System.out.print("2차행렬 열길이, arr[0].length : " + arr[0].length); } } |
'📂기초 및 세팅 note > 언어. JAVA & JDK 계열' 카테고리의 다른 글
이클립스: 설정 및 팁 (0) | 2012.07.20 |
---|---|
JAVA: 자바 기초 (3) (0) | 2012.07.17 |
JAVA: 자바 기초 (2) (0) | 2012.07.11 |
JAVA: 간단한 RMI 테스트 (0) | 2011.11.14 |
이클립스: JAVA개발용 설치 (0) | 2011.11.14 |