IT/JAVA (17.12.18~)

1일차 OT 와 JAVA (1)

만두토끼 2017. 12. 19. 10:29

17.12.18 (월) 


정리해주신 수업 자료에 들은 내용 추가

수업의 큰 뼈대



<OT - 커리큘럼> 

박문석 선생님: 메모장에 그날 공부 적어주심, PPT 파일 제공


Java Application Programming

Data Base - Oracle, Mango DB

Front End - HTML, CSS, JavaScript (jQuery ... )

Java Web Programming - Framework(MyBatis, Hiberrate, Spring ...)

Android - Native, Web, Hybrid

Project - 1인으로 진행하세요



<자바>

1. Java 의 특징

=>플랫폼 독립적(운영체제나 기계에 상관없이 동작)

=>대규모 애플리케이션(엔터프라이즈급) 작성에 적합

=>오픈 소스 프로젝트가 많아서 애플리케이션 제작이 용이함 ex) 분산파일저장시스템 Hadoop, 검색엔진 Lucene

 

* C, C++, C#은 독립적이지 않다. 운영체제에 따라 각각 만들어야한다.



2. 자바 개발 도구 설치

1) 자바 개발 도구

버전 - ME(Micro Edition - Embedded SW: 기계에 내장된 SW), 

SE(Standard Edition - PC 용 프로그램 개발), EE(Enterprise Edition - Web 프로그램 개발)


실행 - JDK(개발도구) 와 JRE(실행환경)로 구분 

=>개발과 실행을 동시에 할려면 2개의 프로그램을 설치해야 합니다.

=>인터넷 할 때 설치된 자바는 자바 프로그램 실행을 위한 JRE 입니다.


2)개발도구 다운로드

www.oracle.com 에서 java se 버전을 다운로드 받아서 설치


* 자바 컴파일러: 자바 코드를 작성 후, 운영체제가 인식할 수 있게 바꿔줌. 



3. path 설정

=>환경변수 중에서 path는 프로그램을 저장위치까지 가지 않고 이름만으로 바로 실행할 수 있도록 해주는 것

=>java가 설치된 디렉토리 안의 jdk 안에 있는 bin 디렉토리를 path에 추가

=>탐색기에서 [컴퓨터]를 선택하고 마우스 오른쪽을 클릭한 후 [속성] 선택

=>고급 시스템 설정 클릭 -> 환경변수 클릭 한 후 path를 편집

=>커서를 맨앞으로 옮기고 붙여넣기를 하고 ;를 추가



4. java 설치 확인

cmd(console) 창에서 java -version : jre 설치 여부 확인

                   javac -version : jdk 설치 여부 확인



5. java 프로그램 작성 및 실행

1)소스 프로그램 작성(java 문법에 맞게 코드를 작성)

=>메모장을 열어서 작성: Linux에서 개발 공부를 할 때도 처음에는 vi 에디터에서 작업을 한 번 해보고 다른 프로그램을 사용하는 것이 좋습니다.


public class first{

public static void main(String args[]){

System.out.println("Hello Java");

}

}


위 코드를 작성하고 first.java로 저장


2)컴파일: 소스 프로그램을 운영체제나 기계가 인식할 수 있는 코드로 변환

파일이 저장된 곳으로 이동해서 javac 파일이름

=>컴파일에 성공하면 아무런 메시지도 나오지 않고 파일이름.class 라는 파일이 생성되고 오류가 있으면 오류 메시지가 출력됩니다.

=>cmd 창을 열고 저장된 디렉토리로 이동 :  cd 이동할 경로

=>컴파일에 실패하면 코드를 수정합니다.


3)실행 java first



6. IDE(통합 개발 환경)

=>프로그램 작성과 컴파일 및 실행을 편리하게 해주는 프로그램

1)Java IDE

=>Eclipse: 무료 프로그램이고 현재까지 가장 많이 사용하는 프로그램 

              버그가 조금 있어서 사용하다 보면 코드의 잘못이 아닌데 에러를 내는 경우가 있습니다.

=>IntelliJ: 상용 프로그램이고 이 프로그램 기반으로 안드로이드 스튜디오가 만들어졌습니다.

