21.07.21

.·2021년 8월 7일
0

playdata

목록 보기
3/35
post-thumbnail

DAY 03

✍️ 이클립스 사용법

  1. 자바 프로젝트 생성
    1) File -> new -> java project ( 없으면 other에서 java project)
    2) 자바 프로젝트 생성

    3) 패키지 생성


    4) 클래스 생성

- src -> 소스코드 / bin -> class

  1. 이클립스 단축키
    1) main + ctrl + space => public static void main
    2) syso + ctrl + space => System.out.println
    3) ctrl + space + s => 자동정렬


    .java -> class -> package -> project -> jar

  • 선언부
    - Package : 현재 클래스가 위치한 namespace
    - import package : 현재 클래스에서 참조할 수 있는 클래스가 있는 namespace
    - import static package.class.method : 현재 클래스에서 참조할 수 있는 static 메소드 참조할 때 사용

  • 코드영역
    - .java명과 동일해야 한다. / 자바의 실행 단위는 class이다.
    - 여러개의 클래스를 적용할 수 있지만 접근제한자가 작은 것만 뒤에 적용가능 (우선순위)
    - main()진입점 = main method
    - method안에 코드를 작성 한 후 명령의 끝을 알려주는 ;(세미콜론)으로 마무리한다.

✍️ 변수, 함수, 메소드

test -> 변수
test() -> 함수 function()
Test.test -> 메소드 method()

변수 : 지역변수, 전역변수
 - 지역변수 : 메소드 안에 선언하는 변수 , 반드시 초기화
 - 전역변수 : 클래스안에 선언하는 변수
 

✍️ 클래스
-class = 자료형 = 실행단위
-class = 값 + 기능
-class = 속성 + 메소드
-class = static final + user_method()

[선언]
접근제한자 [abstract, final] class userName{

	속성 (값) + 메소드 (기능) _[static,non-static],[abstract,final = 상속],[void, data type]

}
public static final void Prn(){}
public void Disp(){}
public int Prn(){return 100};

✏️ 클래스 멤버 중 static void 형 메소드

[형식]
    접근제한자 static void userName(매개인자...){
    	명령;
    }
    
 [호출]
 	class명.userName(); // 클래스명.메소드명()

✍️ static , non-static

- static : 클래스명.메소드명()
- non-static : 객체.메소드명()
- non-static일 경우에는 주소가 생성되지 않음 -> 호출 불가 (주소 만들어야 됨)
- static은 생성될 때 주소가 할당되므로 호출 가능


  • jvm = heap (자유영역공간)
  • heap(class) 영역과 static & stack 영역으로 할당되어 있음
  • os = m/m = memory map (cs,ds,static,heap,stack)
  • cs (code segment) : 코드를 관리하는 영역
  • ds (data segment) : 값을 관리하는 영역
  • static : 정적 영역으로 class,union, struct,static,user_function 등이 선언되면 관리되는 영역으로 선언과 동시에 주소를 가지면서 bind 된다.
  • heap : 자유영역공간 = 동적할당공간 , 프로그램 실행시에 다른 프로세스가 실행되지 않은 공간을 할당받아 실행되고 (동적할당 = 생성 = new) 실행이 끝나면 소거되는 공간 (소멸, GC영역)
  • stack : 고정영역으로 지역변수, 지역 값 등을 고정적으로 관리하는 영역

✍️ 자바의 식별자 규칙

- 클래스이름, 인터페이스이름, 메소드이름, 변수이름, 상수이름 등을 구별할 수 있는 규칙

  1. 대소문자를 구별한다.
  2. 132자는 넘지 않는다.
  3. 숫자로 시작하지 않는다. ex) 4test.java
  4. 공백을 추가하지 않는다. ex) abc def{}
  5. 키워드로 생성하지 않는다. ex) for.java , while.java
  6. 특수문자 중 예약과 관련된 이름으로 시작하지 않는다. ex) $,#,&,*
  • 자바의 클래스명은 대문자로 시작한다.


    ✍️ 기본형변수
    - boolean , 정수, 실수, 문자, 문자열

    boolean : true, false
    정수 : 소수 없는 수
    실수 : 소수점 지수
    문자 : ' '
    문자열 : " " 
    

    ✍️ 값을 출력하는 표준 출력 메소드

  1. print() : 줄바꿈 X

  2. println : 줄바꿈 O

  3. printf : 포맷지정 => public PrintStream printf(String format, object...arg)

    * +는 " " 를 만나면 연결 문자열이 된다.
    ex) System.out.print(true + "\n"); // \n은 줄바꿈

    * "와 같은 특수문자 앞에 \를 주면 단순한 문자, value로 본다.


    ✍️ 자료형

  • datatype = 자료형
    • 정수 int가 기본
    • 실수 double이 기본
byte(1byte) -> short(2) -> int (4) -> long (8) -> float(4) -> double(8)
               char(2)
0,1 -> bit *8 = 8bit = 1byte =-128 ~127

ex) 2라는 숫자를 byte방에 b1이라는 이름으로 저장하고 싶다. // 데이터타입 변수이름 = 값
    
    byte b1 = 2; // b1이라는 지역 변수에 2라는 값을 대입했다.
    
    byte b2 = 129; // byte는 127까지만 가능하므로 오류
    byte b2 = (byte)129 ; // 오버플로우 되면 역으로 돌아가 -127출력
    
    int ai = 100;
    System.out.println(ai);
    
    ai = 300 ;  // 재대입
    System.out.println(ai);
    
    long l = 100L;
    System.out.println(l);
    
    double d = 92.8D; // 접미어 
    System.out.println(d);
    
    float f = 92.8f;
    System.out.println(f);
    
    char ch = 'c';
    System.out.println(ch);
    
    String str = "abcd";
    System.out.println(str);
    

✍️ 형변환
✏️ 명시형변환 ( double -> byte 방향)
- 큰 데이터 타입의 자료형을 작은 데이터 타입의 변수에게 전달할 때 해당 데이터 타입으로 선언해 주는 것

✏️ 자동형변환 (byte -> double 방향)
- 작은 데이터 타입의 자료형을 큰 데이터 타입의 변수에 전달이 자동으로 이루어 지는 것

ex) double d = 100; d(8byte) = 100 (4byte);
    float f = (float) 90.4 // f (4byte) = 90.4 (8byte);

  • Formatter
    StringBuilder sb = new StringBuilder(); // non-static
    Formatter formatter = new Formatter (sb,Locale.US);
    // class명 클래스 변수 = new 생성자(); -> 주소 생성


    ✍️ 연산자

    ✏️ | (or), &(and), ^(xor)

    ABA|BA&BA^B
    00000
    10101
    01101
    11110
  1. or : 한쪽이 1이면 무조건 1
  2. and : 둘다 1이여야 1
  3. xor : 한쪽만 1이여야 1

✏️ && , || 연산자

  1. && 연산자 : 앞에 연산이 false이면 뒤에 연산 안함
  2. || 연산자 : 앞에 연산이 true이면 뒤에 연산 안함

✏️ >> , << (shift 연산자)

ex) a = 2;
    b = a>>2;
    c = a<<2;
    
    a 00000000 00000000 00000000 00000010
    b 00000000 00000000 00000000 00000000 // 0으로 채움
    c 00000000 00000000 00000000 00001000
    

0개의 댓글