일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- BoarderLayout
- MYSQL
- 비트시프트연산
- sql다이어그램
- 메소드
- 증감연산자
- WindowBuilder
- this
- 추상메소드
- 자바
- java
- sql모델링
- 클래스
- 명품JavaProgramming
- 메소드오버라이딩
- 필드
- 데이터베이스모델링
- new키워드
- AbsoluteLayout
- Schemas
- 추상클래스
- 클래스상속
- 스키마
- static
- SQL
- 메소드오버로딩
- schema
Archives
- Today
- Total
걸어서 개발속으로
1장.자바 시작 본문
- 프로그래밍 언어 : 컴퓨터가 실행할 프로그램을 작성하는 언어, 0과 1밖에 이해 못함.
- 기계어 : 이진수(binary code, 0과 1로만 이루어짐) 명령어들로 구성된 언어
- 어셈블리어 : 기계어의 각 명령(ADD,SUB,MOVD...)을 쉽고 상징적인 니모닉 기호(mnemonic symbol)로 일대일 대응 시킴.
- 고급언어 : 절차지향언어(C) > 객체지향언어(C++,자바,C#)
- C에서 Jaca Script가 나온거구나...?
- C > C++ > Java > JSP와 C#
- C > Perl > PHP
(!) C에서 파생된 언어들이 많아서 프로그래밍 시작할때 무조건 C부터 공부하는거구나?
- 컴파일 : 고급언어로 작성된 것을 기계어 코드로 변환하는 과정
- 자바는 .clcass 파일로 컴파일 되며, 클래스 파일은 자바 가상기계에 의해 실행됨!
- WORA(Write Once Run Anywhere)
- 운영체제나 하드웨어 상관없이 자바가상기계(JVM)이 있으면 어디서나 자바로 작성된 프로그램에 동일한 실행환경을 제공함! (플랫폼 종속성 극복)
- 자바 가상기계와 바이트코드 - 자바의 플랫폼독립성을 가능하게 하는 2가지
- 바이트코드 : 자바가상기계에서만 실행되는 기계어. 어떤 cpu와도 관계없는 바이너리 코드.
- 자바가상기계가 인터프리터 방식으로 실행시킴
- 자바의 실행환경
- C/C++ 프로그램 : 여러개의 소스파일을 나누어작성 > 소스프로그램을 컴파일 하여 목적파일(.obj) 생성 > 링크를 통해 obj를 하나의 실행파일(.exe)로 만듬
- .exe 실행파일에는 실행에 필요한 모든코드가 다 들어있음. but 실행파일이 너무 크면 처음부터 실행도 못함
- 자바프로그램 : 여러소스파일(.java)로 작성 > 각 소스파일을 컴파일하여 클래스 파일(.class) 생성 > 필요한 클래스파일만 실행 가능
- 링크 과정이 없음. 필요한것만 부르니 적은 량 메모리를 가진 컴퓨터에서도 실행 가능함.
- C/C++ 프로그램 : 여러개의 소스파일을 나누어작성 > 소스프로그램을 컴파일 하여 목적파일(.obj) 생성 > 링크를 통해 obj를 하나의 실행파일(.exe)로 만듬
- JDK와 JDE
- JDK(Java Development Kit) : 자바 개발자를 위한 상업용 소프트웨어. 개발도구 + JRE
- JRE(Java Runtime Environment) : 자바 프로그램이 실행될 때 필요한 소프트웨어. 자바 API + 자바가상기계
- 모듈프로그래밍
- 모듈 : 자바 패키지들,이미지,XML 파일등의 자원들을 묶은 단위. 필요한 모듈을 연결하는 방식으로 구성됨.
- 세밀한 모듈화로 작은크기로 배포할 수 있도록 함.
- 자바 API (Application Programing Interface)
- 개발자들이 사용하도록 미리 만들어놓은 유용한 자바 클래스 집합
- 자바 프로그램 실행과정
- 소스편집
-
public class Hello{ //이름이 Hello인 클래스 선언 public static void main(String[] args) { //main 메소드 선언. 프로그램실행은 반드시 main()메소드부터 시작함 int n=2022; //지역변수 n 선언. 2022로 초기화 System.out.println("Hello"+n); // Hello 2022 출력, System.out.println()은 자바 API } }
-
- 컴파일 : Hello2022.java 컴파일 > 바이트코드가 Hello2022.class에 저장됨
- 실행 : JDK로 java Hello2022.class 실행
- 소스편집
- 사용 IDE는 Eclipse.
- 프로젝트생성
- [File]-[New]-[Java Project]
- Project Name에 프로젝트명 입력 / Create moudle-info.java file 체크 안함
(※Create module-info.java는 모듈프로그래밍을 안한다는 의미. 프로젝트가 크지 않아서 체크 안한거 아닐까?) - 여기서 [Finish]
- [File]-[New]-[Java Project]
- 클래스생성
- 생성된 프로젝트 오른쪽 버튼 > [New] - [Class]
- Name : 클래스 이름입력 / public static void main(String[] args) 체크 하여 main() 메소드 생성
(기본적으로 프로그램 실행은 main()메소드부터 시작함!) - 그러면 이런 화면이 뜬다..
- 생성된 프로젝트 오른쪽 버튼 > [New] - [Class]
- 소스편집, 컴파일 및 실행
- 소스를 입력하고 Run 버튼을 누르거나 [Run] -> [Run] 선택.
- 그 결과값은 아래의 콘솔윈도우에서 나온다.
- 소스를 입력하고 Run 버튼을 누르거나 [Run] -> [Run] 선택.
- 프로젝트생성
- 자바의 특징
- 플랫폼독립성 : 독립적 바이트 코드로 컴파일. 자바가상기계만 있으면 실행가능.
- 객체지향 : 캡슐화,상속,다형성 지원. 인간의 사고와 가까운 표현
- 소스와 클래스파일 : 클래스 파일(.class)엔 반드시 하나의 자바 클래스만 들어감.
- 4개의 클래스 파일 생성
- 4개의 클래스 파일 생성
- 실행코드 배포 : 한개의 클래스파일 or 다수의 클래스 파일 > jar파일 형태로 압축하여 배포,실행.
- 패키지 : 관련있는 클래스는 패키지로 묶음. (패키지 : 폴더의 개념)
- 멀티스레드 : 하나의 자바 프로그램이 다수의 작엉ㅂ을 처리하도록 다수의 스레드가 동시에 실행됨
(스레드 : 프로세스 내에서 실행되는 흐름의 단위) - 가비지컬렉션 : 프로그램 내 사용되지 않는 메모리(가비지)는 자동회수됨
- 실시간응용시스템에 부적합 : 예측불가시점에 가비지 컬렉션 실행 > 일정시간내에 반드시 실행결과 내는 실시간 시스템에는 자바 적합 x
(아 그래서 관제프로그램이나 보안 프로그램은 자바로 거의 안쓰는건가보네..?) - 안전
- 프로그램 작성이 쉬움. (포인터 개념이 없으므로!) (그치만 나도 포인터를 잘 모른다 ㅠㅠ)
- 실행속도 개선을 위한 JIT(Just In Time) 컴파일러 사용.
'Programming > Java' 카테고리의 다른 글
명품Java Programming 5장.상속 (0) | 2022.02.22 |
---|---|
명품Java Programming 4장.클래스와 객체 (0) | 2022.02.22 |
명품Java Programming 2장.자바 기본 프로그래밍 (0) | 2022.02.07 |
명품Java Programming - 1장.open challenge / 실습문제 (0) | 2022.02.07 |
<개념공부> 명품 Java Programming (0) | 2022.02.04 |
Comments