=>NetBeans: Oracle에서 제공하는 무료 IDE



7. Eclipse

=>www.eclipse.org 에서 다운로드

=>환경설정은 window 메뉴의 preferences

1)[File] - [New] - [Java Project]를 클릭해서 프로젝트를 생성

2)프로젝트의 src의 폴더에 클래스를 추가

3)클래스 안에 코드 작성

=>코드를 작성할 때 에러를 만들면 왼쪽 창에 빨강색 원이 만들어집니다.



8. 화면에 내용을 출력하는 코드

System.out.print("출력할 내용"): 내용을 출력하고 줄 바꿈을 하지 않습니다.

System.out.println("출력할 내용"): 내용을 출력하고 줄 바꿈을 합니다.



9. Java 코드의 기본 구조

package 이름 => 있을 수도 있고 없을 수도 있습니다.

                        1번만 나와야 합니다.

                        소속을 결정하는 명령문입니다.

import 이름 => 있을 수도 있고 없을 수도 있습니다.

                     여러 번 나올 수도 있습니다.

                     소속을 생략하고 이름을 사용하기 위한 명령문입니다.


class 이름 => 반드시 1번이상 나와야 합니다.

                   여러 개의 구성요소를 하나로 묶어주는 명령문입니다.

                   마트에서 비닐봉지 나 박스 

public static void main(String [] args): 실행 가능한 클래스를 만들 때만 1번 나와야 하는 명령문, entry point 



10. Eclipse에서 프로젝트 생성 후 실행

1)일반 자바 프로그램을 만들 때는 java project를 생성

2)클래스 추가

3)코드 작성 후 실행



11.System.out.println

=>콘솔에 문자열을 출력할 때 사용하는 메소드

=>일반 문자열(글자들)을 출력할 때는 "글자 나열"해서 출력

=>숫자를 출력할 때는 숫자를 나열

=>숫자 + 문자열 하게 되면 숫자와 문자열을 결합해서 출력합니다.

=>숫자 + 숫자는 더하기를 해서 출력

=>문자열 + 문자열을 하게되면 문자열을 결합해서 출력


System.out.println(10+20); //30

System.out.println(10+"20"); //1020

System.out.println(10+"20"+30+40); //10203040



12. 프로그래밍 구성 요소

1) Keyword (예약어) -> 프로그래밍 언어에서 기능을 정해준 명렁어 ex) public, class ....

2) Identifier (식별자) -> ID, 기능을 개발자가 정하는 명령어

                                -> 문자로시작(한글, 영어) 

  -> 특수문자는 _와 $ 

  -> 숫자 사용이 가능, 두번째 이후에

                        -> 되도록이면 한글 사용은 하지 않기

3) 상수 (Contant, Literal) -> 변하지 않는 데이터, ex) 10, 읽기전용

4) 변수(Variable) -> 변할 수 있는 데이터

5) 연산자 -> 계산을 수행해주는 부호나 명령어

6) Comment (주석) -> 보충설명 // /**/



13. 데이터의 종류

1)상수와 변수

상수(constant): 변하지 않는 데이터

변수(variable): 변할 수 있는 데이터를 저장하고 있는 메모리의 이름

                   이름은 식별자 규칙에 맞게 작성, 어떤 데이터를 다른 곳에서 사용하기 위해 생성


*상수

1. 정수

 1) 107

                     2) 0107 8진수를 10진수로 표시

                     3) 0x107 16진수

                     4) 107L long형 정수

2. 실수

10.7- > double 형 실수

0.107E2 - > double 형 실수

3. 부울 상수 : true false

4. 문자상수

1글자, '글자' ex) 'A'

5. 문자열

0개이상의 문자집합

"글자나열" ex) "A", "HELLO"

* "A"와 'A'는 다르다

6. 레퍼런스 상수 null: 가리키는 것이 없다.



2)저장하고 있는 데이터의 개수에 따른 분류

scala: 1개의 데이터만 저장할 수 있는 경우

vector(collection): 0개 이상의 데이터를 저장할 수 있는 경우


3)저장하고 있는 데이터의 종류에 따른 분류

value 형: 실제 데이터를 저장하는 경우 : 보통 1개

