주석처리방법
주석이 그냥 주석인 줄 알았는데 방법이 세가지가 따로 존재하는 이유가 있었다.
자바소스파일 작성 후 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
추가문제:
'개발삽질 > SSAFY하는 동안 기록' 카테고리의 다른 글
[SWEA]자바 초급(2) - 1차시: 객체지향 핵심 원리 (0) | 2021.12.29 |
---|---|
[SWEA] 자바 초급(1) - 3차시, 4차시: 연산자, 배열, 제어문 (0) | 2021.12.29 |
[SWEA] 자바 초급(1) - 1차시: 자바언어 특징, 플랫폼 구조 (0) | 2021.12.28 |
[SWEA] 프로그래밍과 논리/수학 - 1차시 (2) | 2021.12.28 |
ssafy 7기 최종합격 (0) | 2021.12.22 |
댓글