> 프로그래밍 언어
1)C언어 - 게임프로그램, 윈도우응용프로그램, 임베디드
2)JAVA - 윈도우응용프로그램, 웹프로그램, 모바일 앱(안드로이드)
3)Python - 모두 가능하지만, 주로 데이터분석용(빅데이터)으로 사용됨
*compile: 인간이 이해하기 쉬운 고급언어로 작성된 프로그램을 기계어로 번역하는 것
컴파일러 언어 : 프로그램 전체를 컴파일, 실행가능한 프로그램으로 저장, 오류 시 실행파일 생성 안됨 (ex. C, C++, JAVA)
인터프리터 언어 : 프로그램을 한줄씩 실행, 실핼 파일 존재하지 않음, 오류 시 멈춤(오류가 어디인지 알 수 있음) (ex. Python, BASIC, R)
> JAVA의 특징
Write once, run every where 운영체제가 바뀌어도 잘 작동한다
객체지향 언어 / 모듈화 / 플랫폼 독립적,아키텍쳐 중립적 / 멀티스레드 지원 / 뛰어난 보안성 / 고성능(빠른 속도)
*우리나라에서 특별히 많이 사용(표준-공공기관)
*절차지향 VS 객체지향
-절차지향 프로그래밍
예)자동차를 만들 때 한번에 전체를 만들기. 즉, 바퀴, 엔진, 핸들 등 부품이 하나로 뭉쳐져있음.
장점 - 섬세한 코딩 가능. 메모리 사용 적음. 작은 규모의 프로그램에 적합.
단점 - 한 부분만 고장나도 전체가 작동하지 않음. 유지보수에 어려움이 있음. 개발기간이 길고 비용이 많이 듦. 협업이 어려움.
-객체지향 프로그래밍
예)자동차를 만들 때 부품 별로 만들어두고 나중에 조립하기.
장점 - 한 부분이 고장나도 다른 부분 작동. 유지보수가 쉬움. 개발기간이 짧고 비용도 적게 듦. 협업 가능. 대규모 프로그램에 적합.
단점 - 메모리 사용이 조금 더 많음. 불필요한 부분까지 프로그램에 포함됨.
> JAVA
1. JAVA SE 8버전 JDK 설치 - 환경변수 설정
*환경변수 설정 방법
내 PC 우클릭 -> 속성 -> 고급 시스템 설정 -> 고급 탭의 환경변수
1)시스템 변수에 새로 만들기 -> 변수 이름: JAVA_HOME, 변수 값: JDK폴더 디렉토리
2)시스템 변수 안에 Path 더블클릭 -> 새로만들기 %JAVA_HOME%\bin 추가
3)cmd검색 명령프롬프트 javac -version 결과 확인
2. 개발도구 설치
개발도구 종류 - eclipse, intelliJ(유료)
Eclipse 2020-06 (4.16) - Eclipse IDE for Enterprise Java and Web Developers(톱니바퀴모양) 설치
3. 시작하기
JAVA - eclipse, workspace 폴더 생성
eclipse.exe 실행 - workspace를 위의 생성한 workspace 폴더로 설정
window - preferences - encoding 검색
1)workspace의 text file encoding에서 other - UTF-8로 설정
2)css, HTML, JSP, XML 의 encoding을 모두 ~utf-8로 설정
window - preferences 에서 테마/폰트 설정 (help - eclipse market place 에서 테마 설치 가능)
project 만들기(Java Project 선택, no) - src에 class 만들기
main 은 필수, main 안에 코드 작성하기
*Project Explorer는 window에서 열 수 있음
4. 프로젝트 import/export
1)export
프로젝트 우클릭 - export - General-ArchiveFile 선택 - Browse로 저장위치 설정, 저장명 입력 - finish
2)import
주의. 동일한 프로젝트명이 존재하면 import할 수 없음
file - import - General-Existing projects~ 선택 - Select archive file: Browse로 저장된 파일 불러오기
> 식별자 identifier
클래스명, 변수명, 메서드명 등 사용자가 만들어서 이용하는 이름
규칙
1. 대,소문자 구분됨 (Age ≠ age)
2. 문자, 숫자, 밑줄(_), 달러기호($) 포함 가능
3. 숫자로 시작 X
4. 공백(띄어쓰기) 불가능 → 띄어쓰기는 _ or 대문자로 대체
5. 키워드(예약어)는 식별자로 사용 불가
*예약어: 자바에서 명령어 등에 이미 정해진 단어 (ex. public, class, static)
*예를 들면, int class = 10; ← 불가능
약속
1)클래스/인터페이스 이름 ex)MyCalculator = 파스칼표기법
- 명사,형용사를 서술적으로 연결
- 첫글자는 대문자, 연결 단어의 첫 글자도 대문자
2)변수 이름 ex)customerAge = 카멜표기법
- 명사적 의미를 갖도록
- 첫글자는 소문자, 연결 단어의 첫글자는 대문자
3)메서드 이름 ex)writeView()
- 동사적 의미를 갖도록
- 첫글자는 소문자, 연결 단어의 첫글자는 대문자
- 뒤에는 반드시 한 쌍의 괄호"()"
- _를 사용하지 않음
4)상수 이름 ex)NUMBER_ONE = 스네이크표기법
- 모두 대문자
- 단어와 단어 사이는 _로 연결
package (프로젝트명);
public class (클래스명) {
public static void main(String[] args) {
System.out.print("Hello World");
}
}
*class 이름 변경 방법
class 우클릭 - Refactor - rename - 이름설정 - finish
> 세미콜론, 블록, 공백
1. 세미콜론 ; 논리적인 한 문장이 끝날 때마다 반드시 쓴다
2. 블록 {} 중괄호로 묶은 범위, 복합문의 구성요소
*자바는 블록 구분을 들여쓰기로 하지 않고 중괄호로 해준다
3. 공백 빈칸(띄어쓰기), 탭(들여쓰기), 빈 줄(줄바꿈) 가독성을 좋게 하기 위함
*들여쓰기는 블록마다 해준다
> \n 줄 바꿈, \t 탭 띄어쓰기
System.out.print("안녕하세요.");
System.out.print("반갑습니다.");
//안녕하세요.반갑습니다.
System.out.print("안녕하세요.\n");
System.out.print("반갑습니다.");
//안녕하세요.
//반갑습니다.
System.out.print("안녕하세요. \t 반갑습니다.");
//안녕하세요. 반갑습니다.
> 숫자와 "문자"
숫자(정수, 실수)는 그냥 써도되지만, 문자열은 "" 안에 쓴다
System.out.print(3.14);
System.out.print("\n");
System.out.print("안녕하세요.");
//3.14
//안녕하세요.
단, 변수에 저장된 값을 출력할 때는 문자열이더라도 ""를 쓰지 않는다
String s = "안녕";
System.out.println(s);
//안녕
* 값 여러개를 , 를 이용하여 함께 출력할 수 없다 (숫자, 문자, 문자열 등 모든 datatype)
System.out.print(1, 2);
System.out.print("가", "나");
//Error
> +로 같이 출력하기
System.out.print(3.14 + "\n" + "안녕하세요.");
//3.14
//안녕하세요.
1. print: 출력
2. println: 출력과 자동 줄바꿈
3. printf: 변수의 값을 여러가지 형식으로 변환해 출력
서식문자 - %d 정수 %f 실수 %s 문자열 %c 문자 %b boolean %n 줄바꿈
ex1.
System.out.printf("오늘은 %d년 %d월 %일 입니다.", 2021, 8, 11);
ex2.
System.out.printf("오늘 날씨는 %s 입니다.", "맑음");
> 주석 comment
코드를 설명하기 위함. 프로그램 실행에 영향을 미치지 않음.
종류
1)한 줄 주석 //
2)여러 줄 주석 /* */
3)document 생성용 주석 /** */ ( API 문서 생성용 주석)
> 단축키
1)main블록 ← main ctrl+space
2)println ← sysout ctrl+space
3)프로그램실행 ctrl+f11
4)전체선택 ctrl+a
5)주석 ctrl+/
6)되돌리기 ctrl+z
7)코드이동 alt+방향키
8)이름을 한번에 수정 alt+shift+r
9)블록지정 shift+방향키
10)한줄삭제 ctrl+d
'course 2021 > JAVA' 카테고리의 다른 글
day06 - array insert, update, delete (0) | 2021.08.24 |
---|---|
day05 - control statement (2) | 2021.08.18 |
day04 - array, scanner (1) | 2021.08.18 |
day03 - operator (0) | 2021.08.15 |
day02 - variable, datatype, type casting (0) | 2021.08.12 |