1,2장

01. 자바 프로그래밍 시작하기

01-1 프로그래밍과 자바

  • 1프로그래밍: 컴퓨터 프로그램을 만드는 일
    프로그래머: 프로그램을 만드는 사람
    프로그래밍을 한다: 컴퓨터가 일을 하도록 컴퓨터 언어로 명령을 만들고 컴퓨터로 하여금 명령을 실행하게 하는것
    컴파일:프로그램이 프로그래밍 언어 문법에 잘 맞는지 확인하고, 컴퓨터가 이해할 수 있는 언어로 번역하는 작업
    컴파일러: 컴파일 작업을 하는 프로그램
    프로그램= 프로그램에 들어있는 명령(소스코드) + 컴파일된 결과물
  • 1자바를 쓰면 좋은점
    ⓐ플랫폼에 영향을 받지 않으므로 다양한 환경에서 사용할 수 있다.
    ⓑ객체 지향 언어이기 때문에 유지보수가 쉽고 확장성이 좋다.
    ⓒ프로그램이 안정적이다.
    c나 c++처럼 포인터를 사용하지 않아 메모리를 직접 제어 X
    +가비지 컬렉터로 메모리를 효율적으로 관리
    ⓓ풍부한 기능을 제공하는 오픈 소스이다.
    자바 개발키트(JDK)
  • 1자바로 만들 수 있는 프로그램
    ⓐ웹 서버   ⓑ안드로이드 앱  ⓒ게임

01-2 자바 개발 환경 설치하기

  • 1자바 설치=자바 JDK(자바프로그램을 개발하는데 필요한 라이브러리와 플랫폼이 포함) 설치
    **자바 프로그램 실행: 자바 실행 환경(JRE)만 있으면 됨
    자바 프로그램 만들기: JDK있어야 함
    이클립스(통합 개발 환경, IDE)를 사용해 자바 코드를 작성하고 컴파일하고 실행.

01-3 이클립스로 첫 프로그램 만들기

  • 1워크스페이스 선택-프로젝트(first)-패키지(hello)-클래스(hellojava)
  • 1Hello, Java 문장 출력하기
    System.out.println[화면에 출력하라]("Hello, java");[문장의 마침표 역할]
    **소스 코드 아래 빨간 줄=오류난 부분 알려줌

    컴파일하기
    프로그램 실행하려면 컴파일 단계(프로그래밍 언어를 기계어로 번역)를 거쳐야 함

    프로그램 실행하기(ctrl+f11)
    콘솔창에서 실행 결과를 볼 수 있음
  • 1주석으로 소스 코드 정보 표시하기
    프로그램에 설명추가하거나 특정 코드가 컴파일되지 않도록 처리할 때 사용
    한 줄: //
    여러 줄: /*(시작), */(끝)

02. 변수와 자료형

02-1 컴퓨터는 데이터를 어떻게 표현할까?

  • 1컴퓨터에서 수를 표현하는 방법
    비트: 0또는 1로 표현할 수 있는 최소 단위
    8비트가 모이면 1바이트

    ⓐ 10진수와 2진수
    10진수: 0~9까지 한 자릿수, 10부터 두 자릿수
    2진수: 0과 1 두개로만 표현되는 수
    문자도 2진수로 표현가능(아스키 값)
    ex) A=65

    ⓑ2진수, 16진수, 8진수
    2진수를 8진수나 16진수로 바꿔서 사용하면 간단하게 표현
    8진수를 2진수로 표현하기 위해 3개의 비트가 필요, 16진수는 4비트가 필요
    **2진수 사용-숫자 앞 0B, 8진수 사용-숫자 앞 0, 16진수-0X붙인다.

  • 1부호 있는 수 표현
    부호 비트: 맨 앞에 붙어있는 부호를 나타내는 비트
    양수: 0, 음수:1

    ※2 보수(보충해 주는 수) 구하기
    ex)5
    ㉠1의 보수 구하기
      00000101
    +11111010
    ------------------
      11111111

    ㉡제일 낮은 자리 1더하기
      11111111
    + 00000001
    --------------------
       1[8비트만 사용하므로 버려짐]00000000

    ㉢2의 보수 구하기
      00000101
    +11111011
    ------------------
      00000000
    ∴-5

02-2  변수란 무엇일까?

  • 1변수: 프로그래밍에서 변하는 값, 값을 넣을 수 있는 빈 그릇
    자료형: 사람의 나이 저장-정수 형태, 이름 저장-문자 형태
    변수를 선언한다: 변수의 자료형을 선택하고 이름을 정한다.
    ex)int(자료명, 정수 나타냄) level(변수 이름, 게임 레벨 나타냄); (정수형 변수 level을 선언)
         level=(오른쪽 값을 왼쪽에 대입한다.)10; (값 10을 level 변수에 대입)
  • 1level이라는 정수현 변수를 선언하고 값 10을 대입한다.
    level값을 출력하면 변수에 대입한 값인 10을 볼 수 있다.
    ∴10
  • 1변수 초기화(변수에 처음 값을 대입하는 것) 하기
    level변수 선언과 동시에 값 10을 넣을 수 있다.
    int level=10;
  • 1변수 이름은 사용 목적에 맞게 의미를 잘 부여해서 만드는 것이 좋다.
    의미 풀어서, 영문자(대, 소), 숫자, 특수문자($,_), 숫자로 시작X, 이미 사용중인 예약어X(While), numberOfstudent(다른 뜻 단어 등장할 때 첫글짜 대문자로,카멜 표기법)

