1. 입력장치 - 키보드, 마우스
2. 출력장치 - 모니터
3. 기억장치 - RAM(주차장)
4. 제어장치 - CPU(자동차):저장장치 x
- 상수 변하지 않는 수
- 변수 - 변하는 수(메모리가 시작되는 점의 주소), 그릇
- 자료형 - 변수의 크기 (몇칸쓸지 알려주는 놈) - 공간확보하기 위해서 먼저씀
--- 논리형 --- (애매모호하게 나오지 않음)
; boolean : true, false -> 1byte(저장의최소단위.한칸차지)
boolean a = true;
boolean b = false;
--- 정수형 ---
: byte : 1byte (-128 ~ 127)
: short : 2byte (-32,768 ~ 32,767)
: char (문자자료형) : 2byte (0 ~ 65,535)
: int (제일많이씀) : 4byte,기본자료형 (-2,147,483,648 ~ 2,147,483,647)
: long : 8byte (-922경 ~ +922경) / 수치가 2억 넘어가면 long쓰셈
long a = 10L; long b - 10l; -> long에 들어가는 건 L을 붙임
** int형 이하 연산식의 결과는 모두 int형이다.
--- 실수형 ---
(소수를 갖는 자료형)
: float : 4byte
float a = 10.23f;
: double : 8byte (기본자료형)
double a = 10.23;
의무적 강제형변환 해야하는 경우
byte a = 10;
char b = (char)a;
short c = (short)b;
char d = (char)c;
char 형이 음수가 없어서 강제형변환 해줘야함
** 실수는 정수보다 항상 크다
double > float > long > int
float a = 10.23f;
double b = a; (0)
long c = a; (x)
**- int형 이하 연산식의 결과는 모두 int형이다.
ex.
byte a = 1;
byte b = 1;
a+b => int
ex.
long a = 10l;
long b = 20l;
a + b => long
ex.
long a = 10l;
float b = 20.2f;
a + b = > long
1024byte => 1kbyte
1024kbyte => 1mbyte
1024mbyte => 1gbyte
1024gbyte => 1tbyte
A - 000
B - 001
C - 010
D - 011
E - 100
2의보수 : 0은1로, 1은0으로 마지막 1을 더해준다.
byte a = 1
a -> 00000001
byte a = -1
a -> 1 1111111
a-1 => -2
1 1111110
사용자정의자료형 - class
String (문자열을 처리하려고 만들어짐)
String name = "홍길동";
자료형, 변수, 상수 가 뭔지 알아두기
논리형자료형, 정수형자료형, 실수형자료형
형변환(자료형이 바뀜)
1) 자동형변환 작은거->큰거
2) 강제형변환 큰거->작은거 / 강제로 변하고싶은 모든 것
강제형변환 : 변환시키고자 하는 값 앞에 변환시키고 싶은 자료형을 ()로써준다.
(cast연산)
기본자료형은 아니지만 문자열을 다루기 위해 기본자료형처럼 쓸 수 있는 Stirng 클래스를 제공
최우선연산자 : (그식에서 제일 먼저 연산해야함)
() 괄호연산자
[ ] 배열참조연산자 - 배열
. 참조연산자 - 클래스
단항연산자 :
+/- : 부호연산자
(자료형) : cast 연산자
++/-- : 증감연산자 , 항 앞에 써야함
! : 논리부정연산자
~ : 비트부정연산자
instaceof : 다형성연산자
산술연산자
*, /, %(나머지)
+. -
시프트연산자
<< : 왼쪽시프트연산자
>> : 오른쪽시프트연산자
>>> : 부호없는오른쪽시프트연산자
관계연산자 (true나 false로 결과가나옴)
>
<
>=
<=
==
!=
비트연산자
논리연산자
&& : and 연산자 - 2개의 식이 모두 true면 true, 아니면 false
| | : or 연산자 - 2개의 식중 하나만 true면 true, 둘다 아니면 false
&
|
삼항연산자
system.out.println(a%2==0?"짝수":"홀수");
배정대입연산자
+=
-=
*=
/=
%=
<<=
>>=
>>>=
=
ex. byte a = 10; / a += 5; // a = a+5
int a = 10;
int b = a++; // 후위증감연산자
system.out.print(a);//11 o
system.out.println(b);//10 <- 이해안됨
ex.
byte a = 10;
++a; //a = a + 1
** 자바는 jvm이라는 애가 실행시킴