기계어 : 컴퓨터가 이해하는 언어로 2진수 집합으로 구성
고급언어 : 사람이 이해할 수 있는 수준의 언어c, c+, c#, java, javascript, python, php, html 등이 있다.
다양한 컴퓨터 언어 속 java의 장점을 찾아보자
운영체제에 독립적이다
객체지향 언어
자동 메모리 관리
Java 가상머신(Java Virtual Machine / JVM )
- 컴파일된 자바 바이트 코드를 실행시켜주는 소프트웨어
- 자바 프로그램은 JVM이 설치된 환경이라면 운영체제나 하드웨어에 종속되지 않고 실행 가능
- 운영체제로부터 독립적
Java 설치 링크
-> java -version 11 권장
- JAVA 신규 생성 : JAVA_HOME
path : %JAVA_HOME%\bin 추가- 단축키 Win + R을 통해 cmd 접근
- java -version + Enter
- 적용이 된지 확인

Eclipse.exe를 실행하면 Eclipse IDE Launcher가 열린다. 다음과 같은 순서로 기본 세팅을 해주면 된다.
- Workspace에 경로를 확인
- Launch 클릭
- Eclipse 실행
- 콘솔창 불러오기 ( 실행 output 확인 ) : Eclipse 상단의 window - show view -> console



[실습사진]
[ 문법 의미 ]
main : 문장의 시작을 알림
" HelloJava " : 출력물 확인
public , class : 키워드
public class ~~ : ~~은 무조건 영어로 시작해야하며 영어/숫자/언더바(_)만 사용가능
{ } : 블록 괄호 안에 원하는 것을 넣어야 처리가 정상적으로 된다.
<주석문>
1. 주석문 이란?
/* 이 블록 안에서는 여러 라인을 주석으로 처리할 수 있다. */
주석을 실제로 많이 단다.
-> 다른 이들이 알아보기 위함
-> 내가 일을 그만두어도 유지보수를 위함변수
다양한 종류의 자료를 표현할 수 있는 값을 변수라고 부르며, 일반적으로 웹 페이지에서 처리하고자
하는 "데이터"에 해당한다.
<자료형>
프로그래밍 언어에서 변수의 종류를 구별하기 위해 사용되는 키워드
자바에서 제공되는 자료형의 종류에는 8가지가 있다.
이를 기본 자료형(Primitive Data Type)이라 한다.

<의미>
- 모든 변수는 컴퓨터의 메모리 영역에 생성된다.
- 일반적으로 메모리란, PC에 설치하는 RAM을 의미한다.
- 4byte의 크기를 갖는 변수 값 하나를 생성할 경우,
PC의 RMA에서 해당 용량만큼을 사용하게 된다. ( ?용량이 부족할 경우 실행되지 않는다. )- 변수는 RAM의 크기를 넘지 않는 범위 안에서만 생성할 수 있다. ( !용량을 넘어서는 경우 OutOfMemory라는 에러를 발생시킨다. )
- 프로그램 코드에서 "문장"을 표현하기 위해 사용되는 데이터 값
- String
- 문자열을 표현하기 위한 자료형이다.
- 글자 수에 상관 없이 쌍따옴표("")로 묶인 내용을 할당할 수 있다.
- 글자값의 경우 상따옴표로 묶이게 되면 문자열로 취급되므로, 숫자와 문자열을 분명하게 구별해야한다.
- 선언 : 언은 데이터형과 사용하고자 하는 변수의 이름을 정한 후, 세미콜론(;)으로 한 라인을 종료
ex) 데이터형 변수이름;
int num;
- 할당 :
-> 선언된 변수에 원하는 값을 대입하는 과정
-> 값의 대입은 대입연산자(=)를 사용하여 우변에서 좌변으로 대입된다.
변수이름 = 값;
num = 100;
- String형의 변수를 선언하고, 쌍따옴표로 묶인 값을 대입한다.
- 빈 문자열이나 공백도 문자열 데이터이다.
- 변수 이름은 영문, 숫자, "_", "$"만 사용가능
- 변수 이름의 첫 글자는 숫자로 시작될 수 없다.
- 대/소문자를 엄격하게 구분 (오타에 주의)
- 자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
- 클래스 이름의 명명 규칙도 변수 이름의 규칙과 동일하다.
ex)long money = 500000000000L;
float PI = 3.14F;
double lat = 128.32453D;
boolean은 true(참), false(거짓) 중의 한 가지만 갖는다.
ex) boolean user = true;
boolean isJapanese false;
char는 홑따움표(' ')로 감싸진 한 글자만 대입할 수 있다
ex) char first = '곽';

[예제]
1 int num1;
2 int num2 = num1; //에러
3 System.out.PrintLn(num1); //에러
1 -> 선언 ( o )
2 -> num1 ( 할당x )
3 -> num1 ( 처리 x )
! -> 값이 대입되지 않은 변수는 다른 변수에 대입하거나 출력할 수 없다.