reference 형: 실제 데이터가 저장된 곳의 주소를 가리키는 경우 : 보통 0개 이상



14. Data Type(자료형)

1)변수의 선언

자료형 변수이름;

2)변수에 값 대입

변수이름 = 값;

3)변수에 저장된 데이터 사용

변수이름을 호출하면 변수 안의 데이터를 가리킵니다.



15. 기본형

1)boolean

=>true 아니면 false만 저장할 수 있는 자료형

2)char

3)int

4)long

=>8바이트 정수로 21억 이상의 정수를 저장할 수 있는 자료형

=>long 형 정수를 사용할 때는 정수 뒤에 L 이나 l을 붙여서 사용

int year = 2017;

long t = 2017L;

5)float

=>4바이트 실수를 저장할 수 있는 자료형

=>실수를 저장할 때 소문자 f를 붙여서 저장

float f = 3.07f;

=>10의 38승 정도의 숫자까지 표현이 가능

6)double

=>8바이트 실수를 저장할 수 있는 자료형

=>일반 실수는 전부 double 입니다.

double d = 3.07;

=>예전에는 실수를 저장할 때 메모리를 절약한다고 float을 많이 사용했지만 지금은 CPU의 수치보조연산 프로세서가 double 단위로 연산을 하기 때문에 float을 사용하면 연산속도가 느려질 수 있습니다.

=>최근에는 float 보다는 double을 많이 사용합니다.

7) byte 0~255 저장 가능 -> -128~127 그래서 2의 7승 -1에서부터 음수 -2의 7승까지 표현


ex)키는 소수 첫째자리까지 저장하는 경우가 많습니다.

키를 저장할 수 있는 변수를 만들고 그 변수에 키를 저장하고 출력

//키를 저장할 수 있는 변수를 생성

double height;

//변수에 데이터를 저장

height = 166.7;

//데이터 출력

System.out.println("제 키는 " + height + "입니다.");



16. 변수

=>변수를 생성함과 동시에 값을 대입하는 것이 가능합니다.

int age;

age = 48;

위 두줄을 int age = 48; 로 변경 가능


=>동일한 자료형의 변수는 한꺼번에 생성이 가능

예를 들면 정수로 된 국어점수와 수학점수를 저장할 수 있는 변수를 생성

int kor;

int eng;


위 2줄을 아래처럼 한줄로 작성이 가능합니다.

int kor, eng;


=>동일한 영역에서 동일한 이름의 변수는 1개만 생성이 가능합니다.

int kor;

double kor;

위처럼 kor이라는 변수를 2번 생성하면 에러가 발생합니다.


=>변수를 생성할 때 와 =의 왼쪽에 변수이름이 있을 때는 저장할 수 있는 공간을 의미하지만 그 이외의 경우는 전부 값입니다.



int a; //a 라는 정수를 저장할 수 있는 공간을 생성

a = 20; //20이라는 정수를 a라는 공간에 저장

a = a + 20; //a에 저장된 20과 20을 더해서 a라는 공간에 저장

System.out.println("a:" + a); //a에 저장된 40을 출력


int b;

b = b+1; //b에 값을 저장한 적이 없어서 에러



17. Overflow & Underflow

=>Overflow는 자신이 저장할 수 있는 최대값보다 더 큰 값을 저장해서 의미없는 값을 만들어내는 것

=>Underflow는 자신이 저장할 수 있는 최소값보다 더 작은 값을 저장해서 의미 없는 값을 만들어내는 것


int r = 2100000000; //r에 21억을 저장

r = r + 1000000000; //int는 21억 정도까지만 저장할 수 있는데 31억을 저장할려고 해서 의미 없는 값이 저장됩니다.

System.out.println("r:" + r);


r = -2100000000;

r = r - 1000000000;

System.out.println("r:" + r);




* 댓글 환영

'IT > JAVA (17.12.18~)' 카테고리의 다른 글

6일차 JAVA(6)  (0) 2017.12.26
5일차 JAVA(5)  (0) 2017.12.22
4일차 JAVA (4)  (0) 2017.12.21
3일차 JAVA (3)  (0) 2017.12.20
2일차 JAVA (2)  (0) 2017.12.19