02-3 변수가 저장되는 공간의 특성, 자료형

  • 1변수와 메모리
    변수: 컴퓨터 내부의 메모리 공간에 저장
    메모리: 프로그램이 실행되는 작업 공간
    변수를 선언한다=선언한 변수 이름으로 어떤 위치에 있는 메모리를 얼마만큼의 크기로 사용
  • 1기본 자료형의 구조
    자바에서 제공하는 자료형=기본 자료형+참조 자료형
    기본 자료형은 각 자료형이 사용할 공간의 크기, 즉 바이트 수가 정해져 있다.
  • 1정수 자료형
    양수, 음수 , 0을 나타냄
    ⓐbyte형: 바이트 크기(1)
    ⓑshort형: 바이트 크기(2)
    ⓒint형: 바이트 크기(4), 정수 표현할 때 가장 많이 사용
    ⓓlong형: 바이트 크기(8), 가장 큰 단위
    **숫자의 유효범위가 long일 때,
    int와 long형 같이 사용할 때 식별자 L(l)숫자 뒤에 붙여야 함
  • 1문자 자료형
    문자 인코딩: 문자를 정해진 코드 값으로 변환하는 것
    문자 디코딩: 반대로 코드 값을 다시 문자로 변환하는 것
    아스키코드(영문자, 숫자, 특수 문자): 가장 기본이 되는 문자 인코딩
    한글 등 다른 문자(영문자 제외) 2바이트 이상 사용-각 언어의 표준 인코딩 정의해놓은 것이 유니코드
    자바는 유니코드에 기반해 표현하기 때문에 char형은 2바이트를 사용
  • 1A = 65, 66 =B, 67 = C
    문자형을 int로 출력하고 싶으면 char형으로 선언한 변수를 사용할 때 앞에 (int)붙인다.
    int형을 char형으로 출력하고 싶으면 앞에 (char)붙인다.
  • 1문자를 사용할 때 항상 작은따옴표(' ')를 사용한다.
    문자를 여러 개 이은 문자열을 사용할 때는 큰따옴표(" ")를 사용한다.
    널문자('\0')는 문자열의 끝을 나타낸다.
    유니코드란 전 세계의 모든 문자를 처리할 수 있도록 만든 표준 문자 전산 처리 방식이다.
  • 1문자형 연습
    ∴한 한
    \uD55C는 '한'이라는 글자의 유니코드 값이고 16진수(4비트, 4비트 4개, 2바이트 사용)로 나타내고  있다.
  • 1문자형 연습
    ∴A ? A
    문자형 변수에 숫자를 저장한다면, 65는 A로 표시되지만 다른 정수 자료형과 달리 char형이 음수값으로 표현할 수 있다.(그래서 ?, 알 수 없는 문자가 나온다.)
  • 1실수 자료형
    부동 소수점 방식: 1.0(가수) X 10(밑수)-1(지수)=0.1
    가수 부분과 지수 부분으로 나누어서 실수를 나타냄
    1.m(밑수) X 2n(지수): 밑수 2로 정규화할 때 표현

    float형(부호 1비트, 지수부 8비트, 가수부 23비트로 총 32비트(4바이트))
    과 double형(부호 1비트, 지수부 11비트, 가수부 52비트로 총 64비트(8바이트), 실수 기본, 더 정밀하게 실수 표현)
    이 있다.
  • 1float형으로 대입되는 값 3.14는 식별자인 F(f)를 숫자 뒤에 붙여야 한다.
  • 1논리 자료형
    참, 거짓을 나타내는 데 사용, Boolean형만 있음
  • 1Boolean 변수를 선언하고 초기화한다.(5행)
    ∴true
  • 1자료형 없이 변수 선언하기
    ⓐ한 번 선언한 자료형 변수를 다른 자료형으로 사용X
    ⓑvar로 자료형 없이 변수를 선언하는 방법은 '지역 변수-프로그램의 { } 내에서 사용할 수 있는 변수'만 가능
  • 1자료형 추론
    var(int, double, String) 컴파일 됨
    str 변수는 string형으로 먼저 사용되어서 정수 값 넣을 수 없다.

02-4 상수와 리터럴

  • 1상수 선언하기
    상수: 항상 변하지 않는 값, 주로 대문자 사용
  • 15행:선언과 동시에 초기화
    8행:사용하기 전 초기화, 초기화 X-오류 발생
    13행: 오류 발생, 상수는 변경X
  • 1상수를 사용하면 편리한 이유
    상수를 선언한 부분의 값만 변경해주면 됨
  • 1리터럴
    리터럴: 프로그램에서 사용하는 모든 숫자, 문자, 논리값(t,f)
    변수나 상수값으로 대입할 수 있다

02-5 형 변환

  • 1형 변환
    정수와 실수를 더할 때 처럼 하나의 자료형으로 통일해야 할 때 형 변환일어남

    ⓐ묵시적 형 변환(자동 형 변환)
    바이트 크기가 작은->큰 자료형으로, 덜 정밀한->더 정밀한 자료형으로
  • 1묵시적 형 변환
    int iNum=bNum; byte형 값이 int형 변수로 대입
    float fNum=iNum2; int형 값이 float형 변수로 대입
  • 1ⓑ명시적 형 변환
    바이트 크기가 큰->작은 자료형으로, 더 정밀한->덜 정밀한 자료형으로
  • 1int iNum3=(int)dNum1+(int)fNum2; 두 실수가 각각 형 변환되어 더해짐
    int iNum4=(int)(dNum1+fNum2); 두 실수 합이 먼저 계산되고 형 변환됨
    1.2(1)+0.9(0)=1
    1.2+0.9=2.1(2)