- 변수와 마찬가지로 메모리상에 존재하지만, 값이 변경될 수 없는 데이터
- final 키워드를 사용하여 선언된 변수는 상수로 생성된다
ex) 표기법
final int age = 20;
final long money = 1200000000L;
final float pi = 3.14F;
-> 메모리상에 이름이 생성되므로 접근은 가능하지만, 할달한 값을 변경할 수는 없다. ( 읽기 전용 )

// 서버 메모리가 부족할 시
// 상수로 표현하는 변수 값은 age가 아닌 AGE로 대문자를 활용해 선언한다.
프로그램에서 연산을 수행하기 위하여 사용되는 특수기호들
- 대입연산자
- 사칙연산자
- 단항연산자
- 증감연산자
- 비교연산자
- 논리연산자
변수에 숫자나 문자열 등의 자료를 입력하거나 연산 결과를 다른 변수에 할당한다.
- 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%)
- 모든 수는 0으로 나눌 수가 없다.
- 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용
- 다시 자기 자신에게 대입하고자 하는 경유의 약식 표현이다.
- 단항 연산자는 모든 사칙 연산자에 표현 가능하다.
+=, -=, *=, /=. %=
ex) int x = 100
x = x + 5;
----------------------------------
int x = 100;
x += 5;
- 특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용
- 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우,
덧셈과 밸셈에 대해서는 다시 한번 축약할 수 있다.
ex)
덧셈의 경우
x = x + 1;
x + = 1; -> 단항
x++;
++x; -> 증감
뺄셈의 경우
x = x - 1;
x - = 1; -> 단항
x--;
--x; -> 증감
- x++와 ++x의 차이
-> 증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다.
이 때, 증감연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.
- x++ 경우
-> 증감연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고,
나중에 x에 대한 1증가 처리를 한다.
int a = 100;
int x = 1;
int y = a + x++; // 100 + 1
System.out.println(y); // y : 101, x : 2
- ++x 경우
-> 증감연산자가 앞에 표시된 경우 먼저 현재 x의 값을 1증가 시킨 후,
그 결과를 수식에 적용한다.
int a = 100;
int x = 1;
int y = a + ++x; // 100 + 2
System.out.println(y); // y : 102 x : 2
- 두 개의 변수값 간의 관계를 비교하여 참(true)이나 거짓(false)의
결과를 반환한다.- 같다 ==
다르다 != ( ! -> 부정의 의미 )
초과 >
이상 >=
미만 <
이하 <=- 주어진 식이 참인지 거짓인지 판별 가능하므로, 연산 결과는
boolean 값으로 생성된다.
ex)
int x = 100;
int y = 1;
boolean r = x 비교연산자 y;
- 좌변과 우변을 논리 연산하고, 참일 때는 true, 거짓일 때는 false 값을 반환한다.
- 두개 이상의 비교 연산자의 결과나 boolean 값에 대해
추가로 "AND"나 "OR"연산을 수행하여 결과를 얻는다.
-> AND의 경우 두 가지가 모두 성립이 되어야한다.
TT -> T
TF -> F
FT -> F
FF ->F
-> OR의 경우 두 가지 중 한 가지가 성립이 되어야한다.
TT ->T
TF -> T
FT -> T
FF -> F
예제)

- 변수의 자료형이 변환되는 것을 의미한다.
- 특정 자료형의 값을 다른 자횽의 변수에 대입할 수 있다.
- 암묵적 형변환과 명시적 형변환의 두 종류가 있다.
- 암묵적 형변환은 서로 다른 자료형을 연산 혹은 대입하는 경우,
- java 컴파일러가 자료형을 통일한다.
이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.
-> UPCASTING!
ex)
int a = 100; // 정수형
float b = a; // 정수형을 실수형에 대입
-> 데이터의 손실을 최소화하기 위한 목적 존재
-> 정수형 구간이 실수형 구간보다 데이터 손실이 발생할 가능성이 높음

- 데이터의 손실을 감수하더라고, 강제로 형변환 시키는 형태
- 자료형 b = (변환할 자료형)a;
- 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.
ex)
double a = 3.14d;
int b = (int)a; //3


-windows
winkey + r : 실행
notepad : 메모장
calc : 계산기
cmd : 명령프롬프트
-eclipse
ctrl + shift + +: 글꼴 확대
ctrl + shift + - : 글꼴 축소
ctrl + m : 전체화면
ctrl + d : 해당 라인 클리어
ctrl + z : 복구
ctrl + y : 복구
ctrl + f11 : 실행
ctrl + spacebar : 자동완성
sysout + spacebar : system.out.prinln(); -> 귀찮을 때 출력가능
ctrl + alt + 아래방향키 : 해당 라인 복사 붙여넣기 가능