일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오버라이딩
- 자바의정석
- 배열
- spring 게시판 삭제
- 인텔리제이 Web 애플리케이션
- SQL
- 상속
- 산술 연산자
- 객체지향
- 이클립스 설치
- 오버로딩
- java
- join
- 예약어
- 연산자
- 논리 연산자
- SpringSecurity 로그인
- SQL튜닝
- 친절한 SQL 튜닝
- SQL 튜닝
- 친절한 SQL
- 스프링시큐리티 로그아웃
- SpringSecurity 로그아웃
- StringBuffer
- 식별자
- @PreAuthorize("isAuthenticated()")
- 비교 연산자
- 반복문
- 함수
- 객체
- Today
- Total
gi_dor
[Java] CH2 변수(variable) 본문
1. 변수(variable) 란?
수학에서는 '변하는수'라고한다
하나의 값을 저장하기 위한 메모리 공간
2. 변수의 선언
1) 변수 선언 이유 : 값을 저장할 공간을 마련하기 위해
2) 변수의 선언 방법 : 변수타입 변수 이름; int age; // 정수(int) 타입의 변수 age를 선언
3. 변수의 저장 : 변수에 처음으로 값을 저장하는 것
int age ; // 정수 (ing) 타입의 변수 age를 선언
age = 25; // 변수 age에 25를 저장
한줄 표현 : int age = 25;
int x = 0; // 변수 x를 선언 후 0 으로 초기화
int y = 5; // 변수 y를 선언 후 5로 초기화
한줄 표현 int x = 0 , int y =5;
4. 변수의 타입
▶ 변수의 타입은 저장할 값의 타입에 의해 결정된다
▶ 저장할 값의 타입과 일치하는 타입으로 변수를 선언
값의 타입
'문자,숫자' 2개로 나뉘어지며, 숫자는 '실수 , 정수'로 나눌수있다
4-1 기본형 Primitive type
▶ 오직 8 개 boolean , char , byte , short , int ,long , float , double
▶ 실제 값을 저장
▪ 논리형 : true , false (1byte) 중 하나의 값으로 갖으며 , 조건식 , 논리적 계산에 사용
▪ 문자형 : 문자를 저장하는데 쓰이며 변수당 하나의 문자만 저장 // 여러 문자는 String 사용
▪ 정수형 : 정수 값을 저장하는데 쓰이며 주로 int (4byte) 와 long(8byte) 을 사용한다
byte(1byte) 는 이진데이터(이미지파일, 실행파일 같은)를 다루는데 쓰임
short(2byte) 은 c언어와의 호환성을 위해 추가되었는데 잘 안쓰임.
▪ 실수형 : 실수 값( 소숫 점 )을 저장하는데 쓰이며 float(4byte) 와 double(8byte) 이 있다.
+ ) 1byte = 8bit , 1bit = 2진수 1자리
4-2 참조형 Reference type
▶ 기본형을 제외한 나머지 (String , System 등등)
▶ 메모리 주소를 저장 - 4byte 또는 8byte
▪ Date today ; // 참조형 변수 today 를 선언 , 변수의 type은 Date - 참조형
▪ today = new Date (); // today에 객체의 주소를 저장 [new Date() 객체생성]
5. 변수 , 상수 , 리터럴
▪ 변수 (variable) - 하나의 값을 저장하기 위한 공간
▪ 상수 (constant) - 변수처럼 '값을 저장하는 공간' , 그러나 한 번만 값을 저장 가능해 변경이 불가능 하다
int score = 100;
score = 200;
final int MAX = 100; // MAX는 상수 , 값 변경 불가
MAX = 200; //에러
▪ 리터럴 - 그 자체로 값을 의미 (기존의 상수)
상수를 '변경할수 없는 저장공간'으로 하기 때문에 이를 구분하기위해 상수를 '리터럴' 이라고한다
int score = 100;
final int MAX = 100; // MAX는 상수 , 100 은 리터럴
6. 문자와 문자열
char ch = 'J'; | String s1 = "Java"; |
char ch = 'AB'; // 에러 | String s2 = new String("Java"); |
String s = "ABC" ; // 문자열 연속된 문자 |
String s = "A"; |
String s = " " ; // 빈 공백 문자열 |
char ch = ' ' ; // 빈 공백 문자 |
char ch = ''; // ' ' 안에 하나의 문자 필요 |
String s1 = "A" + "B"; // "AB" |
" " + 7 --> " " + " 7 " |
" " +7 +7 --> "7" + 7 --> "7" + "7" --> "77" |
7+7+ " " --> 14 + " " --> "14"+ " " --> "14" |
문자열 + any type ---> 문자열 |
any type + 문자열 ---> 문자열 |
1. 두 변수 교환하기
x의 값 20 y의 값 10으로 바꾸기
int x = 10 , y = 20 ;
int tmp ;
tmp = x; x의 값을 tmp 에 저장
x = y; x의 값을 y에 저장
y = tmp; tmp의 값을 y에 저장
2. printf () 출력
2-1 printf()의 단점 - 출력형식 지정 불가
▪ 실수의 자리수 조절불가 - 소수점 n 자리만 출력한다면 ?
System.out.println(10.0/3); // 3.33333333......
▪ 10진수로만 출력된다 - 8진수 16진수로 출력하려면 ?
System.out.println(0x1A); // 26 (10진수)
2-2 printf()로 출력 형식 지정가능
System.out.printf("%.2f" , 10.0/3); // 3.33 %.2f 소수점 2째 자리 까지만 출력
System.out.printf("%d" , 0x1A); // 26 %d 10진수
System.out.printf("%X" , 0x1A); // 1A %X 16진수
▶ \n 혹은 %n 개행문자 (= 줄바꿈) // 문자열 " " 안에 입력 해야함
2-3 정수를 10 진수 8진수 16진수로 출력하기
▪개행문자로 띄어쓰기
▪ 2진수로 표현하기
2진수로 출력하는 지시자 x
System.out.printf ( "%s" , Integer.toBinaryString(15)); // 1111 (2진수)
toBinary = 2진
String = 문자열
2-4 8진수와 16진수 접두사 붙이기 - 8진수 16진수라고 강조하는 표현
System.out.printf ( " %#o" , 15); // 017
System.out.printf ( "%#x" , 15 ); // 0xf
System.out.printf ( "%#X" , 15); //0XF
2-5 실수 출력을 위한 지시자 %f - 지수형식 %e 간략한 형식 %g
float f = 123.4567890f;
System.out.printf ("%f", f ); // 123.456787 - 소수점 아래 6자리까지 출력
▪ 123.456789 마지막 9 가아닌 7이 나온이유 ?
float type은 정밀도가 7자리이기 때문에 123.4567까지는 정확하게, 뒤에 87은 정확하지않아 의미없는 숫자가됨
double f = 123.456789;
System.out.printf ("%f", f ); // 123.456789
정밀도 높은 f보다 15자리 double을 주로씀
System.out.printf ("%e", f ); // 123.4568e+02 e+02 = 10의 제곱
System.out.printf ("%g", f ); //123.457
지시자 g는 소수점 포함 7자리를 간략히 표현 마지막자리 6은 반올림해서 출력
2-6
System.out.printf ("[%5d]%n" , 10); // 오른쪽 정렬
System.out.printf("[%-5d]%n" , 10) // 왼쪽 정렬
System.out.printf("[%05d]%n" , 10) // 빈자리 0 으로 채움
2-7
%전체자리 . 소수점아래자리 f - 전체 소수점포함 14자리 . 소수점아래 10자리
정수앞은 공백 소수점 아래 공백은 0으로 채움
System.out.printf("%14.10f%n", d); // 소수점포함 14 자리 소수점아래 10자리
System.out.printf("%14.6f%n", d); // 소수점 포함 14자리 소수점아래 6자리
System.out.printf("%.6f%n", d); // 소수점아래 6자리
2-8
System.out.printf("[%s]%n, "www.codechobo.com");
System.out.printf("[%20s]%n ,"www.codechobo.com"); 오른쪽 정렬 소수점포함 20자
System.out.printf("[%-20s]%n , "www.codechobo.com"); 왼쪽 정렬 소수점포함 20자리
System.out.printf("[.10s]%n ,"www.codechobo.com"); 오른쪽 정렬 소수점 아래 8자리
3. 화면에서 입력받기 - Scanner
▶ Scanner 란?
화면 으로부터 데이터를 입력받는 기능을 제공하는 클래스
▶ Scanner를 사용하려면
▪ import문 추가
import java.util. * ;
▪ Scanner객체의 생성
Scanner scanner = new Scanner (System.in); // (System.in) = 화면 입력
▪ Scanner 객체를 사용
int num = scanner.nextInt(); // 화면에서 입력받은 정수를 num에 저장 nextInt() 정수 ,nextFloat()실수
String input = scanner.nextLine(); // 화면에서 입력받은 내용을 input에 저장 , nextLine 한행을 뜻함
int num = Integer.parseInt(input); // 문자열 (input)을 숫자 (num) 로 변환
숫자 -> 문자열 : 숫자 + " "
숫자 <- 문자열 : Integer.parseInt()
'First > Java' 카테고리의 다른 글
[Java] CH6 객체지향 개념 (0) | 2023.03.13 |
---|---|
[Java] CH5 배열 (0) | 2023.01.15 |
[Java] CH4 조건문과 반복문 (0) | 2023.01.11 |
[Java] CH3 연산자 (Operator) (0) | 2023.01.05 |
ch1 - 자바 시작하기 (0) | 2022.12.26 |