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 -> 변수를 부르면 주소가 나옴(참조)

포인터 - 주소를 가르쳐 주는 것

--


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package myapp;
 
import java.awt.Color;
import java.awt.Frame;
 
public class ex3 extends Object {
    
    // 매개변수 자동으로 배열이 된다.
    public static void plus(int...arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        System.out.println(sum);
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        plus(1);
        plus(1,2);
        plus(1,2,3,4);
        
        // 가변인수 - 매개변수 개수가 가변적이다
        System.out.printf("aaa""a""b");
        System.out.printf("aaa""a""b""c");
        /*
            Frame f = new Frame();
            f.setSize(500, 500);
            f.setBackground(Color.BLUE);
            f.setVisible(true);
        */
    }
}
 
 
cs

위 코드를 실행하면 아래와 같이 나옵니다.

'Programming Language > Java' 카테고리의 다른 글

자바 프로그래밍 표기법  (0) 2020.03.17
자바 java 파일 기본 규칙  (0) 2020.03.17
200317 // 이클립스  (0) 2020.03.17
자바 배열  (0) 2020.03.11
자바 클래스, 레퍼런스변수, 원의 넓이 구하기  (0) 2020.03.11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package myapp;
 
public class ex2 {
    public static void main(String[] args) {
        // 배열: 동일한 타입의 값들을 하나의 변수 사용하기 위한 목적(아파트 같이)
        int arr[] = {12345};
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        
        // 배열 밑에는 항상 for가 있다(JSPStudy 주장)
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
 
cs

위 코드를 실행하면 아래와 같이 나옵니다.

 
package myapp;

public class ex1 {

    public static void main(String[] args) {
    
        // 클래스를 만들고 -> 클래스 내용 입력 -> 클래스 사용 (변수, 메소드)
        // String (Sun 회사에서 제공한)클래스 생성
        // 레퍼런스 변수 : s는 만들어진 객체를 가르키고 있는 변수
        
        String s = new String("하하하하하하");
        
        // 레퍼런스 변수.변수  or 레퍼런스 변수.메소드
        
        int len = s.length();
        System.out.println(len);
        
        //반지름 5인 원의 넓이를 구하시오. 반지름 x 반지름 x 원주율
        
        double d = 5 * 5 * Math.PI;
        System.out.println(d);
        
        int a = Math.abs(-10);
        System.out.println(a);
    }
}

위 코드를 실행하면 아래와 같이 나옵니다.

 

'Programming Language > Java' 카테고리의 다른 글

자바 프로그래밍 표기법  (0) 2020.03.17
자바 java 파일 기본 규칙  (0) 2020.03.17
200317 // 이클립스  (0) 2020.03.17
자바 매개변수 - 가변인수  (0) 2020.03.11
자바 배열  (0) 2020.03.11

+ Recent posts