1. 글자 출력
=> System.out.print() 사용
(1) System.out.print() : 괄호 안의 내용 출력 후 줄 바꿈 하지 않는다.
(2) System.out.println() : 괄호 안의 내용 출력 후 줄 바꿈 한다.
ex1.
clasee Hello, java { public static avoid main(String args[]) { System.out.println(”Hello, java”) System.out.print(”Hello”) System.out.println(”,java”) } } |
Hello, java Hello, java |
2. 변수 선언 및 저장
*변수(variable):하나의 값을 저장할 수 있는 저장공간
*변수 선언 이유:값(data)을 저장할 공간을 마련하기 위해서
*초기화:변수에 처음으로 값을 저장하는 것
ex2.
class Exam2 { public static avoid main(String argsp[]) { int x=5; // 변수선언 System.out.println(x); x=10; // 변수 x에 기존의 5대신 10을 저장한다 System.out.println(x); } } |
5 10 |
3. 변수, 상수, 리터럴
*변수(variable):하나의 값을 저장할 수 있는 저장공간
*상수(constant):한 번 값을 저장하면 다른 값으로 변경할 수 없는 저장공간
*리터럴(literal):기존에 우리가 알고 있던 ‘상수’의 의미, 그 자체로 값인 수.
3-1. 기본형 변수의 종류
숫자형 | 정수형 | byte(1), short(2), int(4), long(8) |
실수형 | float(4), double(8) | |
문자형 | char(2) | |
논리형 | boolean(1) |
[더하기 개념]
1byte=8bit
ex) byte=8bit, short=8x2=16bit, int=32bit, long=64bit...
정수형의 경우 가질 수 있는 범위 값
: -(2ⁿ⁻¹)~{(2ⁿ⁺¹)-1} (이때, n=bit의 수)
ex3.
byte가 가질 수 있는 범위의 값은? =>-(2⁸⁻¹)~{(2⁸⁻¹)-1} = -128~127 |
*변수의 명명 규칙 - 변수의 이름 = (식별자)
[1] 대소문자가 구분되며 길이에 제한이 없다.
[2] 예약어를 사용해서는 안된다. (예약어 = 키워드, 리져브드 워드)
[3] 숫자로 시작해서는 안된다. (top10은 가능, 7up은 불가능)
[4] 특수문자는 ‘_’와 ‘$’만 허용된다.
3-1-1. 기본형
[1] 논리형 - boolean(1bit/1byte)
: true와 false 중 하나를 저장하며 default값은 false이다.
->대소문자 구분되므로 Ture 혹은 False는 에러발생한다.
[2] 문자형 - char
: 단 하나의 문자만 저장가능하며, 아무것도 초기화하지 않을 수는 없다.
-> ch c = ‘ ‘; (공백으로 초기화해줘야 함)
- ch c = 65;와 같은 경우 65는 유니코드로 저장된다.(=A)
-> 사실 ch c = ‘A’와 같은 경우에도 A가 유니코드 값인 65로 저장되는 것
[3] 정수형 - byte, short, int, long
[더하기 개념]
[1] 인코딩(encoding)
: 문자를 코드로 변환하는 것
[2] 디코딩(decoding)
: 코드를 문자로 변환하는 것
3-2. 참조형 변수의 대표 종류
*이때 참조형이란 주소를 참조한다는 뜻
숫자형 : long(20억이 넘을 때 사용)
문자형 : String(문자열 타입으로 여러 문자를 저장할 때 사용)
->기본형은 실제 값을 저장, 참조형은 어떤 값이 저장되어 있는 주소를 값으로 저장함 -> 참조형 간의 연산은 불가능하므로 실제 연산은 모두 기본형으로 이루어짐
->참조형 변수 선언 시 변수 타입은 클래스 이름을 사용한다.
3-3. 상수 선언 방법
1) 변수 타입 앞에 ‘final’을 붙여준다.
2) 상수의 이름은 모두 대문자로 하는 것이 관례이다.
3) 여러 단어로 이루어져 있을 경우 ‘_’로 구분한다.
4) 상수는 선언과 동시에 초기화하는 것이 가장 좋다.
ex4.
final int MAX_SPEED; // 정수형 상수 MAX_SPEED 선언 MAX_SPEED=100; MAX_SPEED=200; //에러; 이미 100으로 상수 선언했으므로 변경불가 |
3-4. 리터럴의 타입과 접미사
=> 리터럴에 접미사를 붙여 변수의 타입을 구분한다.
[1] 정수형 [byte, short, int, long]
=> 기본형인 int는 접미사 사용 x
=> byte, short는 int형을 따르므로 똑같이 접미사 사용 x
=> long은 접미사로 ‘l’또는 ‘L’ 사용
=> long형의 경우 중간에 ‘_’을 ‘,’와 같이 삽입 가능
[2] 실수형 [float, double]
=> 기본형인 double은 ‘d’나 ‘D’로 사용할 수 있지만 생략 가능
=> float는 ‘f’또는 ‘F’를 사용하며 생략 불가능
=> 리터럴에 소수점이나, 10의 제곱을 나타내는 기호 E 또는 e, 접미사 f, F, d, D를 포함하고 있으면 실수형 리터럴로 간주한다.
[3] 진수 표현
=>16진수를 표현 : 숫자 앞에 0x 또는 0X를 붙임
=>8진수를 표현 : 숫자 앞에 0을 붙임
ex5.
int octNum =010; //8진수 10, 10진수 8 int hexNum=0x10; //16진수 10, 10진수 16 int binNum =0b10; //2진수 10, 10진수 2 |
[4] 문자 리터럴(char)과 문자열 리터럴(String)
1) 문자 리터럴(char)
- 단 하나의 문자만 저장할 수 있다.
- ‘ ‘로 표현하며, 반드시 하나의 문자가 있어야 한다.
2) 문자열 리터럴(String)
- 여러 개의 문자를 저장할 수 있다.
- “”로 표현하며, 안에 아무런 문자가 들어있지 않아도 허용된다.
4. 정수형의 오버플로우(overflow)
:연산과정에서 해당 타입이 표현할 수 있는 값의 범위를 넘어서는 것.
그러나, 오버플로우가 발생했다 해서 에러가 발생하는 것은 아니며
다만 원하던 결과를 얻지 못할 뿐이다.
=> 충분한 크기의 변수 타입 설정 필요
이와 같은 원리로,
최댓값+1 ==> 최솟값
ex6.
short smin=-32768, smax=32767; char cmin=0, cmax=65535; System.our.println(”smin=”+smin); System.our.println(”smax=”+smax); System.our.println(”smin-1=”+(short)(smin-1)); System.our.println(”smax+1=”+(short)(smax+1)); System.our.println(”cmin-1=”+(int)--cmin); System.our.println(”cmax+1=”+(int)++cmin); |
smin=-32768 smax=32767 smin-1=32767 smin+1=-32678 cmin-1=65535 cmax+1=0 |
5. 문자열 결합
=> 덧셈 연산자(+)는 피연산자가 모두 숫자일 때는 두 수를 더하지만, 어느 한쪽이라도 String이면 두 피연산자 모두 문자열로 변환시킨다.
ex7.
System.out.println(7+””); System.out.println(7+” “); System.out.println(” “+7); System.out.println(””+””); System.out.println(7+7+””); System.out.println(””+7+7); |
7 7(공백) (공백)7 (공백) 14 77 |
6. printf / 지시자(specifier)
=> 같은 값을 다른 형식으로 출력하고 싶을 때 printf사용
*지시자=값을 어떻게 출력한 것인지를 지시해 주는 역할
*출력하려는 값이 2개일 경우, 지시자도 2개 사용해야 함
*출력될 값과 지시자의 순서는 일치해야 한다.
*3개 이상의 값도 지시자 지정 출력 가능하며, 개수의 제한이 없다.
(1)%d=10진 정수의 형식으로 출력 |
(2)%x=16진 정수의 형식으로 출력 |
(3)%f=부동 소수점의 형식으로 출력 =소수점 아래 6자리까지만 출력하므로 7번째에서 반올림 함 |
(4)%c=문자로 출력 |
(5)%s=문자열로 출력 |
(6)%e, %E=지수형태로 출력 |
(7)%g=값을 간단하게 출력 (전체 숫자의 갯수가 6개가 되게 함) |
(8)%n=줄바꿈 |
(9)%0=8진 정수의 형식으로 출력 |
ex8.
String url=”www.codechobo.com”; float f1=.10f; // 0.10, 1.0e-1 float f2=1e1f; // 10.0, 1.0e1, 1.0e+1 float f3=3.14e3f; //3140.0, 3.14e3, 3.14e+3 double d=1.23456789; System.out.printf(”f1=%f, %e, %g%n”, f1, f1, f1); System.out.printf(”f2=%f, %e, %g%n”, f2, f2, f2); System.out.printf(”f3=%f ,%e, %g%n”, f3, f3, f3); System.out.printf(”d=%f%n”, d); System.out.printf(”d=%14.10f%n”, d); System.out.printf(”[12345678901234567890]%n]”); System.out.printf(”[%s]%n”, url”); System.out.printf(”[%20s]%n, url”); System.out.printf(”[%-20s]%n, url”); System.out.printf(”[%.8s]%n, url”); |
0.100000, 1.0000000e-01, 0.100000 10.000000, 1.000000e+01, 10.0000 3140.000000, 3.140000e+03, 3140.00 1.234568 1.2345678900 [12345678901234567890] [www.codechobo.com] [ www.codechobo.com] =>오른쪽정렬/최소 20글자의 자리를 확보 (남는 자리는 공백) =>기존에 포함되지 않았던 문자 ‘[]’는 자릿수로 세지 않는다. =>기존에 포함되어 있던 문자 ‘.’는 자릿수로 센다. [www.codechobo.com ] =>왼쪽정렬/최소 20글자의 자리를 확보 (남는 자리는 공백) [www.code] =>8글자만 출력 |
'Study > Java' 카테고리의 다른 글
06. <제어자, 캡슐화, 다형성, 형변환, 인터페이스 > ~자바의 정석 summary ~ (0) | 2023.01.13 |
---|---|
05. <오버로딩, 생성자, 상속, 포함 > ~자바의 정석 summary ~ (0) | 2023.01.12 |
04. <배열, 가변배열, 객체지향1 > ~자바의 정석 summary ~ (0) | 2023.01.11 |
03. <제어문, 화면으로부터 입력받기> ~자바의 정석 summary ~ (0) | 2023.01.10 |
02. <타입변환, 형변환, 연산자> ~자바의 정석 summary ~ (0) | 2023.01.09 |
댓글