본문 바로가기
  • 1+1=3
개발삽질/SSAFY하는 동안 기록

[SWEA] 자바 초급(1) - 2차시: 자바 프로그램 구조 및 데이터 타입

by 여스 2021. 12. 28.
반응형

주석처리방법

주석이 그냥 주석인 줄 알았는데 방법이 세가지가 따로 존재하는 이유가 있었다.

자바소스파일 작성 후 jdk에 포함된 javadoc이란 명령을 사용하면 해당 자바파일 내에서 javadoc(/** */)주석문 내에 포함된 내용과 이 클래스 내의 여러 코드들(변수, 메서드, 생성자 정보 등)에 대한 설명이 html문서로 제공됨

javadoc CommentTest.java   이케 명령어 치면

아래처럼 html문서가 생김 짱신기

 

 

식별자

클래스, 변수, 메서드에 주어지는 이름으로서, 각 요소의 식별을 가능하게 함

- 식별자 생성 규칙

1. 첫문자는 A-Z, a-z, _, $ 유니코드로 시작해야 함

2. 특수문자는 사용불가

3. 대소문자 구별, 길이 제한 없음

4. 예약어 포함할 수 있으나, 예약어만 사용할 수는 없음

5. 숫자 사용가능하나, 첫 문자에는 사용불가

 

올바른 식별자 ex) ClassName, $value, getValue, get_value

잘못된 식별자 ex) #value, user name, 3dimension, this

 

예약어

 

자바 데이터 타입과 변수

논리형

크기: 1bit

표현범위: true 또는 false 뿐임.

boolean형은 true와 false라는 두 리터럴(각 자료형에서 사용할 수 있는 데이터 값을 의미)값이 있음

int형과 boolean형은 서로 형변환 불가능(0이 false로 그외는 true로 간주 불가)

 

문자형

데이터타입: char

크기: 2byte(16bit)

표현범위: '\u0000' ~ '\uffff'

char는 정수형으로 형변환이 가능하지만 0부터 값을 갖는 비부호형(Unsigned) 값임

자바의 문자형은 16비트 유니코드 문자로 표현됨

 

정수형

부호(Singed): 

정수형 중 형을 명시하지 않으면 int형으로 기본 정의함

 

실수형

실수형 중 형을 명시하지 않으면 double이 기본형임

실수형 리터럴은 소수점과 지수로 표현됨

변수 할당과 초기화

int var; 는 변수선언임. 선언하면 메모리에 4byte가 할당됨

var = 25; 는 변수 초기화임. 25라는 값이 할당된 메모리에 저장됨.

 

변수에 값을 할당하지 않으면 자동으로 초기화가 됨(default 초기화). 단, 메서드에 선언된 변수인 지역변수는 자동으로 초기화되지 않음.

 

지역변수와 전역변수

- 지역변수:

메서드 선언부 밑에 선언된 변수

메서드 매개변수로 선언된 변수(해당 변수가 선언된 메서드 내에서만 사용가능)

 

- 전역변수:

클래스 선언부 밑에 선언된 변수(여러 메서드에서 공통으로 사용가능)

 

형변환

형변환 연산자를 사용하여 변환 함.

작은 데이터 타입 -> 큰 데이터 타입 변환: 묵시적 형변환(데이터 손시르이 우려가 없으므로 자동캐스팅)

큰 데이터 타입 -> 작은 데이터 타입 변환: 명시적 형변환(데이터 손실의 우려로 명시적 캐스팅)

 

묵시적 형변환

int형을 double형으로 자동 변환가능

int age = 25;
double avgAge = age;

위에서 둘째줄은 사실 double avgAge = (double)age; 와 같은 말임. 형변환 연산자인 (double)을 생략한 것임.

묵시적 형변환 규칙:

byte - short - int - long - float - doulbe  또는

char - int - long - float - doulbe 순. 

출력결과: 127, 44302, 44302.0 순으로 나옴

 

명시적 형변환

더 작은 범위를 나타내는 데이터 타입으로 변환되는 경우(축소 형변환.

ex) double형을 int형으로 변경시 사용

double avgAge = 23.34;
int age = (int)avgAge;

단, 데이터타입이 축소되어 변환된 후에도 해당 값을 표현할 수 있어야 한다.

 

명시적 형변환 후 다른 값을 가지게 되는 경우:

int usm = 128;
byte data = (byte)sum; //-126이 할당됨

byte 변수는 -128 ~ 127인데, 4byte로 표현된 128을 1byte로 축소하여 형변환해야 하는데 못하니까 전혀 다른값인 -128이 저장됨

그외:

출력결과: 각각 -128, a, 3

 

추가문제:

반응형

댓글