JAVA

20/04/07 수업정리

스물훈 2020. 4. 9. 17:18

 

1.path
- 명령어를 찾는 디렉토리를 설정하는 환경변수
- 자바 명령어는 자바 설치 디렉토리 안 jdk/bin 디렉토리에 있음.

javac -version(jdk)
java -version(jre)

jre_home
- 자바 프로그램이 실행될 jre 버전을 설정(2개 이상 설치되어있을때)


cpu는 main memory(RAM)하고만 통신 가능.


data type은

value/reference으로 나뉘어져있음.

value: 실제 데이터를 저장.
reference: 주소값을 저장. 

변수 - 동시 사용 불가능
상수 - 동시 사용 가능 


정형: 틀(테이블 같은), RDBMS
비정형: 텍스트, 음성, NoSQL
반정형: 비정형 -> 정형 변경 가능한 데이터, - JSON,XML

파싱
- 비정형데이터를 받아 정형으로 보여주는거? 
  서버가 보내준 데이터를 내가 원하는 모양으로 잘라 보여준다.


저장 방법
1) 메인 메모리에 저장 - 메인 메모리는 휘발성이기 때문에 지워짐
2) 파일에 저장 - flat file(일반 파일, 정리가 안되어있음), database(정리 되어있음)

저장 가능한 데이터 개수에 따른 분류
scala data: 1개 이상
vector data: 0개 이상의 데이터를 번호나 이름으로 구분해 저장,사용

저장위치에 따른 분류
1)Client(Local): pc 고장시 데이터를 사용할 수 없음
2)Server(Network 상의 컴퓨터): 물리적 pc와는 상관 없이 데이터 사용 가능


자료형

java에서 데이터를 1개만 저장할 수 있는 자료형(primitive type)
1. boolean 변수 선언시 앞에 is를 붙이세요! ex) isPass, isYes 등등 / boolean은 다른 자료형으로 변경 불가
2. byte (1byte = 8bit)
3. short 2byte
4. char 2(엄밀히 말하면 문자를 저장하는게 아닌 정수를 저장하고 그 정수에 맞는 문자를 출력하는것임)
=> 컴퓨터는 숫자 밖에 저장할 수 없어서 코드로 저장 후 출력할 때 그 코드에 해당하는 문자를 출력
5. int 4
6. long 8
7. float 4
8. double 8 (실수 자료형의 기본형, 수치보조 프로세서의 연산단위, 실수를 가지고 계산을 하게되면 double로 바꿔 계산) 
실수는 지수표기법으로 저장
ex) 31.4 -> +0.314E002 

표현할 수 있는 숫자의 범위 = 1~8순
큰 크기의 자료형 데이터를 작은형 자료형에 대입 불가

bit: 0 or 1 중 1개를 저장할 수 있는 단위

WORD: 컴퓨터나 운영체제가 한 번에 (최소)사용할 수 있는 단위(32bit 운영체제/ 64bit 운영체제) 


0x17: 16진수 정수 리터럴
0o17: 8진수 정수 리터럴
17L: Long형 정수 리터럴(22억이 넘는 정수를 입력하려고 할 때)

실수 리터럴(기본적으로 double)

float 리터럴 만들고자 한다면 뒤에 f. ex)31.43f

int 형보다 작은건 산술연산시 int로 바꿔버림.

byte b1 = 10;
byte b2 = 13;

byte result = b1+b2 <- 이건 에러가 남. b1과 b2를 int로 바꿔서 연산하기 때문에 byte는 int보다 작기 때문에 에러

10.0 / 3 => 10.0 / 3.0 으로 계산함.

 

강제 형변환 ( ex. (double)20 -> 20.0 )
- 참조형(0개 이상의 데이터를 저장하는 자료형)은 상속관계인 경우에만 가능
- 숫자 데이터의 강제 형변환은 큰 크기의 데이터를 작은 크기의 변수에 저장하기 위해 or 원하는 연산결과를 얻기 위해.
- 참조형의 경우는 원래의 자료형으로 되돌아가기 위해. 

byte b1 = 10;
byte b2 = 13;
byte result = (byte)(b1+b2); // (byte)b1 + b2 이러면 안됨. 산술연산은 무조건 int로 바꾸기 때문에 산술연산을 먼저 하고 그 결과값을 int로 형변환해줘야함.

double d = (double)10/3; -> 두 개가 다르면 큰 자료형으로 바꿔서 계산. 이건 계산 결과값이 아닌 계산시 형변환 하는것.

페이지당 데이터 개수 -1 / 페이지당 데이터 개수 
  
overflow / underflow
=> overflow: 저장할 수 있는 범위보다 큰 데이터를 강제 형 변환해서 대입했을 때 일어난 현상.
ex) byte b = (byte)128; => b는 -128가 저장됨. byte는 -128~127 범위라 127초과하면 -128로 돌아감. 
     byte b = (byte)129; => -127이 됨.

=> underflow: 저장할 수 있는 범위보다 작은 데이터를 강제 형 변환해서 대입했을 때 일어나는 현상.
ex) byte b = (byte)-129; => 127이 됨.


문자열
- 0개 이상 문자의 집합(<=> 문자는 1개만, 0개도 안됨, 2개도 안됨)
- " "안에 기재
'A' / "A" 는 서로 다른것. 

리터럴은 한 번 저장하고 다음부터는 재사용
int a = 10;
//10이라는 값을 a에 대입x
//10이라는 데이터가 저장되어 있는지 확인하고 저장되어 있으면 저장된 해시코드(위치)를 a와 매핑하고 저장된 것이 없으면 저장하고 그 때의 해시코드(디바이스에서는 uuid)를 a와 매핑 

해시코드: 유일무이하게 구분하기 위한 id 같은것,(DB에서는 primary key)


컴퓨터는 음수를 저장할 수 없어서 보수로 저장.

표기법 ~3 => 3의 1의 보수이다 

2의보수 = 1의 보수 + 1

반올림하고싶은 자리를 첫째자리로 보내야함.