본문 바로가기

Java

2일차 공부 초기설정

1~2 교시

 

환경변수 설정

=> 운영체제에게 옵션을 설정

=> 윈도우의 경우는 탐색기에서 [내PC를 선택하고 마우스우클릭 [속성]을 실행하고 [고급 시스템 설정]을 누르고 고급 탭의 하단의 환경 변수를 클릭

 

환경 변수 편집

 

1. Path

=> 명령어만 입력해서 프로그램을 실행하고자 할 때 명령어를 찾는 디렉토리를 설정하는 환경변수

=> 자바 명령어는 자바가 설치된 디렉토리 안의 jdk/bin 디렉토리에 있다.

새로 만들기로 디렉토리를 추가하고 위로 이동 시킨다.

C:\Program Files\Java\jdk1.8.0_221\bin

 

 

설정 확인

명령 프롬프트(cmd)에서 javac -version (jdk 버전 확인) 이라고 입력

참고) java -version (jre 버전 확인)

난 실패ㅜㅜ 했어지만 강사님께 물어보니 저장이 안되었던 거였다. 성공
성공한거 이미지

 

 

 

2. JRE_HOME

=> 자바 프로그램이 실행될 FRE 버전을 설정

=> 자바가 여러개 설치되었을 때 실핼할 버전을 지정하기 위해서다.

=> 자바가 1개만 설치되어 있으면 할 필요가 없다.

 

3. classpath

=> 자바 클래스를 사용할 때 찾는 순서를 지정하기 위한 환경변수

=> .;rt.jar 파일을 설정하는 경우가 있다. 안해도 된다.

=> Eclipse, Intelli J, NetBeans 등이 설정을 하지 않아도 기본 설정을 한다. 최근에는 이 설정을 할 필요가 없다.

 

Data Type (자료형)

1. Data 분류

1) 일반적인 프로그래밍 언어에서의 분류

=> Value(Primitive Type)형과 Reference(Non Primitive Type) 형으로 분류

=> 최근 Reference 타입을 주로 쓴다. 하드웨어가 좋아져서

 

2) 변경가능 여부에 따른 분류

=> mutable - 변수 : 변경이 가능한 데이터, 동시에 사용하면 안됨

=> immutable - 상수 : 변경이 불가능한 데이터, 동시에 사용 가능

 

3) 저장 가능한 데이터 개수에 따른 분류

=> scala data : 1개만 저장

=> vector data : 0개 이상의 데이터를 저장해서 번호나 이름으로 구분해서 사용할 수 있다.

 

4) 데이터 모양에 따른 분류

=> 정형 데이터 : 틀 - 테이블 형태의 데이터로 관계형 데이터베이스(이미지) RDBMS

=> 비정형 데이터 : 틀없음 - 음성이나 텍스트로 MongoDB, NoSQL

=> 반정형 데이터 : 비정형 -> 정형 - JSON, XML

 

5) 휘발성 여부에 따른 분류

=> Main Memory 에 저장 : 휘발성으로 프로그렘에서 만든 변수나 상수

=> 보조기억 장치에 저장 : 비휘발성으로 파일에 저장

 

6) 저장위치에 따른 분류

=> Client(Local) : 컴퓨터에 문제가 생기면 사용할 수 없다.

=> Server(Network 상의 컴퓨터) : 내 컴퓨터에 문제가 발생하도 데이터를 사용할 수 있다.

 

파일

Flat File : ____________

Database :

     
     
     

 

 

3 교시

 

2. Java에서 수정 가능한 데이터와 수정 불가능한 데이터를 만드는 방법

1) 수정 가능한 데이터 만들기 (변수)

=> Variable (변수)은 데이터를 메모리에 저장해두고 그 데이터를 사용할 수 있도록 이름을 붙인것

 

=> 생성

자료형 변수이름;

 

=> 데이터를 저장

변수이름 = 데이터;

 

=> 변수생성과 저장을 한번에

자료형 변수이름 = 데이터;

 

=> 변수는 생성할 때와 =의 왼쪽에 있을 때는 저장할 수 있는 공간을 의미하지만 그 이외의 경우는 저장한 데이터를 의미한다.

 

=> 하나의 영역에서 동일한 이름의 변수는 1번만 생성되어야 한다.

 

=> 자료형에 맞는 데이터만 저장해야 한다.

 

2) Java에서 데이터를 1개만 저장할 수 있는 자료형 (Primitive Type)

boolean (참 또는 거짓) : true or false

 

