티스토리 뷰
기계 --> 전기신호 작동
1 0 : 2진값(bit)
1byte = 8bit 0000 0000 -128~127
1000 0000 0000 0000 -32768~32767
부호비트
byte 1byte
정수 --- short 2
int 4
long 8
실수 --- float 4
double 8
문자 -- char(캐릭터) 2
논리 -- boolean 1
1. 변수( Variable )
-->메모리 저장소에 대한 이름이다.
메모리 저장소는 뭘로 만들까 ?
-> 자료형
얼만큼 필요한데?
150000
byte(x) short(x) int(o)
->4byte 정수계열 int형 선택
int myMoney = 150000;( 처음에는 무조건 int 위주로 사용 )
정수는 int가 기본이다 ->int 연산일 때 가장 최적화
ex)
173.5 -> height
--> int height =173.5; ( x )
( int는 정수이므로 double 사용)
--> double height =173.5; ( 0 )
--> float height = 173.5F; ( 0 )
ex)
"홍길동" : 문자열
(String --> class는 대문자로 사용 )
String name = "홍길동"
<변수이름짓기>
int km = 10;
int distance = 10;
int korScore = 10 ;
==> 데이터가 쓰이는 목적을 파악해서 이름을 지어줌
변수의 이름을 어떻게 지어야 하나(작명)
1. 연상할 수 있는 쉬운 단어를 선택
2. 될수 있으면 짧게 -너무 짧은면 이해하기 어렵다
3. 소문자로 시작함(규칙)-->지키지않아도 에러는 나지않지만 범주에서 벗어남
4. 단어가 겹칠 때 (이어질 때) 대문자로 적자
ex)
appleorange -> appleOrange
schoolname -> schoolName
(카멜(낙타) 표기법)
문법
(1) 공백이 들어가면 에러
(2) 특수문자가 있으면 에러
--> $나 _는 사용할 수 있다
(3) 숫자가 맨앞에 있으면 에러
두번째 부터는 숫자가 올 수 있다
int 5bun; ( x )
int bun5; ( o )
int b5un; ( o )
(4) 키워드를 재사용 할수없다
(5) 대소문자 단어는 서로 다른 단어
int max;
int mAx;
(다른단어)
(6) 한글도 가능하다
--> 소스가 한글이 지원되지 않은 운영체제에서는 읽히지 않음
--> 호환성이 떨어진다
--> 한글은 사용하지 않는다
변수 선언하기
*int -> 4byte
void main(){
//이름,국어성적, 주소
//""(String) , int , ""(String)
String name="홍길동";
int kScore=10;
--> 초기화 (initialize)
String address="서울시 율도국";
-->초기화
=>변수를 만들고, 처음 데이터를 넣는 것
초기화를 하지 않으면 어떤 현상 ?
-> 연산(x), 출력 (x) :잔류비트가 남아있음
-> 초기화를 통해서 잔류비트를 없애고 사용하자
-> 만약 초기값이 없다면 (아직 정하지 않았다. 나중에 입력할 예정이다) 기본값을 넣음
EX)
int = 0 ;
String=" ";
( 기본 초기값 )
int engScore;
-->초기화가 안되었기 때문에 에러가 남
int engScore = 0;
-->아직 값이 없으므로 0을 넣어놓음
-->나중에 영어성적이 생겼다. (80점을 받았다.)
engScore = 80;
--> 80을 engScore에 "대입" 시킨다
}
실습#1.
package variableex;
public class VariableTest {
public static void main(String[] args) {
//#해당 변수를 만들어 보자
//#1.책 제목, 페이지 수, 작가 이름, 출판사
String bookName = "해리포터";
int page = 500;
String bWriter ="조앤롤링";
String company = "고려원";
int price = 15000;
System.out.println("책 제목: "+bookName);
System.out.println("책 페이지 수: "+page+"쪽");
System.out.println("책 작가: "+bWriter);
System.out.println("책 출판사: "+company);
System.out.println("책 가격 : "+price+"원");
System.out.println("////////////////////////////");
bookName = "이순신과 임진왜란";
// int page ->이름충돌이 일어나서 에러가 남 (구별점이 없어짐)
// int page2 또는 page에 값을 다르게 재활용함 (변수를 재활용)
page= 400;
bWriter ="이순신";
company = "조선";
price = 20000;
System.out.println("책 제목: "+bookName);
System.out.println("책 페이지 수: "+page+"쪽");
System.out.println("책 작가: "+bWriter);
System.out.println("책 출판사: "+company);
System.out.println("책 가격: "+price+"원");
System.out.println("///////////////////////////");
bookName = "키보드와 마우스 ";
page= 150;
bWriter ="모니터";
company = "코리아";
price = 180000;
System.out.println("책 제목: "+bookName);
System.out.println("책 페이지 수: "+page+"쪽");
System.out.println("책 작가: "+bWriter);
System.out.println("책 출판사: "+company);
System.out.println("책 가격: "+price+"원");
System.out.println("//////////////////////");
//#2. 아이디, 비번 이메일 주소
// 문자열"" ""( 숫자와 문자 둘다 가능한 문자열 사용 ) ""
String id="";
//초기값 설정 (기본 초기값)
String password="";
String email ="";
id="dog123";
password="1234";
email="dog@hanmail.com";
System.out.println(" 아이디(비번) : + 이메일");
System.out.println(id+"("+password+") :"+email);
}
}
실수
double 변수명; -->8byte 소수점 308자리
float 변수명; -->4byte 소수점 38자리
float fl = 10.1; -->기본은 double형 상수
--> 10.1은 기본적으로 double 형 상수가 된다.
fl이라는 그릇은 4byte짜리 그릇이다.
float fl = 10.1F;
( 6.7 -> 6.7F )
실습 #2.
package variableex;
public class VariableTest2 {
public static void main(String[] args) {
int number = (int)1.1;
//1.1을 int형으로 바꿔라!
//그리고 나서 number에 집어 넣어라(대입해라)
float f = 2.0F;
System.out.println(f);
double data = 10;
System.out.println(data);
System.out.println(f + data);
System.out.println(10/3); //3
System.out.println(10/3.0); //3.33333333333 마지막에 종점에서 오차값이 발생한다.
//소수점 자리값을 조절할 필요가 있다.
printf ( )
System.out.printf();
println --> print : 출력
printf --> f를 갖고 출력할 것
Format : 서식문자
("%알파벳")
정수 %d
실수 %f
문자열 %s
문자 %c
printf("", 인자);
1. "" 안에 : 서식문자를 쓰자
2. 인자 : 서식문자에 넣을 데이터를 씀
int age= 34;
※ 4개의 서식문자 == 차례대로 4개의 인자
System.out.printf("나이는 %d살 %d %f %s입니다.\n", age+1+5, 67, 1.1, "홍길동");
%자리값f
ex) %,1f : 1.234 -->1.2
%.2f : 1.234 -> 1.23
System.out.printf("평균 키 : %fcm\n", (10.1+20.2+30.4)/3 );
System.out.printf("평균 키 : %.0fcm\n", (10.1+20.2+30.4)/3 );
System.out.printf("평균 키 : %.1fcm\n", (10.1+20.2+30.4)/3 );
System.out.printf("평균 키 : %.2fcm\n", (10.1+20.2+30.4)/3 );
System.out.printf("평균 키 : %.3fcm\n", (10.1+20.2+30.4)/3 );
System.out.printf("평균 키 : %.4fcm\n", (10.1+20.2+30.4)/3 );
//버려지는 숫자가 앞자리를 반올림 시킨다.
System.out.printf("%.0f\n", 1.567); //반올림 시킨다
System.out.printf("%.1f\n", 1.567); //반올림 시킨다
System.out.printf("%.2f\n", 1.564); //반올림 시킨다
}
}
문자
. --> 문자를 연속적으로 모아 놓은 것을 "문자열"이라고한다.
1. 문자 데이터는 홑따옴표로 되어 있다.
-> 'a' '1' '3' 키보드에서 하나 키를 눌렀을 때 발생하는 데이터
2. 두글자이상 쓰면 에러다 반드시 홑따옴표 안에는 한글자만 써야한다.
한글자도 쓰지 않으면 에러가 남
ex)
'ab' '' ( x )
' ' 공백도 문자다 (white space)
--> 한칸 만 가능 두칸쓰면 에러다
3. 문자는 문자마다 고유의 코드값이 들어 있다.
('a' 타이핑을 치면 a에 대한 전기신호가 발생한다(2진수))
전기신호->ram한테 전달
0100 0001 : 아스키코드(자바가 있기 전) -> c언어 사용
'0' : 48
'A' : 65
'a' : 97
---> 자바로 넘어오면서 자바는 유니코드 체계를 체계를 사용한다.
문자를 2byte로 사용 ( char 가 2byte다)
실습 #3.
package variableex;
public class VariableTest3 {
public static void main(String[] args) {
char gender = '남';
System.out.println(gender);
gender= '여';
System.out.println(gender);
System.out.println((int)'A'); //'A'에 대한 코드값을 보여준다.
System.out.printf("%c의 코드값 : %d\n", 'a', (int)'a');
System.out.printf("%d\n", (int)'0');
}
}
※ 서식문자를 사용할 때는 printf 사용해야함
<단축키>
alt+shift+r
=> 변수이름을 한번에 다 바꾸는 단축키
'Programing > Java' 카테고리의 다른 글
Java1 - 05. Scanner 활용/ Dialoginput (0) | 2017.04.13 |
---|---|
Java1 - 04. 형변환. scanner(입력문) (0) | 2017.04.12 |
Java1 - 02. 출력문 . 자료형 . byte (0) | 2017.04.10 |
Java1 - 1. 기본구조 (0) | 2017.04.07 |
Java / Eclipse(이클립스) 설치하기 (0) | 2017.04.07 |