본문 바로가기
CSE/CP1 이론

CP1_01.Java 기본

by 0/0 2024. 4. 24.

-컴퓨터란?

 

사람의 명령을 받아서 대신 작업을 처리하는 기계

전자적인 신호에 기반

 

-역사

 

(폰 노이만 구조)

 

-프로그램

 시키고 싶은 일을 컴퓨터가 이해 가능케 표현하여 구현한 것("바보 같은 컴퓨터에게 주는 명령")

+)파일 확장명까지 표시되게끔 설정하세요~

 

-프로그래밍

 명령을 작성하는 일

 컴퓨터에서 동작하는 프로그램을 작성하는 일

 '문제 해결' 방법과 절차를 프로그래밍 언어로 정의하는 과정

 

-알고리즘

 특정 문제를 해결하기 위한 단계별 행동을 정의한 것

 

-컴퓨터에게 말 걸기

컴퓨터 말 Is 0/1과의 전쟁... 불편하다

 -> '어셈블리어' 사람은 직접 2진수를 쓰지 않고 기호로 일단 표기

ex) ADD -> 0010 / SUB -> 0101

번역 - 어셈블러: 번역만 전담하는 소프트웨어, CPU에 따라 다름(X86용, ARM용 ...)

 

-"고급 언어"

0/1 신경 안 쓰고 / 기계마다 다르지 않고 / 영어와 아주 비슷한 언어 / C, FOTRAN, Python, PASCAL, Java, C#, ...

(C, Java, Python은 데이터형, 함수, 배열 등 공통점들이 있다.)

번역하는 프로그램이 조금 복잡한 일을 해야하며 이 때의 번역기를 '컴파일러'라고 함

고급 언어 -> 컴파일러 -> 기계어(2진 코드) -> 실행

 

-프로그래밍 언어의 역사

 

2. Java 소개

Java 소개

-요즘은 큰 시스템을 구축 Enterprise 급 시스템 플랫폼에 사용

 

-객체지향 언어

 객체지향 프로그래밍의 개념은 명령어들의 순서에 따라 실행하는 관점이 아닌 객체의 개념으로 프로그래밍을 수행

 (객체의 개념으로 클래스를 사용)

 각 객체들은 데이터를 저장하는 속성과 기능을 가지고 객체 서로 간에 메시지를 주고받는 형태로 목적한 일 처리

 추상화, 캡슐화, 상속, 다형성 등을 이용하여 프로그래밍

 

-Java의 특징

 1)Java는 고급 언어

Java 프로그램 처리 과정

*처리 과정: Java 소스 코드 작성 -> 컴파일러 -> 바이트코드 -> JVM에서 실행

c.f. 일반적인 고급언어 프로그램 처리 과정: 소스 코드 작성 후 컴파일 후 컴파일 된 2진 코드를 CPU가 실행

(프로그램 소스 코드 작성 -> 컴파일러 -> 기계어 2진 코드 -> CPU 실행)

 

 2)플랫폼에 독립적

 =(?)멀티스레드 언어: 하나의 프로세스에서 여러 개의 스레드를 동시에 실행할 수 있도록 프로그래밍

3)메모리 자동 관리

 C언어 같은 언어는 메모리의 할당, 관리를 프로그래머가 직접 수행

 JAVA는 가비지컬렉션에 의해 객체 생성 시 메모리의 생성과 소멸의 생명주기를 가상 머신(JVM)이 해줌

 

3. Java 프로그램 개발

-개발환경 구축

개발도구인 JDK 설치 -> 환경변수 설정 -> Eclipse 설치

 

 -JDK

JDK

-JDK의 종류: Java SE, Java EE, Java Me, Java Card

JDK의 종류

4) Java  프로그램의 구조

-클래스 구조

5) 프로그램 구성요소

-데이터: 프로그래밍에서 사용되는 데이터는 숫자(정수, 실수), 문자, 문자열, 논리값 등

-키워드: Java 프로그램 내부에서 이미 약속된 명령어

-상수, 기호, 식별자

*식별자는 Java 프로그램 내부에서 식별하기 위한 이름, 클래스/메소드/변수의 이름 등, 개발자가 지어야 함

-주석: 코드 내부에서 프로그래머가 남기는 메모

주석

-변수

 하나의 데이터를 저장하고, 변수에 접근할 수 있도록 주소를 가짐

 변수를 사용하기 위해서는 어떤 데이터를 저장할 것인가를 결정해서 변수를 정의해야 하며 이것을 '변수 선언'이라고 함

ex) int age

-메소드

 특정 기능을 수행하는 단위

 기능을 수행하기 위해 필요한 데이터를 받아 그것을 처리한 다음 결과를 반환

*데이터를 받지 않고 처리할 수도 있음

 데이터 처리 결과를 반환하는 경우와 반환하지 않는 경우도 있음

'CSE > CP1 이론' 카테고리의 다른 글

CP1_06.객체지향 프로그래밍_Basics_1  (0) 2024.05.02
CP1_05.배열_2.String배열  (0) 2024.04.30
CP1_02.변수_2  (0) 2024.04.24
CP1_02.변수_1  (0) 2024.04.24
CP1_03.연산자*미해결포인트 있음  (0) 2024.04.22