byte (1byte - 8bit) : 정수 저장

short (2byte -16bit) : 정수 저장

char (2byte - 16bit) : 정수 저장 - 출력할 때는 정수에 해당하는 문자를 출력

int (4byte - 32bit) : 정수 저장 - 정수 자료형의 기본형

long (8byte - 64bit) : 정수 저장

 

float (4byte - 32bit) : 실수 저장

double (8byte - 64bit) : 실수 저장 - 실수 자료형의 기본형, 수치보조 프로세서의 연산 단위, 실수를 가지고 계산을하게되면 double로 바꿔서 계산

실수는 예전에는 float을 많이 사용했고 최근에는 double을 사용

실수는 지수표기법으로 저장

31.4 -> +0.314E002

 

=> bit(binary digit) : 0 또는 1 둘 중에 1개를 저장할 수 있는 단위

=> 1byte -> 8bit : 통신의 단위

=> KB (1024 Byte) -> MB (1024 KB) -> GB -> TB -> PB...

=> WORD -> 컴퓨터나 운영체자가 한 번에 사용할 수 있는 단위

                   32bit, 64bit 운영체제

 

만들기

클래스이름 첫글자는 대문자로...

변수들을 만들어보자

 

4 교시

2) 변경 불가능한 (immutable) 데이터 만들기

=> Literal : 개발자가 직접 입력하는 데이터

=> 정수 리터럴

17 : Int 형 정수 리터럴

 

0x17 : 16진 정수 리터럴, 16진수를 쓰면 코드를 1/4로 줄일 수 있다.

0o17 : 8진 정수 리터럴

 

17L : long 형 정수 리터럴

=> 22억이 넘는 정수를 입력하고자 할 때는 뒤에 L을 붙여야 한다. (대문자 L)

 

=> 실수 리터럴

일반적인 실수 형태를 사용

31.43 => +0.3143E + 002 로 변경해서 저장

 

지수 표기법을 이용해서 표현해도 된다.

0.31443E +002

 

실수 리터럴은 기본적으로 double 이다.

 

float 형으로 리터럴을 만들고자 하면 뒤에 f를 붙이면 된다.

31.43f -> float 형 리터럴

 

=> 문자 리터럴

문자는 글자 1개를 의미

작은 따옴표 안에 1개의 글자를 입력

'a', 'b'...

 

컴퓨터는 숫자 밖에 저장을 못해서 문자를 저장할 때는 코드로 저장했다가 출력 할 때 그 코드에 해당하는 문자를 출력

 

ASCll Code : 미국에서 영문과 숫자를 코드화 한 것

 - 숫자 0 ('0') : 48

 - 영문 대문자 'A' : 65

 - 영문 소문자 'a' : 97

대 소문자의 차이는 32 임을 기억

ID는 대소분자 구분을 못한다.

 

제어문자 : \다음에 영문자를 1개를 추가해서 특별한 기능을 부여한 문자 

              모든 프로그래밍언어에서 공통으로 사용

 - \n : 줄 바꿈

 - \t : 탭

 - \' : 작은 따옴표

 - \" : 큰 따옴표

 - \\ : \

 - \0 : null

HELLO\nBUTTON

HELLO

BUTTON

 

=> boolean 리터럴

true or false

 

=> 참조 리터럴

null : 가리키는 데이터가 없다. 아직 알려지지 않은 값. Swift에서는 nil

 

=> constant (상수) : 데이터에 이름을 만들고 값을 변경하지 못하도록 하는것

자바에서는 변수를 만들 때 앞에 final을 붙이면 된다.

변수의 이름을 모두 대문자로 하는 것을 권장

 

 

 

5~7 교시

 

3. 기본형 데이터 사용 규칙

1) boolean 자료형의 변수에는 boolean 데이터만 대입이 가능

 

2) boolean 을 제외한 나머지 자료형은 모두 숫자 데이터를 저장하는 자료형

 

3) 자료형의 키기 비교

byte < short < char < int < long < float < double

=> 메모리 크기를 비교하는 것이 아니고 표현할 수 있는 숫자의 범위

 

4) 작은 자료형의 데이터는 큰 자료형의 변수에 대입이 가능

 

5) 큰 자료형의 데이터를 작은 자료형의 변수에 대입하는 것은 에러

 

 

4. Type Casting (형 변환)

=> 데이터의 자료형을 변경하는 것

=> 기본형(1개를 저장하는 자료형, 데이터 그 자체)과 기본형이 아닌 데이터(0개 이상을 저장하는 자료형, 데이터가 저장된 위치이므로)끼리는 변환이 안됨

 

