1.소스파일 구문 분석

  • 소스는 블록간의 중첩으로 구성된다.
  • 하나의 블록 = {....}
  • 블록안에 명시되는 명령어는 세미콜론( ;) 으로
    문장의 끝을 표현한다

2. 주석문

2-1 주석문 이란?

  • 프로그램 소스코드 안에 개발자의 필요에 따라 명시하는 설명문
  • 주석문은 프로그램으로 컴파일 되지 않는다.
  • 특정 명령문이 실행되지 않도록 차단하는 용도로 사용할 수 있다.

2-2 주석문의 종류

  • 한 줄만 처리하는 주석문
    //가 앞에 명시된 라인은 주석으로 인식

  • 여러 줄을 처리하는 주석문

    /*
    이블록 안에서는 여러 라인을 주석으로 처리할수있다.
    */

3. 변수의 이해

3-1 변수란

  • 다양한 종류의 자료를 표현할 수있는 값을 변수라고 부르며, 일반적으로 웹 페이지에서 처리하고자 하는 "데이터"에 해당한다.

3-2 자료형 (data type)

  • 프로그래밍 언어에서 변수의 종류를 구별하기 위해
    사용되는 키워드
  • 자바에서 제공되는 자료형의 종류에는 8가지가 있다.
    이를 기본 자료형 (primitive Data Type) 이라한다.

3-3 자료형이 가지는 의미

+모든 변수는 컴퓨터의 메모리 영역에 생성된다.
+일반적으로 메모리란, PC에 서리하는 RAM을 의미한다.

  • 4byte의 크기를 갖는 변수 값 하나를 생성할 경우,
    PC의 RAM에서 해당 용량만큼을 사용하게 된다.
  • 변수는 RAM의 크기를 넘지 않는 범위 안에서만
    생성할 수 있다.
    (용량을 넘어서는 경우 Out Of Memony에러가 발생한다)

3-4 문자열 데이터

  • 프로그램 코드에서 "문장"을 표현하기위해 사용되는 데이터 값
  • String
  • 문자열을 표현하기 위한 자료형이다.
  • 글자 수에 상관 없이 쌍따옴표("")로 묶인 내용을 할당할 수 있다.
  • 글자값의경우 쌍따옴표로 묶이게 되면 문자열로 취급되므로, 숫자와 문자열을 분명하게 구별해야 한다.

