! class name 과 file name은 같아야한다.
! c:\work 폴더에 원하는 것 저장할 것. 금요일에 work폴더만 이동
! CSV(Comma Separated Values): CLI 내에서 문자들을 구분하기 위한 방법 path에서는 ;
를 사용하고 / compile에서는 v(space)
를 사용하여 구분한다.ex) java Hi 1 2 3
path
컴파일(javac v Hi.java ==> Hi.java 파일을 컴파일 하라)
Java는 O/S에 독립적이다.
단점: app이 없으면 작동하지도 않는다.
다른 언어에 비해 느리다. why? ~.java -> compile(JDK) -> O/S (OS에 바로 작동하는 언어도 있다.)
==> Java는 서버용이다(서버용은 성능이 좋다)
'Java home' => c:\programfiles\Java\JDK1.8.0
컴파일 실행 프로그램 c:\programfiles\Java\JDK1.8.0\bin\ Javac.exe
java 실행 프로그램 c:\programfiles\Java\JDK1.8.0\bin\ Java.exe
path: 경로를 알려줄 때 사용 -> 나는 javac.exe가 어디에 있는지 알지만
컴퓨터는 cmd 에서 정확한 경로로 cd 하지 않는 이상 경로를 인지하지 못한다.
echo path
: path를 출력echo %path%
: path의 내용을 출력아래를 설정해주고 %path%
를 cmd에 입력하면 원하는 경로가 내용에 포함된 것을 볼 수 있다.
c:\programfiles\Java\JDK1.8.0 경로를 JAVA_HOME으로 지정해주고
echo %java_home%로 출력하고 싶을 때.
'시스템 변수'에서 바로 새로만들기 'JAVA_HOME'을 만들어준다.
javac Hi.java
-> Hi.java 파일을 compile 하라. ==> class가 생성된다.java Hi
-> 실행인자를 입력해주어야 하는 경우 파일명(확장자제거) 뒤에 입력해준다.
===> CLI에서 java를 실행하는 경우 복잡하고 과정이 길기 때문에 간편한 툴인 eclipse나 intelij를 사용하는 것.
c = c + 10;
c += 10;
=> 왼쪽에 오른쪽을 더해주고 다시 왼쪽에 저장.
두가지는 동일한 코드다.
8가지.
숫자
문자: char => 2byte
논리: boolean => 1bit
1 byte = 8 bit (2^8) ㅁㅁㅁㅁㅁㅁㅁㅁ -> 2^8=256 256가지를 나타낼 수 있다. -128~0~127
2 byte = 16 bit (2^16)
4 byte = 32 bit (2^32)
8 byte = 64 bit (2^64)
변수 선언/ 값의 대입
int a
==> 변수 선언(a라는 int 주소를 만들어주기)
a = 10;
==> 값의 대입(a주소에 10을 대입하여 저장)
byte a
int b
byte a = b
===> 불가능하다. int(4byte)를 byte(1byte)에 넣을 수 없다.
int b = a
===> 가능하다. byte(1byte)를 int(4byte)에 넣을 수 있다.
작은 data type + 큰 data type ==> 큰 data type으로 묵시적 형변환
ex) byte b1 = 10;
/ byte b2 = 20;
==> byte b3 = b1+b2;
byte b3 = 30
?? 틀렸다.
불가능 !!
기본적으로(암묵적으로) 정수와 정수의 계산 결과는 int로 결과값이 된다.
byte b3 = b1 + b2;
===> int(b1+b2)를 byte(b3)에 넣을 수 없기 때문에 오류 !!
==> int b3 =b1+b2;
로 형변환 시켜주면 오류 제거 됨.
==> byte b3 = (byte)(b1+b2);
b3 => 100으로, byte (1byte: -128~0~127)안으로 들어갈 수 있지만
b4 => 150으로 byte 범위를 벗어나서 쓰레기 값이 출력된다.
쓰레기 값 출력 !!
//실수를 정수형에 대입하면 결과는 --->??
int i3 = 201/2; => 100
System.out.println("i3(201/2): "+i3);
//정수의 계산을 실수형에 대입한 결과는 --->??
double d1 = 201/2;
System.out.println("d1(201/2): "+d1);
//정수 int Data 201을 실수 double Data Type으로 명시적 형변환 후 계산 결과를 double Data type으로 받으면 출력 결과는??
double d2 = (double)201/2;
System.out.println("d2(201/2): "+d2); ===> 만약 double d2 = (double)(201/2); 로 변경하면 100.0으로 출력된다. 연산 먼저 계산
IDE: Integrated Development Environment 통합 개발환경 sw app 인터페이스
Class indentified -> 대문자 시작 camel case
Variable indentified -> 소문자 시작 camel case
declaration: (변수) 선언
variable declaration: 변수 선언
variable assignment: 값의 대입
casting: 형변환
API: 주로 API통신 규격에서는 Snake Case를 많이 사용한다.
DB: Snake Case
method: 행위/ java application 에서 method가 없으면 절대 실행될 수 없음.
가장 먼저 실행되는 부분
Identifier: 식별자/ 직접 만들어줘야함, 변수명, 클래스명, 메소드명 등/ 숫자로 시작할 수는 없다
Keyword: 예약어/ 프로그래밍 언어에 미리 정의된 의미있는 단어/ 식별자로 사용하지 않는다
int a = 1; ==> int: keyword / a: identifier
implicit casting: 암묵적 형변환 / 자료범위가 좁은 자료형 -> 넓은 자료형 변환==> 자동으로 행함
explicit casting: 명시적 형변환 / 넓은 자료형 -> 좁은 자료형 변환 ==> 강제로 변환해주어야함
append: 덧붙이다, 첨부하다
UTF-8:Unicode Transformation Format - 8bit
OOPL:객체지향언어 Object Oriendted Programming Language
Interpreted: 인터프리터(JRE)
java programming -> compile -> 인터프리터(JRE) -> 컴퓨터 인식
CSV: CSV(Comma Separated Values): CLI 내에서 문자들을 구분하기 위한 방법 path에서는 ;
를 사용하고 / compile에서는 v(space)
를 사용하여 구분한다.ex) java Hi 1 2 3
URL: Uniform Resource Locator
SDK: Software Development Kit(Jdk 보다 포괄적인 개념)
cmd: command
CLI (=console): Command Line Interface
Configuration: 환경설정, 배열 배치, 구성
cd: change directory
echo: 메아리; 에코 서버란, 클라이언트가 전송해 주는 데이터를 그대로 되돌려 전송해
주는 기능의 서버를 의미한다.