JDK (Java Development kit)
- Open JDK : 무료 (상업용 포함)
- Oracle JDK : 상업용일 시 유료
=> 자바를 통해 프로그램을 개발할 수 있도록 해주는 도구
>> 명령이 존재 : jacav, java, javap, javadoc , ...
이런 명령들을 통해 프로그램을 개발에서 사용할 수 있도록 해줌
>> JRE System Library 존재 (자바 실행 위해 제공되는 라이브러리)
-> 안에 자바 프로그램 개발할 수 있는 '클래스'들이 포함되어있음
-> 라이브러리를 모듈로 나눠서, 필요한 모듈만 갖다 쓸 수 있음 (장점: 보안, 속도)
모듈 간의 의존성을 통해 필요한 모듈을 가져다 쓸 수 있다
깃허브(GitHub)
: 분산 버전 관리 툴인 깃 저장소 호스팅을 제공하는 웹서비스
-> 프로그램의 버전을 쉽게 관리, 여러 사람이 개발을 쉽게 만들 수 있도록 함
*깃(Git)
: 여러명의 사용자들 간에 파일의 작업을 조율하기 위한 분산 버전 관리 시스템(프로그램) -> 협업툴
깃을 통해 깃허브에 프로젝트를 저장해 사용할 수 있음
깃허브 주소 : https://github.com/
*repository 생성
name 정하고, public(소스 공개)/private(소스 숨김)설정,
Add a README file -> 체크
: 해당 프로젝트가 어떤 프로그램을 만드는지 설명
Create repository 클릭
*이클립스 프로젝트 깃허브에 저장하기
이클립스 내에 깃을 설정해서 깃허브 레퍼지토리에 저장 (인포트 작업)
(이클립스 내에 깃 플러그인 이미 설치되어 있음, 사용만 하면 됨)
- 이클립스 깃 설정
Window -> Show view -> Others -> Git -> Git Repositories 클릭
Window -> Show view -> Others -> Git -> Git Staging 클릭
- Git Repositories -> Clone a Git repository
깃허브에서 만든 레퍼지토리를 복사해, 컴퓨터(Local)에 저장 (Local 레퍼지토리로 저장) => Clone
-> URI : 인터넷상 존재하는 자원을 표현하기 위해 사용하는 주소
즉, 레퍼지토리의 URI 주소를 뜻함
깃허브에 생성한 레퍼지토리에서 <>Code 메뉴 클릭하면, 주소 뜸. 이를 URI에 붙여넣기.
설정)
-> Protocol: https
-> User: 깃허브 아이디
Password: 깃허브 Settings -> Developer settings 클릭 -> Personal access tokens -> Tokens 클릭
-> Generate new token
- Note: 해당 토큰이 뭔지 알려주기 위해 작성
- Expiration(유효기간)
- Select scopes (토큰 사용 범위) -> 우선 다 체크 (프라이빗이니까 상관 없음. 후엔 사용 범위 읽고 체크하자)
생성된 토큰을 이클립스 Password에 복사 붙여넣기
Store in secure - 체크
-> Directory :Local 레퍼지토리 저장 장소 설정
- 이클립스의 프로젝트를 -> Local 레퍼지토리에 저장 -> Local 레퍼지토리의 프로젝트를 깃허브 레퍼지토리에 저장
1) 이클립스 프로젝트를 -> Local 레퍼지토리에 전달해 저장 (Commit)
프로젝트(java_1) 우클릭 -> Team -> Share Project -> Repository 선택.
2) Local 레퍼지토리의 프로젝트를 깃허브 레퍼지토리에 전달해 저장 (Push) **push는 되돌릴 수 없음 , 신중히 하자
프로젝트(java_1) 우클릭 -> Team -> Add to index -> Push
3) 1)~2) 과정을 쉽게 할 수 있는 방법 (Git Staging사용)
개별로 or 전체 다 가능.
Commit Message 작성 필수
Commit and Push 같이 or Commit만 중 선택 (혼자 보관할 땐 Commit and Push 같이해도 상관 X)
참고) patch : git -> local
pull : local -> 이클립스
데이터 저장단위
* Bit
-> 통해 저장할 수 있는 값: 0 또는 1
* Byte (8bit) : 8개의 bit 모아 만듦 -> Character(문자 표현)
- 1Byte : 하나의 문자를 저장할 수 있는 저장 단위
참고) 데이터 저장하는 하드웨어(usb, 하드디스크 ...)의 단위가 Byte
· 1Byte 1024개 모이면 -> 1KByte -> 1024개 모이면 -> 1MByte -> 1024개 모이면 -> 1Gbyte -> 1024개 모이면 -> 1TByte
· 프로그램 만들 때, 값을 표현하는 기본적인 단위로 Byte를 쓴다
· 1Gbps : 1초 동안 전송할 수 있는 비트의 크기가 1기가
· Byte(숫자) → ASCII Code(아스키 코드) → Character(영문자)
데이터 표현 방법
숫자가 어떻게 Byte로 표현되는가?
50(10진수) => 1Byte(8Bit)
10진수 2진수로 바꾸기 => 0110010
-sign bit -> 0:양수 1:음수 (맨 첫번째 오는 숫자)
-data bit
음수를 2진수로 바꾸기
-50 (10진수) => 1Byte
양수 50을 1의 보수화( 1'S )를 시킴 (비트에 저장된 값을 반대로 바꿔줌)
=> 11001101 => 을 다시 2의 보수화( 2'S = 1'S + 1) 시킴
=> 11001110
자료형 (DataType)
: 값을 표현하기 위한 키워드 또는 특정 대상을 표현하기 위한 식별자
-> 이용해 값이나 특정 대상을 저장하기 위한 '변수'를 선언하기 위해 사용
1. 원시형(PrimitiveType) : 값을 표현하기 위한 자료형 - 키워드 ( 약속되어있는 단어 = 예약어 ) / 8종류 / 숫자형과 논리형으로 나뉨
=> 숫자형(정수형,실수형,문자형) : 연산 가능
=> 논리형
2. 참조형(ReferenceType) : 특정 대상을 표현하기 위한 자료형 - 식별자(클래스)
=> String 클래스 : 문자열을 표현하기 위한 자료형(클래스)
※ 자바는 객체지향형 언어. 객체를 만들어 주기 위해선 Class가 있어야 함.
따라서 자바는 ReferenceType를 주 기반으로 프로그램 제작. 원시형은 보조 수단.
※
* 예약어(키워드) : Java 프로그램을 개발하기 위해 미리 정해져 있는 단어
* 사용자 정의 명칭(식별자) : Java 프로그램 개발을 위해 프로그래머가 정의하여 사용하는 단어
*리터럴(Literal)
: 프로그램에서 사용하기 위해 표현되는 값(Value)
- 정수형(IntegerType) 리터럴 : 소숫점이 없는 숫자값
=> Java에서 정수형 리터럴은 기본적으로 4Byte(Interger)로 표현된다
4Byte로 표현될 수 있는 범위 존재 (-2147483648~2147483647)
System.out.println("정수값(10진수 100) = " + 100); //숫자값 - 10진수 정수형 리터럴
//println() 메소드는 정수값을 무조건 10진수로 변환하여 출력
System.out.println("정수값(8진수 100) = " + 0100); //0숫자값 - 8진수 정수형 리터럴 >> 값: 64
System.out.println("정수값(16진수 100) = " + 0x100); //0x숫자값 - 16진수 정수형 리터럴 >> 값: 256
System.out.println("정수값(10진수 100) = " + 100L); //숫자값L - 10진수 정수형 리터럴(8Byte - LongType)
※ 8Byte 필요한 이유
//4Byte로 표현 가능한 정수값 : -2147483648~2147483647
// => 4Byte로 표현 불가능한 정수값 사용한 경우 에러 발생
//System.out.println("정수값 = " + 2147483648);
//4Byte로 표현 불가능한 정수값은 정수값 뒤에 [L] 붙여 8Byte의 LongType의 정수값으로 작성하여 사용
System.out.println("정수값 = " + 2147483648L);
※ 정수값을 표현하기 위한 자료형 - byte(1Byte), short(2Byte), int(4Byte), long(8Byte)
byte a1 = 127; // 1Byte : - 128 ~ 127
short a2 = 32767 ; // 2Byte : -32768~32767
int a3 = 2147483647; // 4Byte : -2147483648~2147483647
long a4 = 2147483648L; // 8Byte
System.out.println("a1 = " + a1); //127
System.out.println("a2 = " + a2); //32767
System.out.println("a3 = " + a3); //214748647
System.out.println("a4 = " + a4); //2147483648
//int a5 = 100L; //값에 대한 손실이 발생할 수 있으므로 에러 발생
long a5 = 100; //자료형이 큰 변수에 작은 리터럴 저장 가능
System.out.println("a5 = " + a5);//100
- 실수형(DoubleType) 리터럴 : 소숫점이 없는 숫자값
=> Java에서 실수형 리터럴은 기본적으로 8Byte(Double)로 표현 >> 부동 소수점 형식 으로 숫자값 표현
System.out.println("실수값(4Byte) = " + 12.3F); //12.3
//실수값F >> 4Byte 실수형 리터럴(FloatType)
System.out.println("실수값(8Byte) = " + 12.3); //12.3
//실수값 >> 8Byte 실수형 리터럴(DoubleType)
//println() 메소드는 실수값이 아주 작거나 큰 경우 지수 형태로 변환하여 출력
System.out.println("실수값(8Byte) = " + 0.00000000123); //1.23E-9
//실수값 >> 8Byte 실수형 리터럴(DoubleType)
//실수값을 지수형태로 표현하여 사용 가능
System.out.println("실수값(8Byte) = " + 1.23E+10); //1.23E10
//실수값 >> 8Byte 실수형 리터럴(DoubleType)
※ 실수값을 표현하기 위한 자료형 - float(4Byte), double(8Byte)
float b1 = 1.23456789F; //가수부(소숫점 자리 수)를 표현하기 위한 크기(정밀도) : 7자리
double b2 = 1.23456789; //가수부를 표현하기 위한 크기 : 15자리
System.out.println("b1 = " + b1); //1.2345679
System.out.println("b2 = " + b2); //1.23456789
변수(Variable)
: 리터럴(값)을 저장하기 위해 메모리(Memory)에 부여된 이름(식별자)
*변수 선언 - 메모리에 변수 생성
형식 → 자료형 변수명;
- 자료형(DataType) : 변수에 저장될 리터럴의 형태 - 원시형(PrimitiveType) or 참조형(ReferenceType)
- 변수명 : 리터럴을 저장하기 위한 메모리 영역을 구분하기 위해 사용되는 식별자(Identifier)
int su; //정수값 저장하기 위한 변수 선언(생성)
//값을 저장하는 변수는 대입연산자 왼쪽에 반드시 작성
su = 100; //대입연산자(=)를 이용하여 값을 변수에 저장 - 입력
System.out.print("초기값 = ");
System.out.println(su); //100 (변수에 저장된 값을 화면에 출력)
//int su; //동일한 이름의 변수를 재선언할 경우 에러 발생
su = 200; //변수에 기존 값 대신 새로운 값 저장
//변수는 값을 하나만 저장할 수 있음
System.out.print("변경값 = ");
System.out.println(su); // 200 (코드는 순차적으로 실행된다 (인터프리터 방식))
int num = 100; // 변수 선언 및 초기값 저장
// "문자열" + 값 또는 값 + "문자열" >> 문자열과 값이 결합 -> 결과값 : 문자열
System.out.println("num = " + num); //num = 100
System.out.println("올해는 " + 2 + 0 + 2 + 3 + "년입니다."); //올해는 2023년입니다.
System.out.println(2+0+2+3 + "년은 토끼띠해입니다."); // 7년은 토끼띠해입니다. -> 잘못된 결과 발생
//"" : 비어있는 문자열 - NullString
System.out.println(""+2+0+2+3+"년은 토끼띠해입니다."); // 2023년은 토끼띠해입니다.
동일한 자료형의 변수는 , 기호를 사용하여 나열 선언 가능
int num1 = 100 , num2 = 200;
System.out.println("연산결과 = " + num1 + num2); // 100200 -> 잘못된 결과 발생
//디버깅
System.out.println("연산결과 = " + (num1 + num2)); // 300
System.out.println("연산결과 = " + num1 * num2); //20000
System.out.println("연산결과 = " + (num1 * num2)); //20000 (더 효율적)
int kor = 88, eng = 90;
int tot = kor + eng; //연산 결과를 변수에 저장
System.out.println("점수 합계 = " + tot); //점수 합계 = 178
변수의 값이 저장되어 있지 않은 상태에서 변수를 사용할 경우 에러 발생
int count;
System.out.println("count = " + count);
변수에 저장 불가능한 값을 저장할 경우 에러 발생
int count = 10.0; // 실수값(double)은 정수값(int)에 저장 안됨
System.out.println("count = " + count);
※식별자 작성 규칙
-영문자, 숫자, 특수문자(_ 또는 $)를 조합하여 작성 - Java에서는 한글을 식별자로 사용 가능 (But 권장 X)
-숫자로 시작되도록 작성 불가능
-영문자는 대소문자를 구분하여 사용
-기존에 사용되는 단어(키워드 또는 식별자)로 선언 불가능
※Java에서 사용되는 식별자 작성 방법 - 표기법 : 영문자의 소문자를 기본으로 식별자를 작성
=> 파스칼 표기법(PascalCase) : 조합된 단어의 첫문자를 대문자로 표현하여 작성 - 클래스명, 인터페이스명 등
=> 카멜 표기법(CaemelCase) : 첫번째 단어를 제외한 나머지 단어의 첫문자를 대문자로 표현하여 작성 - 변수명, 메소드명
=> 스네이크 표기법(SnakeCase) : 조합된 단어를 _로 구분하여 작성 - 상수(Constant : 상수명은 무조건 대문자로 작성)
'학원 > 복기' 카테고리의 다른 글
0404 - 난수 출력, 가위바위보 게임, Java 자료형, Java 메모리 영역, 배열, 향상된 for문, 로또 프로그램, 2차원 배열 (0) | 2023.04.04 |
---|---|
0403 - For문 추가, 이중for문, While문, do while문, break, continue, Scanner Class (0) | 2023.04.03 |
0331 - 제어문(IF문, Switch문, For문), 전역변수, Debug Perspctive (0) | 2023.04.01 |
0330 - 문자형 리터럴, 논리형 리터럴, 자료형 변환, 연산자 (0) | 2023.03.30 |
0328 - JDK 설치, 소스파일 (클래스,메소드), 터미널 명령어, 이클립스 설치 및 설정, 주석문 (0) | 2023.03.28 |