3-5. 변수의 사용방법

  • 변수를 사용하는 방법은 "선언"과 "할당"의 두 영역으로 구분된다.

  • 변수의 선언
    -> 선언은 데이터형과 사용하고자 하는 변수의 이름을 정한 수, 세이콜론(;)으로 한 라인을 종료

    ex)
    데이터형 변수이름;

      int    num;
    (정수) ->   1,4, 100가능 // 0.5불가 (소수점불가능)

  • 변수의 할당

    -> 선언된 변수에 원하는 값을 대입하는 과정
    -> 값의 대입은 대입연산자(=)를 사용하여
    우변에서 좌변으로 대입된다.
    
    변수이름 = 값;
    num = 100;

    (num라는 그릇에 100을 담는다)

        // 변수의 선언
		int num1;
       // 변수의 할당
		num1 = 100;		
		System.out.println(num1); // 100    변수는 ""를 찍지않는다 
		System.out.println("num1"); // num1  문자열이 아니기 때문 
  • 선언과 할당의 통합

      데이터형 변수이름 = 값;
      int num2 = 200;

    • 문자열 데이터

        -> String 형의 변수를 선언하고, 쌍따옴표로 묶인 값을 대입한다.
        -> 빈 문자열이나 공백도 문자열 데이터이다. String msg ="안녕하세요,     자바";
          -> 문장을 표현 (공백포함) String blank = "";
         -> 빈 문자열 값 String age = "20";
        -> 숫자값이 쌍따옴표로 묶였다면 문자열이다.
  • 문자열 데이터의 덧셈

       -> 문자열 + 문자열 : 두문장을 하나로 합쳐준다
    String language = "JA" + "VA";
                        ->"JAVA"

  • 문자열 + 기본자료형

    int age = 20;
    String name = "자바학생";
    String result = name + age;
                -> "자바학생" +20
                -> "자바학생20"

  • 변수이름 명명 규칙

    -> 변수이름은 영문,숫자, "_", "$"만 사용가능하다
    -> 변수 이름은 첫 글자는 숫자로 시작될 수 없다.
    -> 대/소문자를 엄격하게 구분, 오타에 주의해야한다
    -> 자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
    ->클래스 이름의 명명규칙도 변수 이름의 규칙과 동일하다.

    3-6 변수의 할당

  • long, float, double은 다른 데이터형과의 구별을 위해 값 뒤에 데이터 형의 첫 글자를 접미사로 가질 수 있다.
    접미사는 대/소문자를 가리지 않지만 가급적 대문자로 사용하는 것이 좋다.

    long money = 50000000000L;
    float PI = 3.14F;
    double lat = 128.32452D;

  • boolean은 true(참), false(거짓)중의 한 가지만 갖는다.

         boolean user = true;
    	boelean isJapanes = false;
  • char는 홑따옴표(")로 감싸진 한 글자만 대입할 수 있다.

    char first = '곽';

    3-7 값의 할당 방법

  • 생성된 변수는 다른 변수에 대입될 수 있다.

    	int num1 = 100;
    	int num2 = num1;
    
    	int num1 = 100;
    	num1 = 200;   // 재할당 가능
         
        int num1 = 300;   // 불가능
        (내용은 바뀔수있지만, 그릇이달라질순없다)
  • 반복하여 다른 값이할당될 수 잇지만, 선언은 중복 불가

  • 선언되지 않은 변수는 사용할 수 없다.

    	int num1 = 100;
    	num1 = 200;
    	num2 = 300;  // 그릇이없다 ( 선언을 안함)
  • 값이 대입되지 않은 변수는 다른 변수에 대입하거나 출력할 수 없다.

    	int num1;
    	int num2; = num1;   // 에러   할당되지않은 변수
    	System.out.printli(num1);   // 에러

    3-8 상수 = 변하지 않는 수

  • 변수와 마찬가지로 메모리상에 존재하지만, 값이 변경될 수 없는 데이터

  • final 키워드를 사용하여 선언된 변수는 상수로 생성된다.

    	final int age = 20;
    	final long money = 12000000L;
    	final float pi = 3.14F;
  • 메모리상에 이름이 생성되므로 접근은 가능하지만, 할당한 값을
    변경할 수는 없다.(읽기전용)

    	final int AGE = 20;
    	AGE  = 21;      // 에러 

    상수는 대문자로 표현하는 암묵적인 약속.

 public class Main03 {

	public static void main(String[] args) {
		// 일반변수
		int width = 100;
		
		// 상수
		final double PI = 3.14D;
		
		System.out.println("width : " + width);   // width : 1000
		System.out.println("PI : " + PI);	      // PI : 3.14

		 // 값의 변경
		width =200;
		System.out.println("width = " + width);   // width = 200
		
		// 이 라인은 상수이기 때문에 에러가 발생
		// PI = 3.141582d; 
		
		System.out.println("PI : "+ PI);		// PI : 3.14
			
		
	}

}

4.연산자

4-1 연산자

  • 프로그램에서 연산을 수행하기 위하여 사용되는 특수기호들

4-2. 대입연산자

  • 변수에 숫자나 문자열 등의 자료를
    입력하거나 연산 결과를 다른 변수에 할당한다.

4-3. 사칙연산자

  • 더하기(+). 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%)

  • 10나누기 3을 계산할 때,
    수학에서는 몫이 3, 나머지 1이라고 계산이 된다.

  • 10/3 -> 나눗셈의 몫만을 취하여 결과값은 "3"

  • 10 % 3 - > 나눗셈의 나머지만을 취하여 결과값은 1 이 된다.

  • 모든 수는 0 으로 나눌 수가 없다.

4-4. 단항 연산자

  • 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용

  • 다시 자기 자신에게 대입하고자 하는 경우의 약식 표현이다.

    	int x = 100;
    	x = x + 5;
    	--------------------------------------------
    	int x = 100;
    	x + = 5;
  • 단항 연산자는 모든 사칙 연산자에 표현 가능하다.
    +=, -=, *=, /=, %=


public static void main(String[] args) {
		int source = 100;
		// 단항 연산자
		source += 100; // source = source + 100;   200
		System.out.println(source);
		source -= 50;  // source = source - 50 ;   150
		System.out.println(source);
		source *= 2;  // source = source * 2 ;     300
		System.out.println(source);
		source /= 100;  // source = source / 100;  3
		System.out.println(source);
		source %= 2;    // source = source % 2;    1
		System.out.println(source);
	}

}

