[Java] 설치 / 변수, 연산자, 자료형
강사 ip : 192.168.60.57
공유폴더
\\192.168.60.57
- 오라클
jdk 1.8 (무료) - 이클립스
https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2019-12/R/eclipse-jee-2019-12-R-win32-x86_64.zip&mirror_id=1273
설치파일 보다는 패키지 파일이 깔끔
Thank You for Downloading Eclipse | The Eclipse Foundation
The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects, including runtimes, tools and frameworks.
www.eclipse.org
- 자바로 시작? 낫 베드 정도
- 주로 C언어로 시작하는게 가장 좋다.
- '프로그래밍 언어의 아버지'
- 최초의 언어는 아니지만 (알골계, 어셈블리어)
- 1972, 벨 연구소, 데니스 리치 Dennis Ritche
- 절차지향
- C -> C++ -> obj-c -> suift
- -> C#(마이크로소프트,썬마이크로시스템즈 대항마) -> C#스크립트, 유니티엔진(게임) (vs언리얼엔진)
- C++
1981, C언어의 확장팩, 출시 당시에는 비운의언어?
멀티페러다임 언어, 절차+객체
등장 후에도 10여년간 C언어의 전성기 - 1991
Oak (java의 전신)
객체지향
4년 정도 후 사라짐 - 1996
Java
Sun micro systems, 제임스 고슬링 - C언어
원리, 효율, 속도빠름 - java
개발속도는 빠름, 컴팩트 하지 않음
컴퓨터의 속도가 빨라짐, 인간이 자바가 느린 것을 못느낌 - 네이티브 -> 웹
exe, 다운로드, CD, usb메모리 : 라이센스 뚫림
-> '파이썬' (개발속도 자바보다 빠름, 시장논리, 돈 안됨)
성능최적화문제, 문법별로 but 시장점유율
1. 네이티브
2. 한국의 특성, jsp를 이용한 웹개발 (해외에서는 PHP)
3. 안드로이드
4. Big data, Hadoop (경력자) - DDK : 드라이버 개발, 진입장벽 높음, 철밥통(수요적고 공급적음)
- ASM : 어셈블리어, 준기계어, 개발자보다는 보안기술자(화이트해커, 크래커)
- 언어 점유률 순위
https://www.tiobe.com/tiobe-index/
index | TIOBE - The Software Quality Company
TIOBE Index for January 2020 January Headline: Programming Language C awarded Programming Language of the Year 2019 Everybody thought that Python would become TIOBE's programming language of the year for the second consecutive time. But it is good old lang
www.tiobe.com
- 이클립스 설정, java로 네이티브 개발, 웹개발은 java EE로
- ctrl + '+' 키로 폰트 크기 조절 (숫자패드쪽말고)
- 이클립스 기능이 많고 잔버그 좀 있음 (vs 넷빈즈)
Programming Language
- 프로그램이란?
- 하드웨어에게 명령을 전달하는 수단
- 프로그래밍 언어로 제작되어지는 명령 집합체
- 프로그래밍 언어
- 프로그램을 만들기 위한 언어로 세계적으로 3000여개 이상이 존재
- 저급언어와 고급언어로 분류
- 고급언어는 다시 절차지향 언어와 객체지향 언어로 분류
- JAVA는 대표적인 객체지향 언어
- exe : 익스큐터블 -> 문서
- 컴파일 : 번역하다
- 저급언어
- 이진수값, 어셈블리어
- 효율성 극대화, 최적화
- 게임,시뮬레이팅
- 개발시간 많이 들어서 기업선호 낮음
- 고급언어
- 그외 현존하는 언어. 자바, 파이썬, C, 루비
- 완전한 최적화가 필요한 분야에는 적합하지 않음
- 절차지향과 객체지향으로 분류
- 절차지향
- 순서대로, 시간의 흐름대로 개발
- 원리 지향, 효율 중심, 고급언어 중 효율성 극대화
- 객체지향
- 자바가 대표적
- 빠르게 만들 수 있는 인프라
- 순서를 신경쓰지 않음, 나중에 관계 연결
- 객체 중심 = 모듈 중심 = 단위 중심
- 조립한다
- Java
- 객체지향 패러다임 중 가장 성공한 프로그래밍 언어
- 전세계에서 가장 많이 사용되는 언어
- Java의 특징
- 운영체제에 독립적인 언어이다. (JVM)
- Write Once, Run Anywhere
- Memory 활용이 편하다. (Garbage Collection)
- C++의 장점은 추려내고 활용도가 떨어지는 부분은 제외시켜 상대적으로 배우기 쉽다.
- 40년 전통의 C언어와 비교하여도 부족하지 않은 풍부한 클래스 라이브러리를 가진다.
- C 언어
- 소스코드를 짠다
- 소스코드 컴파일 -> 목적파일 obj (오브젝트 파일)
- (C언어) Link : 명령어가 실행되기 위한 환경정보를 위아래에 붙인다. -> exe (실행파일, 프로그램)
- 링크 후 운영체제 종속 (ex.망치라는 도구가 윈도우 어느 위치에 있다.)
- 과거 리눅스에서는 소스코드 채로 가져다가 컴파일 하는 문화가 있었다.
- Java
- 소스코드를 짠다.
- 컴파일 과정 -> 기계어 exe(실행파일)
- 링크 과정을 제공하는 방식이 다르다 : JRE(Java Runtime Environment)(ex.집사님)가 지원
- JDK(Java Development Kit) : 도구+문서 + JRE
- 반환이라는 명령이 없다. (최적화 안됨)
- 가비지컬렉터가 자원관리를 위해 자원소비
- ; 세미콜론은 문법구분자
- sysout + 인텔리센스( Ctrl + spacebar )
- main + 인텔리센스( Ctrl + spacebar )
- 변수 및 연산자
- 변수
- 일반적인 변수의 뜻 -> 고정되어 있지 않은 수
- JAVA에서 변수의 뜻 -> 데이터 또는 자료를 저장하기 위한 메모리 공간
- 변수선언
- 메모리 공간을 이용하기 위해서는 변수 선언을 해야 한다.
- DataType 변수명 ;
- 입력 - 기억 - 연산(처리)
- CPU (Central Procdssing Unit 중앙처리장치)
- RAM : 주기억장치
- SSD : 보조기억장치
- cpu는 하드디스크에 직접 접근이 안된다.
- Java에서는 주소값을 안쓰고 변수명만 갖고 사용
- 명명규칙 (식별자 규칙)
- 프로그램 내에서 사용하는 변수, 함수, 상수 등에 부여한 이름
- 작성규칙
- 영문자 대 소문자, 숫자, _(underline), $의 조합으로 구성
- 숫자의 경우 가장 첫 글자로 쓰여서는 안된다.
- 예약어를 사용하면 안 된다.
- 공백이 있어선 안된다.
- 프로그래밍 활용을 위한 TIP
- 의미를 잘 설명할 수 있는 이름
- 제약은 없지만 3~10자 내외
- 변수명은 보통 짧은 영어 단어를 활용
- 키워드 (keyword)
- 의미를 미리 정해놓은 단어, 예약어(Reserved word)라고도 할 수 있다.
- 이미 사용하고 있는 단어들이므로 다른 목적을 사용할 수 없다.
- 자료형
- 기본형 변수 (Primitive Type)
- 논리형 : boolean(1)
- 정수형 : byte(1) / short(2) / char(2) / int(4) / long(8)
- 실수형 : float(4) / double(8)
- 참조형 변수 (Reference Type)
- 기본형을 제외한 나머지 자료 형
- 객체의 주소를 저장한다.
- String 등 참조 형 변수는 모두 4 byte
- 기본형 변수 (Primitive Type)
- 오버플로우 : 바이트에 127을 초과하면 넘쳐서 한바퀴 돌아버림