[JAVA기초] 국비 6일차

포키·2022년 9월 27일
0

국비과정

목록 보기
6/73

TIP

코드 한줄한줄에 주석을 달아보고, 달 수 없는 부분이 있다면 질문하기.

  • 버퍼링(buffering)
    정보의 송수신을 원활하게 할 수 있도록 수신되는 정보를 일시적으로 저장해서 처리 속도의 차이를 흡수하는 방법

(버퍼링이란, 10초가 지났는데도 버퍼에 충분한 데이터가 모이지 않아 지연이 생기는 것)

이상적인 개발 = 다른 사람들과 함께하는 개발

복잡한 코드도 최대한 읽기 쉽게 쓰기, 적극적으로 팀 작업에 참여하고, 동료를 배려하기.

  • 자바 클래스명에 들어갈 수 있는 것은: 문자, 숫자, 일부 특수기호 (유니코드)(띄어쓰기x)(숫자첫글자x)

연산기호

+ - : 덧셈 뺄셈 
* / : 곱셈 나눗셈()
% : 나눗셈(나머지)
ex) 	27 / 6 = 4
		27 % 6 = 3

아스테리스크 = 스타 = 별표 = * = 곱셈기호

mini test, p. 40

class Lab1 {
	public static void main(String[] args){
		System.out.println(20 + 10);
		System.out.println(20 - 10);
		System.out.println(20 * 10);
		System.out.println(20 / 10);
	}
}

p. 41 잘못된 부분

  • JDK 는 오픈소스가 아님 (Open JDK가 따로 존재)
  • 자바에는 함수가 존재하지 않음. 대신 메소드가 존재.

자바 프로그램 구성 요소

Public class Add{
	public static void main(String[] args){
		int x, y, sum;
		x = 100;
		y = 200;

		sum = x + y;
		System.out.println(sum);
	}
}
  • x, y, sum - 변수 (= 내가 계속 사용하기 위해 값에 이름을 달아둔 것)
    int - data type (= 크기 + 종류) 의 하나, 정수
    = - 대입연산자 (연산자 중 우선순위가 가장 낮음)
    //, /* - 주석 (comment)
    문자에 ""가 없으면, 무언가의 이름이라는 의미

프로그래밍 언어가 작동하는 과정(?)

  1. 값을 사용 <- 메모리(RAM)에 상주시켜야 함
  2. 이름 -> '재사용'을 위해
    (한 번만 쓸 것이라면 이름 붙이지 않고 바로 사용하면 그만.)

변수 (variable) 를 메모리에 올리는 과정
1. 선언 (한정된 메모리 공간을 선점하기 위해, 공간을 '예약'하는 행위)
2. 정의 or 초기화 (변수에 처음으로 값을 잡아넣음, "비로소 메모리에 올라감"="변수를 사용할 수 있음")

컴퓨터 구조 - 주기억장치

주기억장치는 '롬 ROM(Read Only Memory)'과 '램 RAM(Random Access Memory, 무작위접근(랜덤저장 랜덤접근), 휘발성)'으로 나뉜다.
실행중인 프로그램의 데이터는 메모리(RAM)에 저장되어 있다.

메모리는 운영체제에 의해 실행되는 여러 프로그램에 할당된다

  • 언어별 괄호 다는 방식이 다르다
### Java
public class Add {
}
//
### MS계열 등 (*자바 코드)
public class Add
{
}

만약, 선언을 하지 않는다면?

class VarEx{
	public static void main(String[] args){
		// int n;
		// int n;
        //
		n = 2;
		System.out.println(n);
	}
}

컴파일 하면,

만약, 초기화를 하지 않는다면?

class VarEx{
	public static void main(String[] args){
		int n;
		// n = 2;
		System.out.println(n);
	}
}

컴파일 하면,

중괄호를 잘못 치면 (범위 지정을 잘못 하면)

class VarEx{
	public static void main(String[] args){
		{
			int n;
			n = 2;
		}
		System.out.println(n);
	}
}

컴파일 하면,

변수는 범위 내(괄호 내부)에 있을 때에만 메모리에 올라가 있다
범위가 끝나면 변수는 메모리에서 삭제된다.
따라서 int n을 괄호 바깥으로 빼면 오류는 사라진다.

즉, 선언 위치에 따라 변수 가용 범위는 달라진다

변수 이름이 중복될 경우 (선언 중복)

class VarEx2 {
	public static void main(String[] args){
		int num = 4;
		int num = 8;
		System.out.println(num);
	}
}

컴파일 하면,

num이 이미 선언되어 (already defined) 생기는 오류


변수와 자료형

식별자

  • 식별자 규칙
    알파벳 문자, 숫자, '_', '$', 한글 가능.
    첫글자는 알파벳 or 밑줄 문자여야 한다.
    대소문자 구분함
    자바 언어 키워드는 사용하지 않는다.
    표에서 *표시 된 것들은 자바에서 쓰지 않으나, 다른 언어에서 사용되므로 자바에서도 허용x 설정되었다.
  • 관례
    클래스명: 첫글자는 대문자로 함 ex) StaffMember
    변수명, 메소드명: 첫글자는 소문자 ex) payRate
    상수: 모든 글자를 대문자, 언더바로 단어 구분 ex) MAX_NUMBER
  • 카멜 케이스: 단어 첫글자를 대문자로 함. 많은 개발자가 사용하나, 대소문자 구분 언어(ex) Java)에서만 사용.
  • 스네이크 케이스: 단어 끝마다 _언더바 사용. 대소문자 구분x 언어에서 주로 사용.
  • (이름만 봐도 무엇인지 알 수 있도록) 이름에는 의미를 부여해야 한다. (<- 사람이 읽기 편한 코드 만들기!)
  • 상수Constant : 값을 바꿀 수 없음
  1. 리터럴 (이름이 없어서 바꿀 수 없음) ex) 1, 2, 3, 4, 5...
  2. final (개발자가 임의로 설정하는 것)(이름으로 재사용 가능) ex) final int NUM = 4;
profile
welcome

0개의 댓글