컴퓨터는 데이터들을 메모리에 올리고 사용한다.
그런데 0과 1만 사용한다고했다.
*0은 값이 없다는 의미로 상식적으로도 이미 알고 있지만
프로그래밍에서는 더더욱 어떤 숫자든 0으로는 나눌 수 없다.
bit : 데이터의 최소 단위로 2진수 하나의 값을 저장할 수 있는 크기
1byte = 8bit
컴퓨터는 우리가 10진수로 입력해도 2진수로 변경해서 저장한다.
2진수(BIN)만으로는 길이가 너무 길어져 8진수(OCT), 10진수(DEC), 16진수(HEX)를 사용하기도 한다.
저장은 2진수로 하지만 출력은 사람이 보기 편하게 10진수로!
*계산기 설정을 프로그래머로 바꾸면 쉽게 변환 할 수 있다.
< 용어정리 >
Project : 하나의 프로그램
Class : 기능
Package : Class를 모아둔 단위
패키지는 2~3단계 정도 이름을 지정하는게 좋다
ex) sample.test.com -> 3단계 . 으로 단계 추가
변수(variable,var) : 말 그대로 변하는 값이다.
프로그래밍에서는 값(Data)를 사용하기 위해 선언하는 것을 변수라고 한다.
하나의 값을 저장하는 공간으로 프로그램 실행 중에 값을 변경 할 수 있다.
상수 : 한번 저장하면 값이 고정되는 값이다.
하나의 값을 저장하는 공간으로 프로그램 실행 중에 값을 변경 할 수 없다.
배열 : 여러개의 데이터를 모아둔 묶음
컬렉션 : 객체들을 모아둔 묶음
< Class 이름 정하기 >
자바에서는 이름을 정할 때 카멜(낙타) 표기법을 따른다.
대문자로 시작 - 필수는 아니지만 프로그래머들끼리의 약속이라고한다.
두 단어가 합쳐진 이름이라면 두번째 단어의 첫번째 글자도 대문자
ex) JavaTest
이름에 공백이 들어갈 수 없다.
숫자로 시작할 수 없다.
특수문자는 _ 와 $ 만 가능 - $는 가급적 사용하지 않는게 좋다고한다
키워드(예약어)는 사용 불가 - 이미 기능이나 역할이 있는 이름이라 쓸 수 없다고 한다.
< 변수 이름 정하기 >
소문자로 시작. 두개의 단어가 합쳐지면 두번째 단어의 첫글자는 대문자
ex) binaryNumber
이왕이면 명사형으로 어떤 의미의 값을 저장하는지 알 수 있게 하는게 좋다.
역할에 어울리는, 의미있는 이름으로
< 상수 이름 정하기 >
모든 글자를 대문자로 두 단어를 합치는 경우라면 _ 사용
ex) JAVA_TEST
* 이클립스에서 // 달면 주석처리, 코드에 영향을 주지 않음
/* 긴 주석은
이렇게 처리할수도
있다아아아 */
< 자료형(Type) >
1. 기본형 데이터 타입 : 값을 직접 저장
논리형
boolean : 1byte, true or false
정수형 - 소수점x, 숫자(리터럴)
byte : 1byte, c호환용으로 거의 안쓴다
short : 2byte
★int : 4byte (약 21억 정도), 정수형의 기본형
long : 8byte, 금융권 등 큰 숫자를 지정할 때 사용, 숫자 끝에 L을 표시해서 long타입임을 명시해야함
실수형 - 소수점
float : 4byte, float타입 데이터로 쓰려면 숫자 끝에 f를 명시해야함
double : 8byte, 실수형의 기본형
문자형
char : 2byte, 문자형의 기본형
2. 참조형 데이터 타입 : 객체 생성 후 객체의 주소값을 저장
String 클래스 - 문자열 표현이 목적인 클래스
크기별 순서
byte(1) -> short, char(2) -> int(4) -> long(8) -> float(4) -> double(8)
boolean은 둘중 하나라 예외, String은 클래스라 예외
float도 실수라서 크기 재는게 다르다는데 .. 일단 이렇게 외우자
기본 용어와 이름정하는 방법을 정리했으니.. 선언해 보자
변수 선언
타입 이름; // 해당 타입의 데이터를 저장할 공간 생성
이름 = 값; // 공간에 값을 저장
타입 이름 = 값; // 한줄에 가능
String 클래스는 값을 "" 사이에 넣어준다.
ex)
int level;
level = 10;
int level = 10;
String str = "ABC";
* = : 저장한다, 대입한다. 항상 오른쪽에서 왼쪽으로(★방향중요)
* 값 처리의 원칙
같은 종류(타입)끼리만 대입 가능
같은 종류(타입)끼리만 계산 가능
대입, 계산의 결과도 같은 종류의 값이 나와야함
=> 원칙이 지켜지지 않는 경우라면 형(타입) 변환 한 뒤 처리
자바 연산 시
4byte미만의 연산은 정수 기본값인 int로 변환 후 계산됨
4byte 이상의 연산은 더 큰 타입으로 변환 후 계산
int + long => (long)int + long
* 형변환
형(typt)을 변환하는건데 타입이 맞지 않을 경우 사용
묵시적 형변환과 명시적 형변환이 있다.
묵시적 형변환
크기별로 외우라고 했던게 이때 써먹나보다..
같은 숫자 형이라면(byte, short, int, long ,float, double)
작은 형에서 큰 형으로 변경하는건 굳이 명시하지 않아도 자동으로 변환된다.
ex) double d = 100 + 100.0;
double타입의 d라는 변수에게 int타입의 100 과 double타입의 100.0을 더하려면
원래는 int타입의 100을 double로 바꿔줘야 하지만 알아서 변경해서 연산해준다.
명시적 형변환
큰 형에서 작은 형으로 변경하는건 큰컵에 있는 물을 작은컵에 옮기는 꼴 즉 물이 샌다 -> 정보의 손실이 발생한다.
그렇기 때문에 자동으로 변환해주지 않고 오류가 나게된다.
정보의 손실을 감수하더라도 형변환을 해야겠다면 변경할 타입을 명시해줘야한다.
ex) int i = 3.14;
이렇게 쓰게되면 int타입 변수 i에 더 큰 타입인 double타입의 3.14가 대입되게 되어 에러가 발생한다.
int i = (int)3.14;
double타입에 int로 명시해주면 소수점을 버리고 정수만 남긴다.
즉 0.14는 손실되고 3만 남는 것.
* 리터럴
프로그램에서 사용하는 모든 숫자, 값, 논리값
리터럴 값은 특정 메모리 공간인 상수풀에 저장됨 필요한 경우 상수풀에서 가져와서 사용.
상수풀에 저장될 때 정수는 int, 실수는 double / 다른 타입으로 하고 싶은 경우 식별자(L, F) 명시
오늘은 여기까지 다들 오늘도 고생하셨어요!
'JAVA' 카테고리의 다른 글
Java 객체 지향 프로그래밍 / 변수, 메서드, 생성자의 선언과 사용 (0) | 2021.11.29 |
---|---|
Java Scanner,출력문,조건문, 반복문 (0) | 2021.11.25 |
Java 연산자 (0) | 2021.11.25 |
Java JDK , Eclipse설치 (0) | 2021.11.23 |
시작하기 전 용어 정리, Java의 장점 (0) | 2021.11.22 |