java #2 java 기초2
compile time | runtime <cpu, memory 32Mbyte 할당받음> |
1. 소스코드 작성 - class 명{ } 2. 저장 : 클래스명,java 3. compile : javac.exe c:\>javac Test.java %성공하면 byte code생성 Test.class ->클래스파일 4. 실행 : java bytecode명 | 클래스로더 -local : 코드검증기 -network : JIT %실행할때 발생하는 에러를 runtime error라 한다.(논리 에러) %자바의 error는 두 종류가 있다. - 문법 error(컴파일 에러), runtime error. |
* 출력
System.out.print(값,Arguments); 값 출력 후 줄 안바꿈
System.out.println(값,Arguments); 값 출력 후 줄바꿈
: 모든 JDK에서 사용가능.
System.out.printf();
System.out.format();
: JDK1.5 이상에서 사용가능.
* 값,Arguments
상수 | 정수상수 - 4, 2, 2014 실수 - 소수점이 들어간 수 문자 - 'A', '한', '1'(홀따옴표 안의 한 글자) 문자열 - "여러 글자들"(쌍따옴표 안의 여러 글자) |
변수 | 기본형 : byte, short, int, long, char, float, double, boolean 참조형 : class, sring, array |
연산식 | 연산자를 사용한 계산 3+4 |
문자열 상수 확장 | "문자열 상수" + 상수/변수/연산식 (+ : 뒤에 붙임) |
(클래스.필드.메소드;)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | class UsePrint{ public static void main(String[] args){ /* print는 출력 후 줄변경을 하지 않는다. println은 출력 후 줄변경을 한다. System.out.println("안녕"); System.out.println("하세요"); */ //상수 : 변경되지 않는 값 //정수상수 System.out.println(2014); //실수상수 System.out.println(2.45); //문자상수 System.out.println('A'); System.out.println('가'); System.out.println('1'); //문자열상수 "로 묶여있는 여러 문자들 System.out.println("문자열상수"); //변수 //기본형인 경우 : 할당된 값 int i=2; System.out.println(i); //참조형인 경우 : 할당된 주소 UsePrint up=new UsePrint(); System.out.println(up); //연산식 : 연산된 결과가 출력 System.out.println(2+4); //"앞,뒤의 +는 붙임을 수행. System.out.println("2+4="+(2+4)); System.out.println("2+4="+2+4); }//main }//class | cs |
* 변수(variable)
- 프로그램 작성시 필요한 값에 별명을 부여하고 메모리에 일시적으로 저장하여 사용할 때.
instance (member) 변수, static (class) 변수, local 변수 3가지 지원한다.
%instance, class 변수는 필드에 만드는 변수다. 메인메소드 안에 만드는 변수는 local 변수.
사용법>
1. 선언
- 데이터형 변수명;
2. 값 할당
- 변수명 = 값;
3. 사용
- 출력 : System.out.println(변수명);
- 연산에 참여시킴 : 변수명 연산자 변수명
- 재할당 : 다른 변수에 값 넣기
ex)
int year;
int age
year = 2014;
age = 25;
System.out.println(year-age+1)
* Local variable(지역변수)- method 안에서 선언하고 사용하는 변수- method를 호출하면 메모리에 생성되고 method의 호출이 끝나면 메모리에서 내려온다.- method 외부에서는 지역변수를 사용할 수 없다.- 지역변수는 자동초기화가 되지 않기 때문에 선언 후 바로 사용하면 error가 발생한다.
- 모든 데이터형으로 변수를 선언할 수 있다.- 초기화값은 바로 연산되어도 연산결과에 영향을 끼치지 않는 값으로 넣어준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /* 작성일 : 02-04-2014 작성자 : 홍길동 내 용 : 메서드 안에 선언하고 메서드 내부에서만 사용되는 지역 변수의 사용법. 지역변수는 자동초기화가 되지 않기 때문에 선언 후 값할당을 하지 않고 사용하게 되면 error가 발생한다. */ class LocalVariable{ public static void main(String[] args) { //1. 선언 : 데이터형 변수명; int age; int nowYear; //2. 값할당 : 변수명=값; age=31; nowYear=2014; //3. 값사용 : 출력,연산,재할당 System.out.println("내 나이는 "+age+"살");//출력 System.out.println("태어난 해 "+(nowYear-age+1) ); //재할당 int birth=(nowYear-age+1); System.out.println("태어난 해 " + birth); //초기화되지 않은 변수를 직접 사용하면 error 발생 /* int year; System.out.println(year); */ //같은 이름의 변수는 지역{}에서 하나만 선언 할수있다. //int age; //지역변수의 초기화 : 데이터형 변수명=값 //int year=0; //변수의 이름은 한글로 부여할 수 있다. int 나이=0; 나이=20; System.out.println("나이는 "+나이); }//main }//class | cs |
* 데이터형 (Data Type)
- 값을 저장하기 위해 미리 정의해둔 것
- 기본형 데이터형, 참조형 데이터형 두가지가 제공된다.
- 변수 선언시 사용
- 기본형은 선언된 변수 자체에 값이 저장되는 데이터형
- 참조형은 값은 다른 곳에 저장되고 그 시작주소를 저장하는 데이터형
* 기본형
값종류 | 데이터형명 | Byte | 범위 |
정수 | byte | 1 | -128 ~ +127 |
" | short | 2 | -32768 ~ +32767 |
" | int (정수의 기준데이터형) | 4 | -2147483648 ~ +2147483647 |
" | long | 8 | -2^63 ~ 2^63-1 |
문자 | char | 2 | 홀따옴표(')로 묶여진 문자 하나, unicode 값이 저장됨 (한글도 들어가기 때문에 unicode 사용함, 영어는 아스키 코드만으로 표현 가능) |
실수 | float | 4 | 유효연산 소수점이하 7자리 |
" | double | 8 | 유효연산 소수점이하 15자리 |
불린 | boolean | 1 | true/false |
% ASCii 코드
A=65a=970=48
- 상수가 저장되는 공간(literal)을 일시적으로 변경하도록 설정하는 것. (literal : 상수를 사용하면 메모리에 저장되는데, 저장소의 이름을 literal이라고 한다.)
why?정수 일때 literal의 크기는 4byte. (그래서 int를 정수의 기준 데이터형이라고 이야기 한다.)literal의 사이즈보다 큰 크기의 데이터를 넣어야 할때 형명시를 한다.
- 정수 literal은 4byte이고 L, l을 사용하여 8byte로 변경할 수 있다.
- 실수 literal은 8byte이고, F,f를 사용하여 4byte로 변경할 수 있다.
- double은 D,d, 안넣어도 무방함.
- long에 l, L을 안붙이면 int로 간주.
long l = 2147483647 -> ok
long l = 2147483648 -> 컴파일 에러발생.
long l = 2147483648L -> ok
float f = 3.14f -> ok
8byte
double d = 3.14D; D안넣어도 무방,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /* 내용 : 기본형 데이터형으로 변수를 만들고 범위내의 값할당, 상수의 저장공간인 literal의 크기를 변경(형명시) */ class DataType{ public static void main(String[] args) { //정수형데이터형 byte a=10; short b=20; int c=30; long d = 40; //형명시 생략하여 사용할 수 있음 //정해진 literal에 크기보다 큰 정수상수를 사용할때에는 //반드시 형명시를 하여 literal의 크기를 변경하여 사용한다. long e = 2147483648l; System.out.println("byte : "+a+", short : "+ b+", int : "+c+ ", long : "+d+", "+e); //문자 /* char f='A'; char g='가'; char h='0'; */ //동일 형의 변수를 여러개 선언할 때에는 ,로 구분하여 만들 수 있다. //char f='A', g='가', h='0';//unicode 값이 들어간다. char f=65, g=44032, h=48;//unicode 값을 직접 할당할 수 있다. System.out.println("char : "+f+", "+g+", "+h); //실수 float i=3.4f; //형명시 필수 F or f double j=3.4;//형명시 생략 가능 D or d. 써도되고 안서도 된다. System.out.println("float : " +i+", "+j); //불린 :true / false만 저장가능 boolean k=true, l=false; System.out.println("boolean : "+k+", "+l); }//main }//class | cs |
'컴퓨터 관련 > JAVA 강의' 카테고리의 다른 글
java #7 문자열 비교(equals), Arguments (0) | 2016.12.18 |
---|---|
java #6 패키지 (0) | 2016.12.18 |
java #5 BinaryString/Arguments/parseInt/제어문 (0) | 2016.12.18 |
java #3, #4 Constant/형변환/API/연산자/진수 (0) | 2016.12.18 |
java #1 java 기초1 (0) | 2016.12.18 |