1. src 내부에 있는 폴더를 패키지라고한다
2. 패키지 안에는 클래스(이름은 파스칼 표기법)
3. .java파일명과 클래스 이름은 동일해야한다
4. 모든 코드는 클래스 내부에 작성한다.
--
HelloWorld.java 를 컴파일하면 HelloWorld.class가 되고 이것을 jvm으로 보내면 해당파일을 실행한다
jvm에서 class를 실행할때 하는것 (jvm 아키텍쳐 )
1. static 을 검색후 로딩(메모리에 올림) -> static 이 없으면 메모리에 로딩이 안되서 실행이 안됨.
2. main 을 검색
3. main 을 실행
4. 종료
--
프로그램파일이 메모리에 올라가서 실행되면 프로세스가된다
--
이클립스 작업시 오류확인을 위해 Ctrl+S를 자주 한다
ctrl+alt+L : 코드정렬
--
변수이름으로 해당 주소번지를 찾는다 - 매핑
--
; 세미콜론의 역할은 문장이 끝났다는것
--
자바에는 8가지 자료형이 있다
자료형이 필요한 이유 : 데이터를 저장하는 공간을 효율적으로 저장하기위해
대표적 정수 자료형
byte - 1바이트를 차지한다 / -128이하 127이상의 값을 대입하면 오류가 남
int - 4바이트를 차지한다 / -21억이하 21억 이상의 값을 대입하면 오류가 남(간단한 설명을 위해 근사치를 적음)
long - 8바이트를 차지한다 / -21억.~ 이하 21억.~ 이상
int 변수에 byte 자료를 대입할수 있다
byte num1 = 10;
int n1 = num1; (묵시적 형변환 - num1의 자료형이 더 작은 크기여야함)
byte num2 = 1000000000;
int n3 = (byte)num2; (명시적 형변환)
*다운캐스팅시 내용이 다운캐스팅 할 자료형 내의 숫자여야한다(안그러면 유실 될 수 있다)
실수 자료형
문자 자료형
char
char[] 배열은 길이가 정해진 데이터를 입력할 때 사용
String 은 가변적인 데이터를 입력할 때 사용(메모리 효율은 좋으나 연산이 오래걸림)
String (기본 자료형이 아니라 char의 배열이라고 이해)
Class (다양한 타입을 저장하는 자료형)
main이 아닌 class는 실행될때 메모리에 미리 로딩 되지 않는다
--
heap이란
자바프로그램이 시작하면 메모리에 static요소가 모두 뜬다
->프로그램 시작부터 끝까지 계속해야함
[어느순간 필요했다가 사라져도 되는 것들]은 메모리의 heap영역에 뜬다
->생성과 소멸을 계속함
->개발자가 관리하는 공간(개발자가 원하는 시점에 생성 및 소멸)
--
static요소는 class에 속해있다
--
--
new ㅁㅁ() 했을때에는 heap에 뜬다(static이 없는 것들만.)
다만 변수에 지정하지 않았기때문에 주소가 없어서 찾을 수 없다
클래스 자료형은 보통 heap에 띄움
--
타입 변수 = new 타입();
--
int 4byte
long 8byte
byte 1byte
double 8byte
char 2byte
--
Object - 어떤 자료형이든 받을 수 있는 자료형
--
int a;
->선언만 하는것 기본 자료형이라 변수의 크기는 정해짐(call by value)
int a = 10;
->초기화
String a;
->선언 , 4byte로 정해짐(call by reference, 주소만 정해짐)
--
call by value -> 변수를 부르면 값이 나옴
call by reference -> 변수를 부르면 주소가 나옴(참조)
포인터 - 주소를 가르쳐 주는 것
--
'Programming Language > Java' 카테고리의 다른 글
자바 프로그래밍 표기법 (0) | 2020.03.17 |
---|---|
자바 java 파일 기본 규칙 (0) | 2020.03.17 |
자바 매개변수 - 가변인수 (0) | 2020.03.11 |
자바 배열 (0) | 2020.03.11 |
자바 클래스, 레퍼런스변수, 원의 넓이 구하기 (0) | 2020.03.11 |