티스토리 뷰
강사 : 김호진 강사님
JAVA 설치
JDK 설치 유형
- Java EE(Enterprise Edition) : 기업의 개발 환경(통합)
- Java SE(Standard Edition) : 개인용 개발 환경
- Java ME(Micro Edition) : 소형 디바이스 전용 환경(축소)
운영체제마다 다른 JDK 지원
javac와 java
- javac.exe : Java 컴파일러
- java.exe : Java 런처(실행시킬 수 있도록 만들어주는 요소)
환경변수 설정
환경변수에서의 ;(세미콜론)은 종결자가 아닌 구분자로 사용
cmd에서 java 프로그램 실행하기
1. java 코드 저장(.java)
2. cmd 창에서 해당 파일 경로로 이동
3. javac <파일이름>.java
-> 클래스 파일인 <파일이름>.class 파일 생성 (JVM이 읽을 수 있는 방식으로 변환된 파일)
4. java <파일이름>
-> 런처로 실행하는 경우 .class는 붙이지 않음
JAVA의 구조
JVM(Java Virtual Machine, 자바 가상 머신) : 서로 다른 OS에서도 프로그램이 정상적으로 동작할 수 있도록 해줌
JDK(Java Development Kit) : 자바 소프트웨어 개발 환경. 자바 가상머신(JVM)과 컴파일러, 디버거, 자바 애플릿 및 응용프로그램 개발을 위한 도구들이 포함됨
자바 프로그램의 실행 구조
Hardware > Operating System > Java Virtual Machine > Java Program
JAVA의 해석 방식
- 인터프리터 방식 : 한 줄씩 읽고 해석
- 컴파일 방식 : 통째로 집어넣고 해석(그 안에서 인터프리터 방식으로 해석)
JAVA는 컴파일 방식을 사용
자바 가상머신으로 인한 속도 저하
- 대부분의 소프트웨어는 속도보다 안전성이 우선시 된다.
- 물론 속도는 중요하다. 하지만 여기서 말하는 속도는 소프트웨어의 개발 속도이다.
- 개발중인 소프트웨어의 90% 이상은 인터넷, 네트워크 기반 소프트웨어이다.
- 인터넷, 네트워크상에서는 소프트웨어의 속도보다 데이터의 전송속도가 더 중요하다.
- 속도가 문제가 되면 대부분의 개발자들은 데이터베이스를 먼저 의심한다. 그리고 그곳에서 대부분 문제를 발견하고 해결한다.
인터넷 속도는 프로그램 속도보다 느릴 수 밖에 없음
속도 저하가 인터넷 문제가 아닐 경우 99.9%는 데이터베이스 문제
=> 자바의 속도를 문제삼지 말자!
프로그램의 골격과 구성
- 프로그램을 실행시키면 main 메소드 안에 있는 문장이 순차적으로 실행된다.
- 클래스 이름이 MyClass이면, 컴파일 시 생성되는 파일의 이름은 MyClass.class이다.
- System.out.println의 괄호 안에 출력하고픈 것을 큰 따옴표로 감싸서 넣으면 출력이 된다.
- System.out.println은 출력을 한 다음에 행(Line)을 바꾼다.
- System.out.println과 같이 컴퓨터에게 무엇인가 일을 시키는 문장을 가리켜 '명령문(statement)'이라 한다. 그리고 이러한 명령문의 끝에는 반드시 세미콜론(;)을 붙여서 명령문의 끝을 표시해야 한다.
- 클래스는 '정의'
- 클래스를 사용할 때는 '호출'
- 변수 '선언'
- 변수에 값을 대입할 때는 '초기화'
- 자바에서는 '함수'라고 부르지 않고 '메소드'라고 부름 ex) println()
-> 함수 중심의 언어에서는 함수 혼자 독립적으로 사용 가능하지만 자바라는 객체지향언어에서는 함수를 독립적으로 사용할 수 없고 클래스 안에서 사용해야 함.
변수
자료형
- 정수를 표현하기 위한 자료형 : byte(1byte) - short(2byte) - int(4byte) - long(8byte)
- 실수를 표현하기 위한 자료형 : float(4byte) - double(8byte)
- 참과 거짓을 표현하기 위한 자료형 : boolean(1byte) : true / false
※엄밀히 따지면 0 / 1이랑은 다른 값임
- 문자를 표현하기 위한 자료형 : char(2byte)
자바는 메모리 주소로의 직접적인 접근을 허용하지 않음!!(오로지 이름으로만 식별)
int num3 = num1 + num2;의 연산 순서
- num1 + num2
- int num3 선언
- num3에 num1 + num2 연산 결과 대입
변수 이름의 제약사항
- 숫자로 시작 불가
- $와 _ 이외의 다른 특수문자는 사용 불가
- 자바의 키워드는 변수의 이름으로 사용 불가
변수의 사용
- CPU는 기본적으로 32비트(4바이트) 기반으로 연산하기 때문에 int형을 쓰는 것이 가장 처리 속도가 빠름
- byte나 short는 연산 속도에 크게 구애받지 않는 경우에 사용(연산보다 데이터의 양이 중요시 되는 상황도 존재)
- 하지만 실수는 float(4byte)보다는 double(8byte) 사용을 추천 -> 실수는 정밀하게 표현하는 것이 중요하기 때문
자동 형 변환 규칙
- byte -> short / char -> int -> long -> float -> double
- long은 8byte이고 float은 4byte이지만 표현 범위는 float이 더 큼
- char는 문자를 표현하는 데이터 타입이기는 하지만 내부적으로는 ASCII 코드 값을 저장하기 때문에 int로 자동 형 변환이 가능
명시적 형 변환을 하는 이유
- 자동 형 변환 발생지점의 표시를 위해서 -> 주석문과 같은 역할(오류가 아님)
- 자동 형 변환의 규칙에 위배되지만 변환이 필요한 상황 -> 큰 자료형을 작은 자료형으로 변환하는 경우
ex) long num1 = 2147483648L;
int num2 = (int)num1;
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 교육 3일차 과제 - Work03: 2의 배수? 3의 배수? (0) | 2018.01.04 |
---|---|
[JAVA] 교육 3일차 (0) | 2018.01.04 |
[JAVA] 교육 2일차 과제 - Work02: 무슨 요일? (0) | 2018.01.04 |
[JAVA] 교육 2일차 과제 - Work01: 윤년? 평년? (0) | 2018.01.04 |
[JAVA] 교육 2일차 (0) | 2018.01.04 |
- Total
- Today
- Yesterday
- ubuntu
- 빅데이터
- 블록체인
- 코딩테스트
- Hyperledger Fabric v1.2
- 빅데이터 강의
- 빅데이터 교육
- ambrosus
- 코테
- 알고리즘
- javascript
- 직딩잇템
- Blockchain
- 하이퍼레저 인디
- 암브로셔스
- 코딜리티
- codility
- 하이퍼레저 페브릭
- docker
- Private Data
- Hyperledger Fabric
- 어서와 데이터는 처음이지
- Hyperledger Indy
- 문제풀이
- 빅데이터 기초
- 블록 체인
- DOCs
- 하이퍼레저 패브릭
- Hyperledger Fabric v1.1
- 기초 of 기초 데이터 개념
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |