🌞 Day 002 : JAVA 문법

  • 오늘은 어제 배웠던 내용의 복습과 본격적으로 JAVA를 배우기 시작한 날이었다.
  • 8시간의 짧지 않은 시간동안 많은 내용을 배우는만큼 효율적인 정리와 복습을 위해서 수업도중과 쉬는 시간에 시간별로 배웠던 내용을 짧게 기록해 두었다가 저녁에 한 번에 모아 블로그에 정리하면서 그날의 복습을 하는 방식으로 공부를 하려고 한다.


🍄 1 교시 

  • 이클립스 워크스페이스 바꾸기
    ⇒ file 탭에서 switch workspace에서 사용할 폴더 경로를 지정하면 됨
    ⇒ 그러나 Preference 설정 다시 해줘야 함 (폰트, 한글 utf-8 설정 등등)
  • 자바 프로젝트는 복사하는 것이 안됨
    ⇒ 프로젝트는 import해야 하는데 후에 배울 예정
  • 소스 코드 파일은 복붙하고 project explorer에서 우클릭 -> refresh하면 나옴..
    ⇒ 파일 탐색기에서 바꾼 내용을 이클립스에 적용하는 방법
  • 이클립스 run 단축키 : 컨트롤 + F11
    (나중에 따로 정리할 것!!)


🍄 2 교시 

📌 필기 시험 POINT!!

  • 명령 프롬프트에서 .java파일 컴파일하고 .class 실행하기 복습을 하면서 필기 시험에 나올만한 포인트를 정리
    🔸 javac 클래스이름.java
        : 컴파일 명령어 작성한 .java파일을 JAVA 번역하라는 컴파일 명령어
         (제대로 컴파일이 되면 클래스이름.class 파일이 생성되고 프롬프트 창에는 아무런 표시 X)

    🔸 java 클래스이름(.class 생략)
       : 컴파일해서 생긴 .class파일을 실행하라는 명령어

    🔸 시스템 환경변수를 설정하는 이유?
       : 자바가 설치된 폴더와 소스코드 파일 위치가 다를 때
       → 어떤 위치에서든 자바가 실행할 수 있도록 설정해주는 것
  • 자료형?
    컴퓨터 내부에서 사용되는 자료(data) : 수치자료 / 문자자료(텍스트) 두 개로 나뉜다.
  • 문자자료는 "" or '' 사이에 넣어 표현, 숫자는 그대로 표시
  • 예시
    "abc"-문자(String), 'a'-문자(char), 123-숫자(정수), 123.4-숫자(실수)
  • 잘못된 자료 사용 : 123as, sa123
    ⇒ 따옴표 없이 문자와 숫자 섞인 경우
    ⇒ 뒤에 것은 클래스이름으로 혼동을 일으킬 수 있음


🍄 3 교시 

  • 이스케이프 문자   :   %
    이스케이프 문자란, 아직 출력의 내용으로 결정되지 않은 데이터의 출력 자리를 마련하는 문자를 말한다.
    출력 될 내용의 자료형에 따라 %d : 정수, %f : 실수, %s : 문자열, %b : boolean 등으로 표기한다.
    그리고 그 자리에 출력 될 내용은 ""가 끝난 후 뒤에 콤마로 구분하고 써준다.

  • 여러 개를 써도 됨 순서만 잘 맞추면 된다.
    실수형과 정수형이 바뀌면 바로 에러 뜨니 조심할 것!
    그러나 문자열 자리에 숫자 넣어도 나옴
    즉, %s는 모든 자료형이 출력 가능!
  • 연산자 5개
    더하기 +, 빼기 -, 곱하기 *, 나누기 /
    % ⇒ 나머지 값 구하기 (나머지가 없으면 0으로 출력)

  • 소수점을 조절해서 출력하기
     %.2f  ⇒ 소수점 2번째까지만 출력해주세요 (3번째에서 반올림한 값을 출력)
    ex) 3.297872 → 3.30

  • 위의 5개 말고도 연산자는 훨씬 많다.

  • printf()안에서 %와 s,f,d 사이에 숫자 옵션을 넣어 표시할 자리 수를 조절할 수 있다.

    • 정수(%d)의 자리조절 - %와 d사이에 숫자가 없으면 데이터 자리 수 만큼
      System.out.printf("정수%d정수\n",1234);

    • %와d 사이에 숫자가 있을 때 : 숫자만큼 자리 수를 확보하고 출력
      자리가 모자르면 → 자동으로 필요한 만큼 자리를 추가
      자리가 남으면 → 남는 자리는 숫자 앞에 공백으로

      충분한 자리와 1의 자리를 맞춰(오른쪽 정렬) 출력하기 위해서 이런 숫자 옵션을 지정해서 사용하는 것이 보통

    • 출력될 자리 확보 후 왼쪽 정렬
      System.out.printf("정수%-10d정수\n",12345);
      출력 ⇒ 정수12345 정수

  • 문자열 자리 수 조절 : 정수와 거의 비슷하다.
    모자르면 자리를 확보해서 출력하고, 남으면 공백 ‘-’없으면 오른쪽 정렬, 있으면 왼쪽 정렬


