[생활 코딩] JAVA1
https://opentutorials.org/course/1223
Java - 생활코딩
본 수업은 2013년에 제작된 수업으로 2019년에 제작된 JAVA1 수업으로 대체 되고 있습니다. 자바로 코딩에 입문하시려고 한다면 JAVA1 수업을 권해드립니다. 수업소개 본 모듈은 자바 언어에 대한 기
opentutorials.org
생활 코딩 - Java를 보고 정리한 글입니다.
Java 언어 소개
Java는 1995년 제임스 고슬링과 그의 동료들에 의해 시작된 프로젝트입니다. 원래 가전제품을 제어하기 위한 언어로 고안되었지만 웹의 등장으로 엄청난 성공을 거두며 주류 언어가 되었습니다.
Java 프로그램의 동작
- 코드(Code, Source) 작성
- 컴퓨터가 실행할 수 있는 형태로 코드를 컴파일
- 컴파일된 프로그램을 실행
프로그래밍 한다 → 코드(Code = Source)를 작성한다 → 설계도
용어
- Java SE(Java Platform, Standard Edition)
- 자바의 표준안, 자바라는 언으는 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의
- 구체적인 소프트웨어가 아닌 그 소프트웨어의 설계도, 소프트웨어에서는 설계도라는 표현 대신 명세서(spec, specification)이라는 말을 사용
- 이 명세에 따라 Java가 만들어지며 Java SE8은 버전 8에 대한 명세서
- 이 명세서는 JCP(Java Community Process, http://jcp.org)라는 조직을 통해 만들어짐
- JDK(Java Development Kit)
- Java SE의 표준안에 따라 만들어진 구체적인 소프트웨어
- Java 개발자라면 JDK를 다운받아 설치해야 하며 JDK에는 Java 프로그램을 실행하면 Java 코드를 컴파일 하는 컴파일러와 개발에 필요한 각종 도구 그리고 JRE가 포함되어 있다.
- Java 개발자를 위한 자바 버전이다.
- JRE(Java Runtime Environment)
- java가 실제로 동작하는 데 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다.
- 자바로 만들어진 프로그램을 구동하려고 한다면 JRE를 설치 해야한다.
- 일반인을 위한 자바 버전이다.
- JVM(Java Virtual Machine)
- 자바가 실제로 구동하는 환경
- 자바로 만들어진 소프트웨어는 JVM이라는 가상 컴퓨터에서 구동되고 하드웨어나 운영체제에 따라 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라 만들어진 JVM이 알아서 해결한다.
- 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 JVM의 역할
Version 예시
Java SE 8 = JDK 8 = JDK 1.8
실행
컴파일(Compile)
자바의 문법은 사람만이 이해할 수 있는 형식으로 되어 있기 때문에 컴퓨터가 이해할 수 있는 상태로 변환해주는 과정이 필요한데 이 것을 컴파일(Compile)이라고 하고, 이 작업을 하는 소프트웨어를 컴파일러(Compiler)라고 부릅니다. 자바의 컴파일러는 javac라는 이름을 갖고 있으며 만약 Helloworld.java라는 코드를 컴파일 한다면 아래와 같은 형식으로 javac를 실행합니다.
javac Helloworld.java
Code → Byte Code (→가 컴파일러가 하는 일)
실행
컴파일러로 코드를 컴파일 하게 되면 .class라는 이름의 파일이 생성되며 이 파일이 컴파일된 파일이고 실행 파일이라고 할 수 있습니다. 하지만 이 파일은 파일 이름만으로 실행할 수 있는 것은 아니고 컴파일된 파일을 실행시켜주는 프로그램을 이용해야 합니다. 이 작업을 하는 프로그램을 런처(Launcher)라고 하고 아래와 같이 실행합니다.
java Helloworld(.class가 생략)
Javac Java
↓ ↓
Code → Byte Code → JVM
숫자와 문자
데이터 타입 = 자료형 = 데이터형
- 숫자
// 숫자
System.out.println(1+2); // 정수
System.out.println(1.2 + 1.3); // 실수
System.out.println(2*5); // 곱셈
System.out.println(6/2); // 나눗셈
- 문자와 문자열
// 문자와 문자열
System.out.println('생');
// System.out.println('생활코딩'); // 주석 해제 시 error 발생
System.out.println("생활코딩");
System.out.println("생"); // ""로 묶으면 문자열 error 발생 x
System.out.println("생활코딩" + "입니다"); // 문자의 연산
System.out.println("1" + "1"); // 11, 문자열 + 문자열
System.out.println('1' + '1'); // 49 + 49 = 98, ASCII Code (1 = 49)
- Escape(이스케이프)
// 이스케이프
// System.out.println("smileDK said "Welcome programming world"");
System.out.println("smileDK said \\"Welcome programming world\\"");
System.out.println("HTML\\nCSS\\nJavaScript\\n");
- 개행(줄 바꿈)
- \n 이용하여 줄 바꿈 한다.
// 개행
System.out.println("HTML\\nCSS\\nJavaScript\\n");
변수(Variable)
변수란, 하나의 값을 저장할 수 있는 메모리 공간입니다.
정수(Integer)
int a; // int: 데이터 형식, a: 변수의 이름
a = 1;
System.out.println(a + 1); // 1 + 1 = 2
a = 2;
System.out.println(a + 1); // 2 + 1 = 3
실수(Double)
// int a = 1.1; // error: type miss match
double a = 1.1;
System.out.println(a + 1.1); // 1.1 + 1.1 = 2.2
a = 2.1;
System.out.println(a + 1.1); // 2.1 + 1.1 = 3.2
문자열(String)
String first;
first = "coding";
System.out.println(first + " everybody");
String a, b;
a = "coding";
b = " everybody";
System.out.println(a + b);
int x = 200;
double y = 200.0d;
String binaryX = Integer.toBinaryString(x);
String binaryY = Long.toBinaryString(Double.doubleToLongBits(y));
System.out.println(binaryX);
System.out.println(binaryY);