반응형
JAVA
- james gosling이 개발
- 객체지향(OOP)
- 캡슐화 - 객체의 data와 method를 묶고, 일부는 외부에 감추어 은닉
- 상속 - A라는 클래스의 속성을 B가 사용할 수 있도록 연결해주는 것? 현실에서 예를 들면, 스마트폰은 전화기 라는 속성을 가지고 있고 스마트폰이 전화기를 상속했다고 볼수 있는 것과 같은 느낌적인 느낌.
- 다형성 - 자료형 체계의 성질을 나타내는 것으로, 이를 테면 aa.toString(); 이런것과 같음. 단형성은 toString(); 만 사용 가능
- 가비지컬랙션 - 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능, 개인적으로 이건 장점이 맞는지는 정확히 모르겠음 나중에 좀 큰 프로그램 짜면 문제 생길듯…
플랫폼 독립 - OS에 관계없이 1개의 소스코드로 다양한 OS에서 사용이 가능.
Java TEST (PC에 자바가 설치되어 있어야 동작)
- 임의의 폴더를 생성한 후 메모장이나 에디터를 사용해서 HelloWorld.java 생성
- 명령프로프트 or powershell 실행
- 생성한 폴더 찾아가서 생성한 파일있는지 확인
- 파일로 돌아가 아래와 같이 타이핑
class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello World!!");
}
}
- 실행창에 가서 javac HelloWorld.c
- 실행은 java HelloWorld
들여쓰기는 공백4칸이 원칙, 일부 컴파일러의 경우 탭과 공백을 혼용하는 경우 에러 나옴.
개인적으로는 Tab이 좋은데, 개발자들사이의 법칙(?)이라고 하니 사용해야만 함...
- Java Byte Code의 Layout
- .class파일의 구조.
- 참조 : https://en.wikipedia.org/wiki/Java_class_file
- Java 파일의 Runtime 컴파일 방식
- JIT (just in time) - 실행시 최초 한번 기계어로 컴파일 (https://ko.wikipedia.org/wiki/JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC)
- AOT (ahead of time) - 설치시 최초 한번 기계어로 컴파일 (https://ko.wikipedia.org/wiki/AOT_%EC%BB%B4%ED%8C%8C%EC%9D%BC)
- 컴파일은 운영체제에서 판단.
java의 실행과정
package 개념.
- class 명이 겹치는 것을 방지
- 개발시 가급적 같은 class명을 사용하지 않는 것이 좋다.
코드 작성 규칙
- 세미콜론
- { } 블럭
- // : 한줄주석처리
/* ….. */ 다중 주석처리
식별자 - 변수명, 상수명, 클래스명, 패키지명 등을 선언할 때 붙이는 이름. ex)main
- 예약어 - 자료형 이름 같은걸 말함.ex) char int
- 변수와 상수 (상수는 변수 앞에 final을 붙이면 됨. 변경 안됨) - 변수 참조 http://ding9.tistory.com/88
- 기본자료형 - 논리형, 문자형, 정수형, 실수형,문자형2(string, 기본자료형은 아님)
문자형 타입 적용 - 작은따옴표 적용 ‘글’ 이런식으로 2byte
세월이 변했어..처음 C 배울때만해도 char는 1byte였는데, 자바는 2byte 게다가 유니코드 적용까지..
정수형 타입 적용 - byte(1 byte), short(2 byte), inc(4 byte), long(8 byte)
- 실수형 타입 적용 - float(4 byte), double( 8byte)
소수점 연산 오류 원인
- a= 0.1515 * 10e1
- b= 0.55 * 10e-5
- 풀어쓰면 a + b = 1.5150055 = 0.15150055 * 10e1
- 지수가수법으로 변경하면 a + b = 0.152 * 10e1
자료형 변환 - 계산 형태에 따라 자동으로 형변환, byte + int 이면 결과가 int로 변하는 걸 말함.
참조 : https://opentutorials.org/module/516/5330문자 <-> 숫자 (함수로 정의되어 있음.)
- 연산자 우선순위 - 참조 : https://msdn.microsoft.com/ko-kr/library/2bxt6kc4.aspx
- 쉬프트 연산자 >> 과 >>> 의 차이는 >>의 경우, 부호가 바뀌지 않으나 >>>의 경우 무조건 0이 채워짐.
- 반복문 - break, continue.
실습
- BigDecimal 큰수 계산할때 사용 3,333,333,333 이런수..
import java.math.BigDecimal; //BigDecimal을 사용하기 위해 필요.
BigDecimal testVar = new BigDecimal(0);
testVar = result.add(new BigDecimal(10));
testVar = result.multiply(new BigDecimal(5));
testVar = result.divide(new BigDecimal(10));
특이사항
BigDecimal에서 add가 안되서 고생했는데 원인은 대입을 안해줘서였음.
testVar = result.add(new BigDecimal(10));
이런식으로 써야 되는데..
result.add(new BigDecimal(10));
이렇게 해놓고 값이 안된다고… 근데 에러 안남..
반응형
'자바 > 이론(Theory)' 카테고리의 다른 글
[자바JAVA] 변수1 - 변수, 기본형 (0) | 2018.10.05 |
---|---|
DAY010. JAVA(5) (2) | 2017.01.20 |
DAY009. JAVA(4) (1) | 2017.01.19 |
DAY008. JAVA(3) (1) | 2017.01.18 |
DAY007. JAVA(2) (1) | 2017.01.17 |
댓글