4-5. 증감 연산자

  • 특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용

  • 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우,
    덧셈과 뺄셈에 대해서는 다시 한번 축약할 수 있다.

  • 덧셈의 경우
    x = x +1;
    x + = 1;

           x++;   증감연산자
    	++x;   증감연산자
  • 뺄셈의 경우
    x = x -1;
    x - =1;

    	x--;   증감연산자
    	--x;   증감연산자
  • x++ 와 ++x의 차이
    -> 증감 연산자는 그 자체가 다른 연산식의 피연산자로
    사용될 수 있다. 이 때, 증감연산자의 표시 위치에 따라
    결과가 서로 다르게 적용된다.

  • x++ 경우
    -> 증감연산자가 뒤에 표시되는 경우, 현재 x의 값을
    먼저 수식에 적용하고, 나중에 x에 대한 1증가 처리를 한다.

    	int a = 100;
    	int x = 1;
    	int y = a  +  x++;
                                         // 100+1
    	System.out.println(y);  // y:101 x:2
  • ++x 경우
    -> 증감연산자가 앞에 표시된 경우 먼저 현재 x의값을
    1증가 시킨 후, 그결과를 수식에 적용한다.

    	int a = 100;
    	int x = 1;
    	int y =  a + ++x;
                      100 + 2 
    	System.out.println(y);   // y: 102, X:2

   public class Main03 {
// 증감연산자
	public static void main(String[] args) {
		int plus_num = 1;
		plus_num = plus_num + 1;
		plus_num += 1;
		plus_num ++;  //증감연산자
		++plus_num ;  //증감연산자
		
		System.out.println(plus_num);
		
		int minus_num = 5;
		minus_num = minus_num - 1;
		minus_num -= 1;
		minus_num --;  //증감연산자
		--minus_num;   //증감연산자 
		
		System.out.println(minus_num);

4-6. 비교 연산자

  • 두 개의 변수값 간의 관계를 비교하여 참(true)이나 거짓(false)의 결과를 반환한다

  • 같다 ==
    다르다 != // 느낌표 부정의 의미
    초과 >
    이상 >=
    미만 <
    이하 <=

  • 주어진 식이 참인지 거짓인지 판별 가능하므로, 연산결과는
    boolean 값으로 생성된다.

    int x =100;
    int y = 1;
    boolean r = x 비교연산자 y;


public class Main5 {

	public static void main(String[] args) {
		int num1 = 123;
		int num2 = 456;
		
		// 비교 연산에 대한 결과는 boolean
		boolean result1 = num1 == num2;
		System.out.println(result1);
		
		// !=  같지않다
		boolean result2 = num1 != num2;
		System.out.println(result2);
		
		// >  크다
		boolean result3 = num1 > num2;
		System.out.println(result3);
		
		// <=  작거나 같다
		boolean result4 = num1 <= num2;
		System.out.println(result4); 

4-7. 논리 연산자

  • 좌변과 우변을 논리 연산하고, 참일때는 true, 거짓일때는 false 값을 반환한다

  • 두개 이상의 비교 연산자의 결과나 boolean 값에 대해
    추가로 "AND"나 "OR" 연산을 수행하여 결과를 얻는다.

  • AND의 의미를 갖는 &&
    -> "&" 연산자 두개의 boolean값을 비교하여
    모두 true인 경우에만 결과값이 true


-OR의 의미를 같는 ||
-> || 연산자는 두개의 boolean값을 비교하여

둘중 하나라도 true인 경우 결과값 true 이다.

public class Main06 {
	// 논리 연산자
	public static void main(String[] args) {
		int a = 100;
		int b = 200;
		int x = 5;
		int y = 3;
			// ||는 OR의 의미를 가짐
		boolean result1 = a != b || a == b; // t || f
		System.out.println(result1);
		
		boolean result2 = a < b || x > y ; // t 
		System.out.println(result2);
		
		boolean result3 = a < b || x < y; // t
		System.out.println(result3);
		
		boolean result4 = a > b || x > y; //  t
		System.out.println(result4);
		
		boolean result5 = a > b || x < y; // f
		System.out.println(result5);

5. 형변환(Casting)

5-1. 형변환이란?

  • 변수의 자료형이 변환되는 것을 의미한다.

  • 특정 자료형의값을 다른 자료형의 변수에 대입할 수 있다.

  • 암묵적 형변환과 명시적 형변환의 두 종류가 있다.

    5-2. 암묵적 형변환

  • 암묵적 형변환은 서로 다른 자료형을 연산 혹은 대입하는 경우,
    java 컴파일러가 자료형을 통일한다.
    이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.

    	int a = 100;	// 정수형
    	float b = a;	// 정수형을 실수형에 대입
  • 암묵적 형변환은 어떤 변수가 더 큰 범위의 변수로 대입 가능함을
    의미한다.

5-3. 명시적 형변환

  • 데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태

    자료형 b = (변환할자료형)a;

  • 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.

    double a = 3.14d;
    int b = (int)a; // 3

profile
wow

0개의 댓글