본문 바로가기
공부/JAVA

2021.10.29 - 국비수업 java 2일차

by 기묜몬 2021. 11. 1.

- 전날 수업 복습 / 오늘 수업 진도 정리

 

1) 명령어는 대/소문자를 구분해야한다.

2) 클래스명, 객체명은 대문자로 시작해야한다.

  ex) class Person{}

        Person p;

        String str;
-> 클래스 선언할때 소문자로 했다가 에러가 났다. 

   뭐가 잘못됐는지 한참 찾다가 힘들어서 선생님께 말씀드리니 한번에 찾아주심 ㅎㅎ...

왼쪽에 에러남.....

클래스 선언할때,

class product{ ==> 이부분 product 에서 'p'를 소문자로 썼기때문에 에러가 났다. 정말 쉬운게 하나없다..
String name;
product(String name){ //String name = "홍길동"; String name=25;(x)
this.name = name;
}
}

 

3) 정수타입 (byte, short, char, int, long)

 - 자바에서 정수연산은 기본적으로 int타입으로 처리한다. (단, 항상 양수범위를 갖는 char타입은 예외이다.

 - char : char타입에는 문자를 직접 저장할 뿐만 아니라 10진수, 16진수 정수도 저장이 가능하다.

 char C1 = 'A';

 char C2 = '65';

4) 연산자와 연산식

 - 산술연산자 : 데이터를 사칙연산자에 의해 연산 처리하는 것.

ex)

int num01 = 25;

int num02 = 5;

System.out.println(num01 + "+"+num02+"="+(num01+num02));

System.out.println(num01 + "-"+num02+ "="+(num01-num02));

System.out.println(num01 + "*"+num02+ "="+(num01*num02));

System.out.println(num01 + "/"+num02+ "="+(num01/num02));

System.out.println(num01 + "%"+num02+ "="+(num01%num02));

====>

25+5=30

25-5=20

25*5=125

25/5=5

25%5=0


 - 결과값이 실수를 필요로 할때는 피연산자가 실수로 형변환을 하거나, 해당 데이터 유형이어야 한다.

  10/(double)/ ==> 3.333

  10/3.0 ==> 3.333 (둘 중에 하나는 실수데이터여야 함.)

 - 증감연산자 

  num05++; ==> 데이터가 1씩 증가

  num05--; ==> 데이터가 1씩 감소

 - 비교연산자

  특정한 데이터를 비교연산자를 이용해서 boolean값을 결과로 처리되는것을 말함.

  논리값이 true/false가 된다.

 - 연산자의 우선순위

  ()소괄호>>> *, / (곱하기 나누기)>>> +, - (덧셈 뺄셈)

5) 조건문과 반복문

 - 조건문 :  if(조건)

ex)

int age = 28; 

    System.out.println("나이 : "+age);

    if(age>=18) {  (==>18보다 크거나 같을때.)

    System.out.println("성인입니다.");

    }else {

    System.out.println("미성년입니다.");

    }

=======>

나이 : 28

성인입니다.

 

 - 반복문 : for(초기값;반복할 조건; 증감연산자)

 ex)

  for(int cnt=30;cnt<=50;cnt++) {

    System.out.print(cnt+",");

    }

===>

30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,

print를 사용했기때문에 줄바꿈이 아닌 나열값이 나옴.

 

6) 메모리

(이부분은 이해하기 어려워서 다른 사이트에서 공부한 후 정리하는것.)
프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드가 되어야한다.

또한 프로그램에서 사용되는 변수를 저장할 메모리도 필요하다.

출처 https://junghyun100.github.io/%ED%9E%99-%EC%8A%A4%ED%83%9D%EC%B0%A8%EC%9D%B4%EC%A0%90/

 - code영역 :  메모리의 코드 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 푸른다.

 CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리함.

 

 - data영역 : 프로그램의 전역변수와 정적변수가 저장되는 영역.

 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다.

 

 - stack영역 : 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역

 스택영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.

 메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다.

 

 - heap영역 : 사용자가 직접 관리할 수 있는 메모리 영역이다.

 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.

 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다.

 

7) 배열 (array) : 같은 타입의 변수들로 이루어진 유한집합.

 - 1차원 배열 선언

  타입[] 배열이름;

  타입 배열이름[];

 - 타입은 배열 요소로 저장되는 변수의 타입을 명시한다.

 배열 이름은 배열이 선언된 후에 배열에 접근하기 위해 사용된다.

 - 위와 같이 선언된 배열은 new 키워드를 사용하여 실제 배열로 생성할 수 있다.

ex1) 배열이름 = new 타입 [배열길이];

int[] array;

array= new int[3];

array[0] = 25;

array[1] = 30;

array[2] = 40;

System.out.println("배열에 할당한 데이터 :"+array[0]);

System.out.println("배열에 할당한 데이터 :"+array[1]);

System.out.println("배열에 할당한 데이터 :"+array[2]);

======>

배열에 할당한 데이터 :25

배열에 할당한 데이터 :30

배열에 할당한 데이터 :40