일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- nodejs
- ABAP
- sap mm
- 자바스크립트
- Mac
- docker
- SAP
- node.js
- 파이썬
- Python
- IT
- Java
- 머신러닝
- Spring Framework
- 도커
- 자바
- 딥러닝
- db
- Oracle DB
- 유럽여행
- SAP ERP
- Programming
- oracle
- 비지니스영어
- SAP ABAP
- 오라클 디비
- 노드
- 오라클
- 영어
- JavaScript
Archives
- Today
- Total
JIHYUN JEONG
[java] 엄마도 이해하는 자바 기본 1일차 본문
□ Java history (AM 09:00 ~ 10:00)
○ JDK 1.0 (jan 23, 1996) ~ Java SE 7.0(July 28, 2011)
○ Java SE 7.0 -> JDK 7.0 이라고 호칭함
○ JDK 1.1 과 1.2와의 차이가 커짐
○ JDK 1.2부터 Java2로 칭함(J2SE)
□ Java
- 다양한 소형 가전기기에서 실행 가능한 호환성 있는 언어를 만들려는 Project로부터 시작
□ Java platform
○ SE(Standard Edition), EE(Enterprise Edition - 분산환경,물리적으로 떨어져 있는 환경에서 운영되는 프로그램,ex 브라우저), ME(Micro Edition, ex. 모바일, 셋톱박스, 네비게이션, 초창기에 Sun에서 사용함, 현재는 안드로이드가 대체)
○ ME
○ EE - 예,High-End Server
○ SE
□ Java의 장점 (10:00 ~ 11:40)
○ Simple & easy
- 타 언어에 비해 쉽다
○ Platform independent (플랫폼 독립적) [★ 핵심]
- 가장 큰 장점(플랫폼을 따지지 않는다)
- 플랫폼 이란 가장 기본적으로 운영체제를 생각하면 됨
○ Object-oriented programming (객체지향 프로그래밍)
- 반대개념 : 절차지향 프로그램, 순서를 중요시 여김
- 객체는 부품들이다. 즉 부품들을 조립해서 만든다.
- JDK는 부품들의 집합
○ Mutil-Thread
○ Security
- 보안성이 강화됨
○ GC(Garbage Collection)
- 메모리 관리를 따로 해줄 필요가 없다
□ Program installation & 환경설정
1. JDK 7.0 설치 (부품)
- www.oracle.com → download
2. JDK 7.0 API document unzip (설명서)
- www.oracle.com → download → Java SE Development Kit 7 Documentation
- API 문서 경로 : jdk-7u11-apidocs\docs\api\index.html (API 문서)
3. IDE : Eclipse
- http://www.eclipse.org → Eclipse IDE for Java EE Developers
- EE로 설치하는 이유는 서블릿/JSP 할 때 추가 설치를 하지 않기 위해 함
- 실행시 workspace 경로를 지정해야함
- 이클립스에서 경로를 못 찾겠다고 나오는 상황
(1). eclipse.ini 파일을 에디티 플러스를 통해 열고
(2). -vmargs를
-vm
C:\Program Files\Java\jdk1.7.0_13\bin\javaw.exe로 저장
(3). 이클립스 재 실행
4. jdk installation folder : path에 추가 (jdk\bin)
- 내 컴퓨터 > 속성 > 고급 > 환경변수 > 시스템 변수 > Path 클릭 > 편집 > 변수값 > 맨 앞쪽 > C:\Program Files\Java\jdk1.7.0_13\bin;(세미콜론 ';'을 잊으면 안됨)
- 확인법 : cmd > javac > 여러 옵션 값이 보이면 정상설치가 된것 (path가 한글로 나오면 설정이 잘 못된것)
5. 작업 폴더 생성 (c:\workspace)
※ 설치순서
- 작업폴더 생성(c:\workspace) > JDK 7.0 > Eclipse > Path 설정
※ 개발할때는 설명서를 항상 켜 놓고 작업
※ JDK는 플랫폼(OS)를 따진다.
○ 폴더 설명
- C:\Program Files\Java\jdk1.7.0_13\bin (실행파일 폴더, 가장중요한 폴더)
* javac : 컴파일러(문법 체크)
* java : 실행
- C:\Program Files\Java\jdk1.7.0_13\include (헤더 파일)
- C:\Program Files\Java\jdk1.7.0_13\lib (라이브러리 파일)
- C:\Program Files\Java\jdk1.7.0_13\src.zip (부품의 소스)
□ Java development environment
○ JRE(Java Runtime Environment)
- JVM + API(Application Programming Interface)
- API : 부품
- JVM : 실행시켜주는 주체
○ JDK(Java Development Toolkit)
- Compiler를 비롯한 개발에 필요한 여러 도구 + JRE
- (API문서작성, 유틸리티)
□ Java Application Execution (PM 1:00 ~ 2:00)
○ HelloWorld.java (javac[compile]) → HelloWorld.clss (java[execute]) → JVM (Java Virtual Machine)
- JVM 역활 : class 파일을 실행이 되도록 중간에 맞춰주는 역활
-
□ Eclipse 단축키
○ System.out.println(); : sysout + Ctrl + Space bar
○ 줄 복사 : (커서를 맨 끝에 두고)Ctrl + Alt + ↓
□ Java programming 주의사항
1. 대소문자 구분
2. main() 함수가 있는 클래스를 실행해야 함
- Main 있는 클래스 : 실행
- Main 없는 클래스 : 부속품 (ex. 나사)
3. 한 파일에 public 클래스는 한 개만 가능하며 이때 파일 이름은 public클래스 이름으로 함
- 컴파일 할때는 Public Class를 [compile], 실행할때는 메인 메소드를 가지고 있는 클래스를 [execute]
4. 클래스 이름은 대문자(명사), 메소드 이름은 소문자(동사)로 시작
□ keywords (2:00 ~ 3:00)
- 예약어 (예, abstract, assert, boolean, break, this, case, catch, char, class, const, continue, default, do, double....etc)
- 자주색으로 나오는 Keywords
□ Java Data Types
○ Primitive type (기본타입)
* 논리형
- boolean
* 숫자형
- 정수형 → byte, short, int(O), long, char(정수형으로 사용되지만 글자의 코드 값을 위해서 사용됨)
- 실수형 → float, double(O)
○ reference type
* class
* interface
* array
□ 제어문 (3:00 ~ 4:00)
○ If ~ else
- if (조건식) {
실행부분
}
- if (조건식) {
실행부분
}else{
실행부분
}
- 예시
if(b2 >100)
System.out.println("큰수");
else
System.out.println("작은수 ");
○ Switch ~ case
- 여러 가지 경우 중 하나의 값을 선택해 실행
- Switch ~ case → if ~ else 케이스로 모두 전환 가능, 역은 모두 전환 가능하지 않음.
- integer_expr
switch (integer_expr ) {
case integer_expr :
System.out.println("Coffee?");
break;
}
* byte, short, int or char (long을 뺀 나머지 정수형이 올수 있다)
- 예시
switch (choice) {
case 37:
System.out.println("Coffee?");
break;
case 45:
System.out.println("Tea?");
break;
default: // 위에 case에 해당되는게 없으면 기본으로 실행, 보통 맨위에 있으나 아래에 있어도 상관없음
System.out.println("???");
break;
}
- [실습 1]
public static void main(String[] args) {
int count =13;
char c='y';
switch (count) {
case 1:
System.out.println("first...");
break;
case 2:
System.out.println("second");
break;
case 3:
System.out.println("third");
break;
default:
System.out.println("other");
break; // 없어도 상관없음
}
}
- [실습 2]
public static void main(String[] args) {
int count =13;
char c='y';
switch (c) {
case 'x':
System.out.println("first...");
break;
case 'y':
System.out.println("second");
break;
case 'z':
System.out.println("third");
break;
default:
System.out.println("other");
break; // 없어도 상관없음
}
}
- 주의사항 : 하나의 case가 끝나면 break로 멈춰줘야 함
- Switch case 는 동등비교 VS if else case는 동등비교 + 조건비교 가능
- Switch case 문을 사용할때 가독성이 좋음, 전체적인 구조파악 용이
□ 반복문
○ for Loop
- for (초기값, 조건, 증감식) {
문장
}
- [예시]
for (int i =0; i<10; i++) {
System.out.println(i);
}
- [실습]
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("i=" +i);
}
}
- 무한루프 : for ( ; ; ) { }
○ for While
- while (상태) {
문장
}
- int i =0; // 초기값 지정해줘야함
while (i < 10) {
System.out.println("i =" + i);
i++; // 증감식
}
- 무한루프
boolean flag = true;
while (flag) { }
○ do while Loop (잘 사용 X)
- do {
문장
}while (조건);
- int i =0;
do {
system.out.printoln();
i++;
}while (i <10);
○ break Statement - 조건에 맞으면 빠져나옴
○ Continue Statement - 해당하는 것만 빼고 나머지는 수행
○ 연산자
- 종류
* 단항 연산자 : ++ -- ! (형변환)
* 비교 연산자 : == !=
* 논리 연산자 : &(&&) - and | (||) - or
> 한개 말고 두개를 사용해야함 (논리 연산자 사용시)
> 한개짜리는 조건식에서 앞에 조건과 뒤에 조건 둘다 따짐
but 두개짜리는 앞에 조건만 체크하고 참,거짓이 밝혀지면 뒤에 조건은 실행하지 않음
그래서 실행속도 한 개 쓴것 보다 빠르다
* 삼항 연산자 : ? :
> int a =7, b=5;
int max = (a > b) ? a : b;
// (값 a) ? 값b : 값c; True = 값b, False = 값C
// 즉 max는 7
※ byte b =10 ;
b = ++b; // 에러발생(X), type casting은 형변환 없이 발생
b = b+ 1; // 에러발생(O), 형 변환을 실시해야함
□ Array, 배열 (4:00 ~ 5:00)
동일한 타입의 데이터 여러 개를 저장하는 자료구조
○ 배열의 사용 작업 단계 [1차원 배열]
1. 배열의 선언
2. 배열의 생성
3. 배열의 사용
예)
int[] data; // (= int data[]) 1. 배열의 선언
data = new int[3]; 2. 배열의 생성
data[0] = 100; 3. 배열의 사용
int[] data = {100,200,300};
data.length : 배열의 길이
[예제 1]
int[] data1 = {100, 200, 300};
System.out.println(data1[1]); // 출력값 200
[예제 2]
char[] a = new char[3];
// new를 통해 배열을 생성하게 되면 기본값이 들어간다(int 0, double 0.0, boolean false,char 공백, reference type[class, interface, array] Null)
System.out.println(a[0]);
※ 실무에서는 배열을 거의 안쓰고 ArrayList를 사용한다
○ 배열의 사용 작업 단계 [2차원 배열]
- 예시
String[][] msg = new String[2][3];
msg[0][0] = "hi";
msg[1][2] = "tommy";
msg[0][1] = "";
※ 2차원 배열은 배열안의 배열
※ 2차원 배열의 크기는 앞에 나온 숫자, 즉 msg의 lengh는 2
[예시] msg.lengh : 2, msg[1].length : 3
※ NULL : 값이 정해지지 않은 상태
□ main 함수에서의 배열처리
- main(String[] args){}
- 실행시
java Hello
java Hello aa bb cc
- args ["aa","bb","cc"]
- 이클립스에서 실행시
1. RUN AS > config > argument > Variable > string_prompt > apply
[예시]
public class ArgTest {
public static void main(String[] args) {
for(String m : args)
System.out.println(m);
}
}
> 입력 aa, bb, cc 출력 aa bb cc
'Information Technology > Java' 카테고리의 다른 글
[java] 엄마도 이해하는 자바 기본 6일차 (1) (0) | 2013.02.19 |
---|---|
[java] 엄마도 이해하는 자바 기본 5일차 (2) | 2013.02.18 |
[java] 엄마도 이해하는 자바 기본 4일차 (0) | 2013.02.18 |
[java] 엄마도 이해하는 자바 기본 3일차 (0) | 2013.02.18 |
[java] 엄마도 이해하는 자바 기본 2일차 (0) | 2013.02.18 |
Comments