3일차에도 계속 자바언어에 대하여 배웠다.
지금까지는 강사님의 자료를 통해 먼저 봤고 "이것이 자바다"라는 교재를 통해 오늘은 복습에 추가로 공부했다.
저급언어: 기계어(0과1)와 비슷한 언어로 사람이 알아보기 어려운 언어를 말한다. 대표적으로 '어셈블리어'가 있다.
고급언어: 보통의 프로그래밍언어로써 사람이 알아보기 쉬운 언어를 말한다. 대표적으로 자바,C, C++ 등이 있다.
C언어 - 절차지향언어인데, 절차지향 언어는 규모가 큰 프로그램을 만들다 보면 유지보수가 어려운 것이 단점이다.(확장자 .c -> 컴파일 후 바로 .exe 실행파일이 됨)
자바 - 이식성이 높음, 객체지향언어 (OOP: Objext Oriented Programming, 객체지향프로그래밍), 메모리 관리를 알아서 해줌, (.java (소스파일) ---- java.exe를 이용하여 ----> .class(바이트코드)로 변환! class파일을 실행하기 위해서 JVM 자바 가상 기계가 필요하다. 자바가 중간단계의 바이트 코드이기 때문에 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요하고 이것이 JVM: Java Virtual Machine),C언어나 C++에 비하여 VM이 필요하여 속도가 느리다.
**명령프롬포트에서 java -version 엔터 치면 API 버전이 나옴.
API 문서를 참고해서 여러 기능들을 확인하는 것이 좋다.
ex) Scanner (Java Platform SE 8 ) (oracle.com)
이클립스 퍼스펙티브와 뷰
-기본 개발과 디버그 퍼스펙티브 사용해봄
- 퍼스펙티브는 디버깅 할 때 변수나 변수를 이용한 계산값을 직접 지정하여 데이터를 확인할 수 있다.
유니코드 (아스키문자 포함-특수기호 및 영어 알파벳), 한글도 코드가 부여되어 있음.
자바에서는 char 타입으로 2 byte 제공함.char는0과 양수만을 가진다.
char c = ' '; 으로 공백(유니코드 32)으로 or 역슬래시0 = NULL의미 로 초기화
int i = 0; 으로 초기화
String str = ""; 로 초기화
double d = 0.0; 으로 초기화
float 타입은 숫자 뒤 F, long 타입은 숫자 뒤 L 붙여줘야 type mismatch가 나지 않는다.
(기본형은 int, double이므로 숫자만 적어주면 됨)
실수형에서 지수(e로 10의 지수 나타냄), 가수 부분으로 수를 표현할 수 있다. 자주 사용하지는 않음.
실수형은 int값이 담길 때 소숫점 자리 .0 으로 실수타입으로 출력된다.
보통 대문자로 이루어진 단어는 상수를 의미함 (ex. MIN_VALUE, MAX_VALUE)
자바에서 boolean, char 타입을 제외한 기본타입들은 최대, 최소 상수값을 제공한다. (ex. Long.MIN_VALUE)
- 최대, 최소로 담을 수 있는 숫자값 확인 가능!!
0 : False, 0외의 값들 : True
비트반전연산자(~)를 사용하면 다 int 타입으로 변경된다. (정수형의 타입에만 사용됨)
뒤에 ( ) 형태가 붙어있다면 메소드임.
같은이름의 메소드가 여러 클래스에 속해있을 수 있다.
Java 의 데이터 타입
1. 기본 type (소문자 시작)
- byte, int, char, long ...
- Stack 메모리 공간에 해당 메모리만큼을 갖고, 변수명이 이름, 내용은 값이 입력된다.
2. 참조 type (대문자 시작, 객체로 이루어진 것들)
- String
- Stack에 메모리 공간을 갖는데 변수명이 이름, 내용은 주소값 (보통 16진수로 표시됨, 0x~~ 을 가지고, 실제 값은 Heap이라는 메모리 공간에 저장된다.
같은 문자열 리터럴을 생성하려고 한다면 자바는 동일한 String 객체를 참조하도록 되어있다. 그러나 new 라는 객체 생성 연산자를 사용하면 새로운 String 객체의 번지값을 가진다.
이 때 equals 메소드를 이용하면 실제 문자열이 같은지를 확인 // 비교연산자(==)를 이용하면 stack안에 값 (즉, 주소)이 같은지를 비교
논리 연산자는 1개짜리보다 2개짜리가 더 효율적임. (& 보다 &&이 빠름)
- 1번째 조건을 확인한 후 해당하지 않으면 나머지 조건을 평가하지 않고 바로 넘어간다.
비트논리연산자 (복습하기**)
- 정수형에만 해당됨. (실수형은 비트단위연산이 안됨)
- 비트이동연산자 (>>, <<, >>>)
>> 의 경우,, 양수인 경우 0을 채우고 음수인 경우 1을 채워준다. (부호수가 바뀌면 안되므로)
삼항연산자 (?:)
- if 조건문과 유사함.
- (조건문 ? True일 경우 값 또는 연산식 : False일 경우 값 또는 연산식)의 형태로 사용
조건문
- if문 (if, else, elseif)
- switch문
break가 없을 때 아래 모든 문장이 실행됨. break문 필수!!*
default 문장은 모든 case가 맞지 않을 때 실행되는 문장.
반복문
- for문 (반복 횟수를 알고 있을때)
- while문 (조건에 따라 반복할 때)
- do-while문 (일단 1회이상 실행 시켜야할 때)
Math.random()
: 0.0이상 1.0 미만의 실수타입 난수를 랜덤으로 발생시켜주는 메서드.
'Java' 카테고리의 다른 글
Java 개발 공부 5일차 (21.08.23) (0) | 2021.08.28 |
---|---|
Java 개발 공부 4일차 (21.08.20) (0) | 2021.08.22 |
Java 개발 공부 2일차 (21.08.18) (0) | 2021.08.19 |
Java 개발 공부 1일차 (21.08.17) (0) | 2021.08.17 |
Java 기초 공부 (변수) (0) | 2021.08.09 |