코딩 공부를 하면 할수록 비전공자에 컴퓨터 관련 수업을 들어본 적도 없으니
강의를 들어봐도 이해가 되지 않는다...
강사님이 무슨 말씀을 하는지 우선 이해부터 하고 싶어 용어 파악부터 훑어보고자 한다.
프로그래밍의 개념
프로그램
컴퓨터가 인식할 수 있는 명령어의 나열
프로그래밍
프로그램을 작성하는 과정=코딩
프로그래머
프로그램을 작성하는 사람
프로그래밍 언어
프로그램을 작성하기 위한 언어체계, 사람이 컴퓨터와 소통하게 하는 요소
1. TIOBE Index
프로그래밍 언어를 이용하는 개발자 & 업체의 수
2. PYPL
프로그래밍 언어 튜토리얼이 검색된 수
자바 언어의 특징
1. 운영체제에 독립적 (이식성이 높음)
2. 객체 지향 언어
3. 사용하기 쉬운 언어
능률적이고 명확한 코드 작성 가능
다른 언어의 단점 보완(포인터, 메모리 관리)
4. 자동 메모리 관리
5. 동적 로딩 지원
6. 멀티쓰레드 지원
7. 네트워크와 분산환경 지원
다른 언어의 단점 보완 (포인터, 메모리 관리)
1. CLASS로 시작하여 CLASS로 끝나는 언어
2. 함수 보유
JVM, JRE, JDK
일반적인 자바 프로그램을 실행하기 위해 사용되는 것은 JRE입니다.
JDK는 JRE를 포함하고 있으며 컴파일러와 디버거 등이 포함되어 있습니다.
일반적인 프로그램 | 자바 프로그램 |
프로그램 | 프로그램 |
- | 자바 버추얼 머신 |
오퍼레이팅 시스템 | 오퍼레이팅 시스템 |
하드웨어 | 하드웨어 |
JVM, 자바가상머신
자바 프로그램을 컴파일해서 나온 결과인 바이트코드를 실행시켜주는 가상 머신입니다.
자바를 실행하기 위한 가상 기계로 OS에 의존적입니다. byte code (class파일)을 해석하고 실행하는 기기입니다.
OS가 다르면 JVM 또한 달라집니다.
윈도우와 리눅스 맥 등 다양한 OS에서 언제나 실행할 수 있게 해주는 장점을 가지고 있습니다.
Windows | OS가 다르면 JVM도 달라집니다 | Linux |
Java program | java program | |
↓ | ↓ | |
Windows JVM | Linux JVM | |
↓ | ↓ | |
Windows | Linux | |
↓ | ↓ | |
Hardware | Hardware |
JRE, 자바 실행환경
JVM을 동작하는데 필요한 각종 자바 라이브러리를 담고 있습니다.
JDK, 자바 개발 키트
JRE와 JAVAC 등의 컴파일러, 디버거 등을 포함하는 포르개림입니다.
오라클사에서 제공하는 오라클 JDK와 오픈소스로 개발된 OpenJDK 등이 있습니다.
자바 컴파일러와 자바 바이트코드
자바 컴파일러
소스파일 | 컴파일러 역할 | 클래스 파일 |
소스코드 존재하는 파일 | → | 바이트코드 존재하는 파일 |
자바 프로그래밍의 골격과 구성
메서드
java Appliacation을 실행하는데 필요한 메서드
//클래스
class FirstJavaProgram {
//메소드
public static void main(String[] args){
System.out.println("Welcome to Java");
System.out.println("First java program");
}
}
중괄호를 이용하여 클래스와 메소드의 영역을 구분
문장의 끝에는 세미콜론을 붙여 문장의 끝 표시
프로그램 실행 시 main 메소드 안 문장들 순차적 실행
System.out.printIn의 괄호 안에 출력 내용 큰따옴표로 묶어서 표시
System.out.println 실행 이후 자동 행
Class
객체를 만들기 위한 일종의 설계도
public class 클래스명 {
/*
* 주석을 제외한 모든 코드는 블록 클래스 {} 내에 작성
*/
}
자바에서 모든 코드는 반드시 클래스 안에 존재해야 함
서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성
클래스들이 모여 하나의 Java 애플리케이션 구성
main (main method)
public class 클래스명 {
public static void main(String[] args){ //메인 메서드의 선언부
// 실행될 코드를 작성
}
}
public static void main(String[] args)는 고정된 형태의 메서드 선언부로
Java Application을 실행하는데 필요한 메서드 (프로그램 실행 시 java.exe에 의해 호출됨
모든 클래스가 main메서드를 가지고 있어야 하는 것은 아니지만 하나의
java애플리케이션에서는 main메서드를 포함한 클래스가 반드시 하나는 있어야 함
주석
코드의 기능은 하지 않으나 코드에 대한 설명이나 그 외의 다른 정보를 가독성을 위해 달아두는 설명
컴파일 시 컴파일러가 주석 부분은 건너 뜀
/* */ : 블록 단위 주석, 범위 주석, /* 와 */ 사이 내용은 주석으로 간주
// : 행 단위 주석, 한 줄 주석, // 뒤의 내용은 주석으로 간주
주석 처리 단축키: ctrl + /
//
// 주석
// 코드를 설명하거나 의견을 메모할 때
// 코드에 영향을 주지않고 작성할 수 있는 것
// 컴파일시 주석은 코드에서 자동으로 삭제된다.
// 한줄을 표현할때는 //내용 과 같이 작성하고
// 여러줄의 주석을 표현하고 싶을 때는 /* 내용 */
/* 처럼 작성하면 된다
*/
//주석 처리 영역
/*
파일이름: Blockcomment.java
작성자: 홍길동
작성일: 2019년 7월 25일
목적: System.out.println 메소드의 기능 테스트
*/
class Blockcomment
{
public static void main(String[] args){
//주석 처리 영역
/* 다음은 단순한 정수의 출력 */
System.out.println(7);
System.out.println(3.15);
System.out.println("3 + 5 = " + 8);
System.out.println(3.15 + "는 실수입니다.");
System.out.println("3 + 5" + " 의 연산 결과는 8입니다.");
//주석 처리 영역
/* 다음은 덧셈 결과의 출력*/
들여쓰기
자바에서 권고 및 추천되는 방식
class SystemOutPrintln {
public static void main(String[] args){
System.out.println(7);
....
}
}
출력 System.out.println, System.out.print
컴퓨터가 출력하는 코드
class SystemOutPrintln {
public static void main(String[] args){
System.out.println(7);
System.out.println(3.15);
System.out.println("3 + 5 = " + 8);
System.out.println(3.15 + "는 실수입니다.");
System.out.println("3 + 5" + " 의 연산 결과는 8입니다.");
System.out.println(3 + 5);
}
}
7
3.15
3 + 5 = 8
15는 실수입니다.
+ 5의 연산 결과는 8 입니다.
/*단순한 정수 출력*/
System.out.println(100);
/*인사말과 함께 이름을 출력*/
System.out.println("안녕하세요");
/*덧셈 결과 출력*/
System.out.println(3+5+312);
Print();, Println();, Printf(); 의 차이점
System.out.print
형식(int,float,double 등) 에 구애받지 않는 문자를 그대로 출력하고 싶을 때 사용한다
엔터 입력시 버퍼에 \n 개행문자는 포함 안됨
그래서 줄바꿈이 없을 때 print를 사용한다
System.out.println
print와 동일하게 형식에 구애받지 않는 문자를 그대로 출력하고 싶을 때 사용한다.
차이점은 엔터 입력시 버퍼에 \n(개행문자)가 같이 들어간다. (엔터 누르는 순간 엔터도 입력된 걸로 간주)
System.out.printf
형식을 신경쓸 때 사용한다(int, long, float, double 등)
엔터 입력시 버퍼에 \n(개행문자)는 포함이 안됨
입력 단축키
syso + (ctrl + space)
system.out.printIn();
개행문자 \n
텍스트의 한 줄이 끝남을 표시하는 문자 또는 문자열
'CS > JAVA' 카테고리의 다른 글
조건문 (if, switch) (0) | 2024.01.15 |
---|---|
연산자의 종류 (0) | 2024.01.15 |
변수의 개념 (0) | 2024.01.15 |
자바 설치 방법 (0) | 2024.01.15 |
자바(JAVA) 의 특징 (4) | 2024.01.14 |