1) 자동 형 변환

=> 형 변환을 명시하지 않았지만 자동으로 데이터의 자료형이 변경되는 경우

=> 작은 자료형의 데이터를 큰 자료형의 변수에 대입하는 경우 작은 자료형의 데이터는 큰 자료형의 데이터로 자동으로 변환되서 대입된다.

 

double d = 10;

// d는 double 이고 저장되는 데이터는 10은 int

// 위의 문장은 double d = 10.0; 으로 변경되서 수행된다.

 

=> 산술 연산(+, -, *, /, %)을 할 때는 int 보다 작은 자료형은 int로 변환해서 연산을 수행

=> 산술 연산을 할 때 서로 다른 자료형끼리 연산을 하면 작은 자료형의 데이터를 큰 자료형의 데이터로 변환해서 연산을 수행

=> 산술 연산의 결과는 2개의 데이터 중에서 자료형이 더 큰 자료형으로 리턴

 

 

2) 강제 형 변환

=> 데이터의 자료형을 강제로 변경하는것

=> 숫자 데이터는 다른 숫자 데이터 자료형으로 변경이 가능

=> boolean 은 다른 자료형으로 변경이 불가능

=> 참조형(0개 이상의 데이터를 저장하는 자료형)은 상속관계인 경우에만 가능

 

=> 숫자 데이터의 강제 형 변환은 큰 크기의 데이터를 작은 크기의 변수에 저장하기 위해서 또는 원하는 연산의 결과를 얻기 위해서이다.

=> 참조형의 경우는 원래의 자료형으로 되돌아가기 위해서이다.

 

=> 하는 방법

(변경하고 싶은 자료형)데이터

데이터를 괄호 안의 자료형으로 변경

 

(double)20 : 20.0 //20을 double로 변경

(int)10.7 : 10 //10.7을 정수로 변경 - 소수가 버려진다.

 

 

연습

 

 

12페이지로 나온다

이렇게 변수를 이용

21로 나온다.. 이해가 안된다.
( )를 안해서 계산 순서가 바뀌어 버린거였다. 바봉가.....ㅜㅜ

 

5. Overflow / Underflow

=> Overflow : 저장할 수 있는 범위보다 큰 데이터를 강제 형 변환해서 대입했을 때 일어나는 현상

ex)

byte는 -128 ~ 127 까지 저장 가능

byte b = (byte)128; 127까지 저장가능한데 1이 초과 했으므로 (byte)128은 -128이다.

 

=>Underflow : 저장할 수 있는 범위보다 작은 데이터를 

 

6. 문자열 저장

=> 문자열은 0개 이상 문자의 집합

=> 문자열 리터럴은 "" 안에 기재

'A' : A 라는 문자  '' 가 안된다. ''는 1개이어야 하므로 불가능

"A" : A 라는 문자열 "" 가능 ""는 0개 이상이므로 가능

 

=> 문자열 자료형은 String

=> 문자열 저장

String 이름 = "문자열";

=> 문자열 + 문자열 은 문자열을 이어붙인다.

=> 문자열 + 숫자는 숫자를 문자열로 변경해서 이어붙인다.

 

10+30 은 40인데

"10" + 30 : 1030 으로 출력된다

 

7. 리터럴을 저장하는 방법

=> 리터럴은 한 번 저장하고 다음부터는 재사용

 

int a = 10;

//10이라는 값을 a에 대입한다 는 틀린말이다.

//10이라는 데이터가 저장되어 잇는지 확인하고 저장되어 잇으면 저장된 해시코드(위치)를 a와 매핑하고 저장된 것이 없으면 저장하고 그 때의 해시코드를 a와 매핑

 

int b = 10; 이라고 하면 10은 한개 만 존재하고 a와 b 의 해시코드가 같은거다.

 

 

8 교시

진법

~ : 1의 보수

2의 보수 : 1의 보수 +1    => 컴퓨터는 2의 보수를 이용해서 음수를 표현한다 양수를 먼저 구한후 2의보수를 이용해서 음수를 표현

-1은 1의 2의보수 11111111111111111111111......

'Java' 카테고리의 다른 글

6일차 공부 반복문  (0) 2020.04.13
5일차 공부 IF 문  (0) 2020.04.10
4일차 공부 연산자 ~ IF문  (0) 2020.04.09
3일차 공부 연산자  (0) 2020.04.08
1일차 공부  (0) 2020.04.06