Programming/Java

[ JAVA 스터디 ] 1회차 복습 - 221023

감귤밭호지차 2022. 10. 23. 15:53

[스터디 진행 사항 ]

스터디 진행 날짜 : 22년 10월 23일 

스터디 진행 장소 : 노원

스터디 진행 시간 : 오후 2시 ~ 오수 4시 (2시간)


[학습 내용 ]

 

오늘 노원에서 처음 Java 스터디 1회차를 진행했다. 간단하게 JAVA에 대해 알아보는 시간을 가졌다. 

 

개발을 할 때 개발 프로젝트 규모가 커질 수록 절차지향 프로그래밍을 이용하는 것이 어려워졌다. 중간 부분 수정도 어려워지고 유지보수도 어려워졌던 상황에서 다시금 주목을 받은 것이 " 객체 지향 프로그래밍 " 이다. 

 

# 객체 지향 프로그래밍 : 객체와 객체간의 상호 작용 을 이요한 프로그래밍 

 

#JDK :

JAVA를 가지고 개발할 수 있는 일종의 ' Development kit ' 로 JDK를 설치하면 JVM과 JR이 함께 설치된다. 

# JVM :

JAVA가 돌아갈 수 있는 가상 환경 

# JR :

JAVA의 읽기 버전 - 수정 및 편집은 할 수 없음.

 

( 회사에서는 Java 1.8 과 Java11 많이 사용 한다고 함. )

 

Java 는 소스 파일을 컴파일해서 실행한다. 원래 컴파일은 기계가 이해할 수 있는 기계어로 변경해주는 것인데 Java는 컴파일 했을 때 만들어지는 .class 파일이 바이너리 파일이 아니다 ( 완벽한 기계어로 바로 바뀌는 것이 아니라는 의미이다.) 

Java가 컴파일 했을 때 만들어지는 파일은 JVM에서 읽을 수 있는 형태의 컴파일 파일로 JVM에서 이 파일을 기계어로 바꿔준다. 

[ java → compile → .class → JVM → 찐 기계어 ]

 

# 변수 (variables) :

데이터를 저장할 수 있는 공간( 저장 공간)  - 공간이기에 원하는 데로 데이터를 추가하거나 삭제할 수 있다. 

메모리 위에 공간이 생성된다. 

(String은 int와는 메모리 관리 법이 조금 다른데, 객체의 관점이 들어간다. ) 

 

# 원시자료형 (primitive variable) : 기본 8개 data 자료형

- byte

 - short 

- long

- char 

 - boolean 

 - float 

 - double 

 

* 원시자료형은 크기가 정해져 있고 원시 자료형이 아닌( 참조 자료형 )자료형은 크기가 정해져 있지 않음. 

 

* 함수 더하기

float / double  :  double 0.1 + double 0.5 = 0.6000000 이 출력됨. 

원인은 부동 소수점이 근사치를 -2진수로는 소수를 모두 표현할 수 없기때문에 오류가 발생한다. 

double이 float보다 오차가 적기 때문에 double type을 많이 사용한다. 메모리가 두배나 사용되긴 하지만 이왕이면 double을 사용.

[ 부동 소수점 ] 
컴퓨터에서 실수를 표현할 때 정수와 동일하게 2진수로만 표현해야 하며 대표적으로 2 가지 방식이 있다.
1. 고정 소수점 : fixed point
    실수를 표현하는 가장 간단한 방식이나 표현할 수 있는 범위가 매우 적다. 
    소수부의 자릿 수를 미리 정하고 고정된 자릿 수의 소수를 표현하는 방식이다. 

2. 부동 소수점 : floating point 
    실수를 가수부와 지수부로 나누어 표현하는 방식으로 표현할 수 있는 범위가 매우 크다. 
    C++ 에서 사용하는 E지수 표기법이 있고 IEEE 부동 소수점 방식이 있는데 IEEE 754표준을 주로 사용한다. 

링크 : TCPschool.com : 부동소수점

해결법 : 

String type으로 바꿔주거나 BigDecimal 방법을 이용하면 된다. 

 

>> BigDecimal 방법 : Java 언어에서 숫자를 정밀하게 저장하고 표현할 수 있는 유일한 방법이다. 다만 속도가 느리고 기본 타입보다 사용법이 조금 불편하지만 Java를 이용해서 돈과 소수점을 다룬다면 BigDecimal은 선택이 아니라 필수이다. 

 

참고 : 링크1

참고 : 링크2 : 소수 구하는 알고리즘 


[ 다음 스터디 준비 필요 사항 ]

1. Do it Java 프로그래밍 책 구입 

2. 반복문까지 예제 복습