기록
[JAVA] 자바 개요 본문
<객체지향이란?>
: 실제 세계를 모델링하여 소프트웨어를 개발하는 방법론.
<객체(Object)란?>
: 보고 만질 수 있는 것, 지성적으로 이해할 수 있는 것.
-> 객체의 상태는 데이터에 의해 결정되고, 동작은 메서드에 의해 결정됨.
<JAVA의 특성>
1) OS에 독립적이다. : JVM에 의해 어떤 OS 상에서도 동작.
2) Object Oriented Programming Language: 오오피엘 오오피엘~
3) Garbage Collection 기능: 자동 메모리 관리
4) 네트워크 프로그래밍 가능 (C에서는 free해주던 거랑 상반되네요)
5) 분산처리에 유용
<JAVA Byte-Code>
The machine language for a hypothetical computer(or interpreter) called the Java Virtual Machine.
<변수>
- 변하는 수
- 하나의 값을 저장할 수 있는 기억 공간
- 데이터를 담는 그릇
<변수의 타입(Data Type)>
1) Primitive Type
- 문자: char
- 숫자
정수: byte/short/int/long 실수: float/double- 논리: boolean
2) Reference type
- 기본형을 제외한 나머지(String, System 등)
- 객체의 주소를 저장(4 byte, 0x00000000~0xffffffff)
<Primitive Data type>
- 논리형: true/false
- 문자형: 문자를 저장하는 데 사용
- 정수형: 정수 값을 저장
- 실수형: 실수 값을 저장
1 byte | 2 bytes | 4 bytes | 8 bytes | |
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
<Naming convention: 명명규칙>
1. 대소문자가 구분되며 길이에 제한이 없음: True와 true는 다름
2. 예약어를 사용할 수 없음: new, this, super, final 등
3. 숫자로 시작할 수 없음
4. 특수문자는 '_' '$'만 허용
5. 기타 권장 사항
- 클래스 이름의 첫 글자는 항상 대문자
- 변수와 메서드 이름의 첫 글자는 항상 소문자
- 여러 단어 이름은 단어의 첫글자를 대문자
- 실수의 이름은 대문자, 단어는 '_'로 구분
<변수, 상수, 리터럴>
- 변수(variable): 하나의 값을 저장하기 위한 공간
- 상수(constant): 한 번만 값을 저장할 수 있는 공간
- 리터럴(literal): 그 자체로 값을 의미하는 것
<변수의 기본값과 초기화>
- 변수의 초기화: 변수에 처음으로 값을 저장하는 것
- 지역변수는 사용되기 전에 반드시 초기화해야함
자료형 | 기본값 |
boolean | false |
char | '\u0000; |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 변수 | null |
<문자와 문자열>
char ch = 'A';
char ch = 'AB'; //error
String s1 = "AB";
char ch = ''; //error
String s1 = "";
String s1 = "A" + "B";
char 형은 빈 문자열 선언이 되지 않는다. 그리고 String은 +연산이 가능하다.
<형변환 (Casting)>
- 형변환: 값의 타입을 다른 타입으로 변환하는 것
- boolean을 제외한 7개의 기본형은 서로 형변환이 가능
- 작은 크기 -> 큰 크기: 형변환 생략가능(byte -> int)
- 큰 크기 -> 작은 크기: 형변환 생략 불가능(int -> byte)
1) Upcasting : 작은크기에서 큰 크기로! 형변환 생략 가능
2) Downcasting: 큰 크기에서 작은 크기로! 형변환 생략 불가능
<연산자 (Operator)>
- 연산자(Operator)
: 어떠한 기능을 수행하는 기호(+,-,*,/ 등)
- 피연산자(Operand)
: 연산자의 작업 대상(변수, 상수, 리터럴, 수식) eg. A+B
- 연산자의 종류
<비트 전환 연산자(~)>
- 정수를 2진수를 표현했을 때, 1↔0으로 바꾸는 연산
- 정수형에만 사용가능
<이항연산자(산술)>
- 이항연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킴
- int보다 크기가 작은 타입은 int로 변환
- 피연산자 중 표현범위가 큰 타입으로 형변환
char + int → int + int → int
float + int → int + int → int
long + float → long + long → long
float + double → double + double → double
<이항연산자 (문자연산)>
char c1 = 'a'; //한 글자
char c2 = c1 + 1; //c1이 int로 변환된다.
char c2 = (char) (c1 + 1); //int로 형변환된 값을 다시 char로 downcasting
char c2 = ++c1;
int i = 'B' - 'A'; //char 이항 연산
int i = '2' - '0';
<이항연산자 (쉬프트연산)>
- 2의 n승으로 곱하거나 나눈 결과를 반환한다.
- 곱셈, 나눗셈보다 빠르다.
x << n: x * 2^n
x >> n: x / 2^n
<이항연산자 (비교연산)>
- 피연산자를 같은 타입으로 변환한 후에 비교
- 결과 값은 true 또는 false
- 기본형(boolean 제외)과 참조형에 사용 가능
- 참조형에는 ==과 !=만 사용 가능
<이항연산자 - 비트연산>
- 피연산자를 비트단위로 연산.
: 실수형을 제외한 모든 기본형에 사용가능.
<이항연산자 - 비트마스킹>
<이항연산자 - 논리연산>
- 피연산자가 반드시 boolean 이어야 하며 연산결과도 boolean 이어야한다.
<삼항연산자>
- 조건식의 연산결과가 true이면 '식1'의 결과를 반환, false이면 '식2'의 결과를 반환
(조건식) ? 식1 : 식2
<대입연산자>
- 오른쪽 피연산자의 값을 왼쪽 피연산자에 저장
'공부 > JAVA' 카테고리의 다른 글
[JAVA] 메서드 (0) | 2020.07.06 |
---|---|
[JAVA] 변수 (0) | 2020.07.05 |
[JAVA] 생성자 (0) | 2020.07.04 |
[JAVA] 클래스와 객체 (0) | 2020.07.04 |
[JAVA] 조건문과 반복문 (0) | 2020.07.04 |