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)