🍄 4 교시 

💠 실수의 자리 수 조절

  • %와 f사이에 숫자를 안 쓴 경우
    : 소수점 위는 필요한 자리수만큼 자동확보, 소수점 아래는 6자리 확보 후 출력, 남는 소수 점은 0으로 채움
  • 조절 숫자를 쓴 경우
    • %10.2f
      : 총 10자리 확보 후
      소수점을 위한 한 자리 소모, 소수점 아래 2자리 소모 => 3자리
      나머지 7 자리를 정수를 위한 자리로 사용
      정수를 위한 자리에서 모자르거나 남으면 %d처럼 출력
      소수점 아래는 모자르면 반올림, 남으면 0으로 채운다.

  • 연습문제

  • 이클립스의 콘솔창에서는 숫자가 가운데 정렬처럼 보일 수 있음 (폰트 때문에)
    주의할 점!! ⇒ 소수점이 나올 자리라서 %f로 넣었는데 연산자에도 3이 아니라 3.0을 넣어야 함 (정수로 계산하면 정수로 값이 나와야 하니까 출력에서 자꾸 오류 남 float표시를 했으면 계산에도 정수 값이어도 .0을 붙여서 실수라는 표시를 해야 함)


🍄 5 교시 

  •  System.out.println()
    => 줄 바꿈이 있는 출력, 마지막에 한 번 줄 바꿈을 한다.
    => println()은 printf()의 format 기능이 없기 때문에 %d, %f, %s를 사용하지 못함.
    => 다만 \n, \t, \', \" 등은 사용이 가능하고
    System.out.println("\n");
    => 두 줄 개행 (줄 바꿈)

  • 10x20=200 를 출력하려면
    System.out.println(10 + "x" + 20 + "=" + 10*20);

  • 문자와 다른 자료형의 + 연산의 결과는 이어 붙이기 된 문자 자료
    System.out.println();는 한 개의 문자 자료를 출력하는 것과 마찬가지 이다.

  • 문자와 숫자가 다른 점
    🔸 표면상으로 그 둘은 따옴표 안에 쓰여있냐, 아니냐고 구분
    🔸 123은 백이십삼 이라고 읽지만 "123"은 일이삼 이라고 읽는다.
        ( 123은 이진수 123으로 저장되지만 “123”은 코드 값으로 저장된다.
         다른 자료형이니까)
    🔸 987은 1234보다 작지만, "987"은 "1234"보다 크다 라고 말한다
    🔸 문자들 간의 비교는 첫 글자부터 하나씩 같은 위치의 글자와 비교
    🔸 첫 글자에서 크기가 결정되면 그 다음은 비교하지 않는다.
    🔸 두 번째 글자를 비교하는 경우에는 첫 번째 글자가 같은 글자 일 때에
         한해서만 비교
    🔸 두 번째도 같은 글자라면 세 번째 글자를 비교
    🔸 사전에서 찾았을 때 먼저 나오는 글자를 “작다”라고 하고 뒤에 나오는 글자를 “크다”라고 한다.


🍄 6 교시 

  • 숫자와 문자 조합해서 출력할 때 조심해야 할 점

  • println()에서는 format기능이 없어서 소수점 자리수를 정해서 출력하기 힘들다.
    구글링 결과 Stirng.format(”format”,num);을 쓰라는데…
    String.format말고도 Math.round()를 쓰는 방법도 있다고 함

  • printf()와 println()을 비교한 포스팅도 많았다
    오늘 수업하면서 내가 생각한 둘의 장단점을 적어보았다.
    🔸 printf()
       장점 : format기능이 있어서 자리 수 맞추기 간단해서 코드가 짧고 간결,
       단점 : 줄 바꿈 없어서 끝이나 앞에 \n를 써줘야 함, 자료형에 따라서 포맷을 정확히 써줘야 함
    🔸 println()
       장점 : 자동 줄 바꿈, 간단히 출력할 수 있다는 점
       단점 : format기능을 사용할 수 없어서 따로 자리 수를 맞춰주는 다른 메소드를 사용해야 함 ⇒ 코드가 길어지고 복잡해짐


