* 환경변수 설정
* jdk 설치
> 자바의 소유가 오라클로 넘어갔기 때문에 오라클에서 받기 / 혹은 오픈소스로 받기 가능
* java 다운받은 후!
시스템 속성 – 고급 – 환경변수 들어가서 시스템변수-path-‘새로 만들기’에 ~~bin 경로 추가
그리고 시스템변수-CLASSPATH에 경로 . 추가
> javac.exe
> javac -version
cmd에서 위의 명령어로 확인 가능
* eclipse 다 되는 버전으로 다운 받은 후,
경로는 c:\dev\eclipse\workspace로 설정
* Hello Java 출력
> TestHello.java 파일을 생성 / TestHello 클래스를 작성 / "안녕하세요~~"라는 문자열을 화면에 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package basic;
// 주석 : 실행되지 않는 코드 > 편리한 관리를 위해 코드에 대한 설명
public class Hello { // Hello 클래스 시작
// main method : 자바 응용 프로그램의 시작점
// public static void main ~~~
public static void main(String[] args) {
System.out.println("Hello Java World"); // 1줄 출력
}
}
|
cs |
1
2
3
4
5
6
7
8
9
|
package basic;
public class TestHello { // TestHello class 시작
// main method
public static void main(String[ ] args) {
// 표준 출려장치에 1줄 출력
System.out.println("안녕하세요~~"); // 단축어: sysout+ctrl+spacebar
}// main method end
}// TestHello class end
|
cs |
* 변수 : 변하는 수, 이름이 부여된 메모리 영역
- primitive type(기본형) : 논리형, 문자형, 정수형, 실수형
- reference type(참조형)
종류/크기 | 1byte(=8bit) | 2byte(=16bit) | 4byte(=32bit) | 8byte(=64bit) |
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte (-128~127) |
short (O:-32768~32767) (X:0~65535) |
int (-20억~20억) |
long (-800경~800경) |
실수형 | float (정밀도 - 7자리) |
double (정밀도 - 15자리) |
(**정수형에서는 int, 실수형에서는 double이 디폴트 타입)
* 정수형 변수 : byte(8bit), short(16bit), int(32bit), long(64bit)
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
|
package basic;
// 정수형
// byte(8bit) short(16bit) int(32) lonv(64)
//VArEx1 클래스 시작
public class VarEx1 {
//main method 시작 > 단축키:main+ctrl+space+enter
public static void main(String[] args) {
// 자료형 변수명;
// 10이라는 숫자를 저장
byte b1; // b1 이라는 이름의 byte 크기 변수를 선언
b1 = 10; // 대입연산자
// b1 변수에 10의 값을 대입해
// 표준 출력 장치에 b1을 출력
System.out.println(b1);
System.out.println("----------------");
// b1 변수에 20의 값을 대입
// = : 대입연산, 할당연산자
b1 = 20;
// b1 변수를 출력
System.out.println(b1);
System.out.println("----------------");
// b2 라는 변수 byte 선언
byte b2;
//100을 대입
b2 = 100;
// 화면에 출력
System.out.println(b2);
System.out.println("----------------");
// byte형 변수 b3 만들고 127 값을 할당 후 출력
byte b3 = 127; // 선언과 대입 식 결합
System.out.println(b3);
System.out.println("----------------");
// byte 형 변수 b4 -128을 할당 후 출력
byte b4 = -128;
System.out.println(b4);
}
}
|
cs |
- byte b3 = 10; > 10은 10진수로 표현하면? 1010
0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
: 부호자리
양수 : 0
음수 : 1
- byte b4 = 20; > 0001 0100(2진수)
- 그럼 byte에서 가장 큰 값은? >> 0111 1111 = 127 >> 따라서 byte는 127까지 대입 가능
- 그럼 음수는?
> 1000 0000이라면? = -128로 여김
>> 따라서 byte가 가질 수 있는 값의 범위 : -128 ~ 127
- short의 최대값은? > 0111 1111 1111 1111 > 32,767
* 실수형 변수 : float(32bit) / double(64bit)
- float(32bit) : 부호(1bit) + 지수(8bit) + 가수(23bit) = 32bit = 4byte
- double(64bit) : 부호(1bit) + 지수(11bit) + 가수(52bit) = 64bit = 8byte
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
package basic;
// VarEx2 class 시작
public class VarEx2 {
// main method
public static void main(String[] args) {
// short 크기의 변수 k를 선언
short k;
// 5000 값을 할당
k = 5000;
// k 변수의 값을 화면에 출력
System.out.println(k);
System.out.println("-------------------");
// short형 변수 k에 최대값 32767 할당
k = 32767;
// 표준출력장치로 k 출력
System.out.println(k);
System.out.println("-------------------");
k = -32768; // -0 ==> -32768로 간주
System.out.println(k);
System.out.println("-------------------");
// int 크기의 변수 m을 선언
int m;
// m에 int의 최대값을 대입
m = 2147483647;
// 화면에 출력
System.out.println(m);
System.out.println("-------------------");
// 최소값을 대입
m = -2147483648;
// 화면에 출력
System.out.println(m);
System.out.println("-------------------");
// 자료형 변수명 = 상수;
// 변수 (항상 변수는 값을 갖는 수)
// 상수 (항상 동일한 값을 갖는 수)
int m1 = 100; // int 크기의 m1변수에 100의 값을 할당(대입)
byte b1 = 10; // byte 크기의 b1변수에 10의 크기를 할당(대입)
long t = 200L; // long 크기의 t변수에 200을 할당(대입)
// 상수에 L은 2001, 200i와 유사하기 때문에 대문자를 사용; (long형 상수)
System.out.println(t);
System.out.println("-------------------");
// 1253 ==> 1.234*1000 ==> 1.253*10^3 ==> 1.253 + 3
// floating point : 부동 소수점
// 실수형 변수(지수부+가수부)
// 실수 float형 f1 변수에 3.14를 할당
float f1 = 3.14f;
// f1 출력
System.out.println("f1 : "+f1);
System.out.println("-------------------");
// 실수 double형 변수 d1변수에 3.25를 할당
// double d1 = 3.25d;
double d1 = 3.25d; // 실수형은 생략하면 double 타입
System.out.println("d1 : "+d1);
System.out.println("-------------------");
double d2 = 9.99; // 상수 뒤에 d를 생략하면 자동으로 d
System.out.println("d2 : "+d2);
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package basic;
public class VarEx3 {
public static void main(String[] args) {
int i = 20;
System.out.println("i : "+ i); // +: 연결연산자
float h = 182.3f;
System.out.println("h : "+ h);
System.out.println("나이 : " + i + "살 ");
System.out.println("키 " + h);
}
}
|
cs |
- 형변환 : 데이터를 변수에 저장하거나 연산 중간에 데이터의 자료형을 변환하는 것
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
|
package basic;
public class VarEx4 {
// main method
public static void main(String[] args) {
//byte 크기의 b1이라는 변수를 선언하고 10의 값을 할당
byte b1 = 10;
// byte 크기의 b2라는 변수를 선언하고 50의 값을 할당
byte b2 = 50;
// 두 변수의 값을 출력
System.out.println("b1 : "+b1);
System.out.println("b2 : "+b2);
//short형 변수 sh1dp 18121를 할당
short sh1 = 18121;
// b1의 변수 안에 들어 있는 값을 sh1 이라는 변수에 대입 >> 소주잔의 값을 맥주잔에 붓는 격
// short형 변수 sh1에 byte형 변수 b1을 할당. 이때, short형이 더 크므로
// 암시적 형변환되어 할당된다.
sh1 = b1; // 큰잔 = 작은잔 ;
System.out.println("sh1 : " + sh1);
// b1 = sh1; // 작은 잔 = 큰 잔 overflow
// 명시적 형변환 필요
// byte형 변수 b1에 short형 변수 sh1의 값을 byte로 형변환 후
// 할당
b1 = (byte)sh1; // (자료형)
System.out.println("b1 : " + b1);
}
}
|
cs |
* 문자형 변수 : char(16bit)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package basic;
// 문자 : char : 16bit, 2byte
public class VarEx5 {
public static void main(String[] args) {
// 16 or 2byte 크기
// 문자형 char로 c1변수를 선언하고 문자 a를 할당
char c1 = 'a';
// 문자형 char로 c2변수를 선언하고 문자 a에 해당하는 아스키코드를 할당
// A : 65
// a : 97
// 0 : 48
// enter 13,10
char c2 = 97;
// 문자형 char c3변수를 선언하고 문자 a에 해당하는 유니코드를 할당
char c3 = '\u0061';
System.out.println("c1 : " + c1);
System.out.println("c2 : " + c2);
System.out.println("c3 : " + c3);
// java라는 문자를 출력
// char형 변수에 ch1, ch2, ch3, ch4 <-- j, a, v, a 출력
char ch1 = 'j'; // ch는 한 문자만 저장 가능
char ch2 = 'a';
char ch3 = 'v';
char ch4 = 'a';
// char t1 = 'ab' : 불가
System.out.println("" + ch1 + ch2 + ch3 + ch4); // "" 없으면 오류 발생
// +
// 1. 산술연산자
// 2. 연결연산자 : 문자열 뒤에 오면 (||) 의미를 가진다.
// " 여러글자 "
// c 언어 ==> 문법 ==> java 언어
// String의 S는 대문자
String str = "java";
System.out.println(str);
// 화면에 표시하기 어려운 키 값
// 특수문자: 탭, 엔터
// \n : 엔터
// \t : tab
// \b : backspace
// \\ : \
// \' : '
// \\" : "
// 표준 출력장치로 문자열 "오늘은" enter "즐거운" tab "목요일입니다" 를 출력
System.out.println("오늘은 \n 즐거운 \t 목요일입니다");
}
}
|
cs |
* 논리형 변수 : Boolean(1byte) > 운영체제에 따라 1bit 할당하기도..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package basic;
public class VarEx6 {
public static void main(String[] args) {
// 논리 : boolean (1byte or 1bit)
// c언어는 1 or 0 표현 가능
// 자바 반드시 true, false로 표현
// 참, 거짓 : 논리값을 저장할 수 있는 자료형
// 논리형인 boolean형 b1을 선언하고 true값을 할당
boolean b1 = true; // boolean b1 = 1; xxxx
// 논리형인 boolean형 b2을 선언하고 false를 할당
boolean b2 = false; // 0 의미
System.out.println("b1 : " + b1);
System.out.println("b2 : " + b2);
}
}
|
cs |
* 연산자 > 증감연산자
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
47
48
49
50
51
52
53
54
55
56
|
package basic;
// 연산자 : 자료 가공을 위해 정해진 방식에 따라 계산하고 그 결과를 얻기 위한 행위를
// 의미하는 기호들의 총칭
// 1. 증감연산자 : ++, --
public class OperEx1 {
public static void main(String[] args) {
// a라는 이름의 int 크기의 공간을 선언
int a;
// a에 100 값을 할당
a = 100;
// b라는 이름의 int 크기의 공간 선언하면서 10 값을 할당
int b = 10;
// a, b를 화면에 출력
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("--------------");
a = a + 1; // 우항에 위치한 값을 왼쪽의 변수에 대입(할당)하라 : 연산자 2개 사용
// a, b를 화면에 출력
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("--------------");
++a;
// a++; // 자기 자신의 값을 1 증가시킴 : 연산자 1개 사용 > 권장
//a--; // 1 감소시킴
// a, b를 화면에 출력
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("==============================");
a = 100;
b = 10;
// 멀티 라인 주석 설정, 해제 단축키 : ctrl + /
// a = a + 1; // a <-- 101
// b = a; // a 변수의 값을 b 변수에 대입한다.
// b = ++a; // a를 먼저 증가시키고 b에 대입
// b = a;
// a = a + 1;
b = a++; // 대입한 뒤 증가
System.out.println("a : " + a);
System.out.println("b : " + b);
}
}
|
cs |
++ 참고 - db에서 문자열은 ‘xxxx’ / 자바에서 문자열은 “문자열” - 'alt + 방향키'는 식을 다른 줄로 옮기기 |
++ 확인 문제
1. 자바에서 사용되는 변수의 종류는?
- primitive type(기본형) : 논리형, 문자형, 정수형, 실수형
- reference type(참조형)
2. 각 변수의 종류와 크기는?
* 정수형 변수 : byte(8bit), short(16bit), int(32bit), long(64bit)
* 실수형 변수 : float(32bit) / double(64bit)
* 문자형 변수 : char(16bit)
* 논리형 변수 : Boolean(1byte)
3. byte 의 최대값과 최소값은 얼마이며 왜 그러한가?
byte는 8bit의 크기로 총 8칸이 할당된다.
그 중에서도 맨 첫번째 칸은 부호(0:양수, 1:음수)를 나타내기 때문에
최대값은 0111 1111 즉, 127이고,
최소값은 1000 0000로 이것은 -0, 즉 -128을 의미한다.
'Java' 카테고리의 다른 글
[Java] System.in.read() / Scanner / if ~ else if / 이중 for문 / printf / println (0) | 2023.03.06 |
---|---|
[Java] 연산자(증감 / 산술 / Shift / 논리 / 비교 / 비트 / 논리 / 삼항 / 대입), 반복문(for문 / while문 / do~while문) (0) | 2023.03.03 |
[자바의 정석] #CH.3 연산자 operator - 3.1 연산자와 피연산자 / 3.2 단항 연산자 (0) | 2023.02.01 |
[자바의 정석] #CH.2 변수 Variable - 2.5 형변환 (0) | 2023.01.18 |
[자바의 정석] #CH.2 변수 Variable - 2.4 기본형(primitive type) (0) | 2023.01.18 |