- 컴파일 언어
단점 - os마다 새로 개발해야 함
- 인터프리터 언어
단점 - 느리다
C언어
- 컴파일 언어
- 메모리 관리 직접 해야함
- 메모리 누수 - 필요 없는 데이터를 없애주지 않은 것
- 효율적인 메모리 관리가 가능하지만 개발자가 직접 해야한다.
- 메모리 주소 직접 컨트롤
JAVA - 제임스 고슬링
- 여러 환경에서 작동되는 프로그램 필요
- JVM을 만들고 그 위에서 작동되는 프로그램을 제작
- OS마다 JVM(프로그램 작동 환경)만 만든 후 그 위에서 작동 가능한 언어 개발
- Java는 가비지 컬렉터 보유 (사용하지 않는 데이터를 메모리에서 자동 삭제)
JDK - 자바 개발 키트 : 개발용
JRE - 자바 런타임 환경(JDK에 포함) : 실행용
JVM - 자바 가상 머신(JRE에 포함)
// java 파일은 맨 첫 글자 무조건 대문자 // 자바 파일 안에 파일명과 동일한 public class 만듦 // 모든 자바 코드는 class 내부에서만 작성 가능 public class Study01 { // main 안의 함수가 실행된다 public static void main(String[] args) { // java에는 기본적으로 사용할 수 있는 기능들이 있다 (표준 라이브러리) System.out.print("hello world"); System.out.println("hello world"); } }
https://drive.google.com/file/d/1BF_BxCc1CHDlLkgRag-f5iahgDiHNIPN/view?usp=drive_link
데이터 타입
public class Study02 {
// 한 프로그램 내에 main 함수는 하나만
public static void main(String[] args) {
// 변수
// 자바 프로그램이 살행되는 동안 유지할 때 사용
// 기본형 타입 변수 (예약어 첫 글자가 소문자)
// 정수형 데이터를 저장할 때 int 사용
// 소수가 아닌 수 ) -1, -2, 100
int num = 1;
// int보다 큰 숫자 저장
long longNum = 2;
// 실수형 데이터(무조건 f 붙어야 함)
float floatNum = 1.2f;
// float 보다 큰 데이터
double doubleNum = 1.2;
// 논리형 데이터
boolean bool = true; // 또는 false
// 문자 데이터 (character 줄임말 char)
// 홀 따옴표
char ch = 'a';
// 참조형 타입 변수 (예약어 첫 글자가 대문자)
// 문자열 데이터
// 쌍 따옴표
String str = "hello world";
}
}
연산
public class Study03 {
public static void main(String[] args) {
// 문자는 더하면 합쳐짐
// System.out.println("hello" + "world");
// 숫자는 연산됨
// System.out.println(1 + 1);
// 문자(열) + 숫자 = 문자열
// System.out.println("hello" + 1);
// 문자(열) + 논리 = 문자열
// System.out.println("hello" + false);
// int num = 2;
// double doubleNum = 3;
// 정수 + 실수 = 실수
// System.out.println(num + doubleNum);
// 정수 - 실수 = 실수
// System.out.println(doubleNum - num);
// 정수 * 실수 = 실수
// System.out.println(num * doubleNum);
// 정수 / 실수 = 실수
// System.out.println(num / doubleNum);
// System.out.println(doubleNum / num);
// 정수 / 정수 = 정수(나머지 소수 X, 몫만)
// System.out.println(3 / 2);
// %는 나머지
// System.out.println(3 % 2);
}
}
함수
public class Study04 {
// 함수 - 반복적으로 사용하는 로직들을 하나로 모음
// 함수명 printAdd, 소괄호 안의 데이터는 외부에서 받아옴
public static void printAdd(int num1, int num2) {
System.out.println("계산 시작");
System.out.println(num1 + num2);
System.out.println("계산 끝");
}
public static void main(String[] args) {
// 함수 사용 시 함수명을 적고 괄호 안에 요구 데이터 타입의 데이터 입력
printAdd(5125, 123125);
}
}