🍄 7 교시 

  • println()에서 원하는 소수점 자리까지만 출력하는 다른 방법
    (강사님이 내가 검색한 방법 말고 다른 방법도 수업에서 알려주심)
  • 88.666667을 소수점 첫 째 자리까지 출력하는 방법
    위의 숫자에 x10 → 앞에 (int)붙여 정수로 만들기 → 다시 10.0으로 나누기
    (int)((100+88+78)/3.0*10)/10 ⇒ 88.6
  • 그래서 두 가지 방법을 다 써서 코드를 연습해보았다.
  •  변수(Variable) 
    프로그램이 실행되는 동안 발생하거나 사용자가 입력하는 내용을 기억할
    “임시” 저장 장소
    - 주기억장치(RAM) : 변수를 저장, 연산한 값을 저장
    - CPU : 연산을 함
  • 변수의 생성
    int a;
    // a라는 이름의 변수 생성 (int - 정수를 저장 하겠다!)
  • 변수의 이름을 만드는 규칙
    1. 아이디 생성 규칙과 비슷
    2. 영문, 숫자 그리고 일부 특수문자 ( _ 언더바)를 섞어서 사용 가능
    3. 첫 글자는 반드시 영문 소문자로 (클래스 이름과 구분하기 위해서)
    4. 중간에 공백 X
    5. 너무 짧지 않게 약간의 의미를 부여해서 생성
    6. 변수의 이름이 너무 짧으면 변수의 개수가 많아졌을 때 용도 구분이 어려움
    7. 변수의 이름이 너무 길면, 사용할 때마다 오타 생길 확률 UP
    8. 두 가지 의미의 단어가 조합되어 이름이 만들어진다면 첫 단어는 소문자,
       두 번째는 대문자로 시작 = 카멜기법 (ex) plusResult
    9. 변수는 자료형(정수, 실수, 문자)에 따라서 만드는 명령이 달라진다.


🍄 8 교시 

  • 자료형 정리
    byte : 1 byte형 정수
    short : 2 byte형 정수
    int : 정수형 자료형 4 byte형 정수
    long : 정수형 자료형 8 byte형 정수
    float : 실수형 자료형 4 byte형 실수
    double : 실수형 자료형 8 byte형 실수
    char(캐릭터) : 문자(글자) 자료형 '', 'a', 'b' 2 byte형 문자 1자, String과 다름
    String : 문자열 자료형 "", "a", "abc"
              0 글자에서 글자 개수 제한 없이 저장할 수 있는 자료형
              String은 현재 자료형이라 부르지만 엄밀히 자료형이라기 보다는
              클래스(객체)라고 부르는 게 정확한 표현
    boolean - 진위형 자료 1 byte형 자료 (true/false만 저장 가능)

  • 저장 용량의 최소 단위 : 1bit (0 또는 1 중 하나를 저장 - 이진수)
    2bit → 00 01 10 11 [4개 중 하나]
    3bit → 000 001 010 011 100 101 110 111 [8개 중 하나]
    N bit → 2의 N승
    8bit = 1byte 00000000 ~ 11111111 (256개 중 하나 저장 가능)
    byte ⇒ -128 ~ 127
    short = 16bit = 2byte = 65536개 = -32768~32767(정수)
    int = 4byte = -2147483648~-2147483647
    long = 8byte

  • 예전 시스템의 int - 2byte
    지금 시스템의 int - 4byte

  • 실수형의 범위
    double = 8byte 0.00002 ⇒ 0.2 x 10의 -4승 : 변수에 저장되는 값 → 2와 -4
    10의 약 -308승 ~ 308승

🚩 오늘 배운 내용을 정리하면서...

  1. 자료형, 연산자, printf()와 println(), 이스케이프문자까지 많은 양을 쉬지 않고 배웠다. 정리하면서도 많다고 느꼈고 블로그 글 쓰는데에만 엄청 시간이 걸렸다.
  2. 벨로글 글쓰기 너무 어렵다. 마크다운 문법은 왜 아직도 익숙해지지 않는 걸까?
  3. 코드블럭 너무 안예쁘고 쓰기 불편 ㅠ_ㅜ 그동안 혼자 공부하면서 노션에 기록하고 정리하고 복습했는데 그날 그날 다르게 썼고 공개 하기 뭐한 글들도 많아서 벨로그를 다시 시작했는데 역시나 코드 블럭과 줄맞춤 때문에 글 쓰는데 시간이 너무 걸렸다.. 빨리 적응해야 할 것같다.
  4. 복습하는 시간보다 글쓰고 수정하는데에 더 오래걸렸다. 이 시간을 줄일 방법을 빨리 찾아야 겠다.
  5. 결국 코드 블럭을 만들어서 이미지로 붙여주는 사이트를 사용해서 코드블록을 이미지로 첨부 사이트 링크는 https://carbon.now.sh/ 구글 검색으로 알게된 사이트 커스터마이징도 편리하고 많고 익숙한 테마들이 많아서 활용하기 정말 좋다. (링크, 이미지첨부, 컴퓨터에 이미지 다운받기 다 됨)
profile
제가 공부하고 공유하고 싶은 글을 올리고 있습니다.

0개의 댓글