정리
1.JDK11 + eclipse2022 설치
- JDK11 설치후 환경변수 설정
JAVA_HOME=~
PATH=~
2. 자바의 데이터 종류
1) 기본형
- 수치형
- 정수형: byte ( 1byte )
short ( 2byte )
int ( 4byte ): 기본
long ( 8byte )
리터럴 표현: 10진수, 2진수(0b값), 8진수(0값), 16진수(0x값)
long 타입으로 정수값을 표현: 값L
- 실수형: float ( 4byte )
double (8byte ): 기본
리터럴 표현: 소수점 이용, 지수 표현 가능
3.14 ( 3.14D, 3.14d)==> double처리
3.14F(3.14f) ==> float 처리
- 문자형 : char( 2byte )
리터럴 표현: '' 이용, 단 하나의 문자 표현시 사용
'A', 'a', '홍'
escape문자: \t,\n, \', \", \\
* 자바언어는 하나의 문자와 여러 문자인 문자열을 구별해서 관리하다.
문자열은 참조형인 String 클래스로 관리된다.
- 논리형 : boolean ( 1btye )
리터럴 표현: true/false
2) 참조형
- 기본형 8개를 제외한 나머지 데이터
- 클래스, 인터페이스, 배열
3. 변수(variable)
1) 용도: 데이터 저장
2) 특징: 단 하나의 데이터만 저장 가능
동일한 이름으로 사용불가 ( 식별불가 )
블럭 scope를 따른다. ( 블럭({})안에서 선언된 변수는 블럭안에서만 사용 가능 )
* 자바스크립트 언어는 블럭 scope가 아니고 함수 scope를 따른다.
3) 사용방법
가. 변수선언 ( 메모리에 데이터를 저장할 영역생성, 영역의 이름을 변수로 지칭)
나. 초기화
다. 변수 사용
4) 변수 종류 3가지
가. 로컬변수(local variable)
- 메서드안에서 선언된 변수
- 생성~소멸: 메서드호출생성~메서드종료시삭제됨.
- 사용메모리: stack
- 변수선언만하고 초기화 안하면 자동으로 초기화가 안됨.
따라서 변수사용전에 반드시 초기화해야 된다. (*****)
나. 인스턴스변수(instance variable)
- 메서드밖에서 선언된 변수
- 생성~소멸: 클래스 객체생성(new키워드)~ 객체소멸시 삭제됨.
- 사용메모리: heap
- 변수선언만하고 초기화 안하면 자동으로 초기화 ( 데이터형의 기본값으로 초기화됨, 정수:0, 실수:0.0 논리:false, 참조형: null )
다. 클래스 변수 ( class variable, static variable)
- 메서드밖에서 선언된 변수 + static 키워드
- 생성~소멸: 프로그램실행시 생성 ~ 프로그램 종료시 삭제됨.
- 사용메모리: method area
- 변수선언만하고 초기화 안하면 자동으로 초기화 ( 데이터형의 기본값으로 초기화됨, 정수:0, 실수:0.0 논리:false, 참조형: null )
4. 데이터 형변환
- 개념: 한 번 정해진 데이터형이 계속 일정하지 않고 필요시 언제든지 변경될 수 있다.
- 종류
가. 묵시적 형변환( 자동형변환, promotion, up-casting)
- byte > short > int > long > float > double
- char > int
- int 보다 작은 타입의 연산결과는 int로 반환됨.
- 작은타입과 큰타입의 연산결과는 큰 타입으로 반환됨.
- 문자열과 비문자열(문자열)을 + 하면 연결이 됨.
나. 명시적 형변환( 강제형변환, type casting, down-casting )
- (데이터형)값 형변환 연산자를 사용.
- 단점은 데이터 손실이 발생될 수 있다.
5. 표준 출력
- 모니터에 출력
- 3가지
System.out.println(값); // 새로운 라인에 값을 출력
System.out.print(값); // 현재 라인에 값을 출력
System.out.printf( "포맷", 값,값2.....); // ... 가변인자, 현재 라인에 값을 출력
6. 상수( Constant )
- final 키워드 이용
- 상수는 값 변경이 불가능.
1. 표준 입력 ( standard input )
1) 개념: 키보드로 데이터를 입력 받음을 의미
2) 모니터: System.out
키보드: System.in
3) java.util.Scanner 클래스 이용해서 키보드에서 입력된 값을 얻을 수 있다.
import java.util.Scanner;
Scanner scn = new Scanner(System.in);
4) 값을 얻을 수 있는 메서드가 제공된다.
정수값: int n = scn.nextInt();
하나의 단어: String s = scn.next();
예> 키보드 입력: aaa bbb ccc
한 줄 읽기 : String s = scn.nextLine();
2. 문장 ( statements )
실행문
순차문 : 위에서 아래로 순차적으로 실행되는 문장.
거의 90% 이상 차지.
제어문 : 조건문(분기문) : 조건에 따라서 실행되는 문장이 달라진다.
단일if문, if~else문, 다중if문, switch문
반복문 : 조건에 따라서 한번 실행된 문장이 여러번 실행된다.
for문, while문, do~while문
비실행문
- 주석문 : 한줄 주석문 : //
멀티 주석문: /* */
javadoc 주석문: /** */ ==> 개발자가 만든 클래스에 대한 메뉴얼인 API문서 만들때 사용됨.
1) 조건문 ( 분기문 )
가. 단일 if 문
-용도: 조건식(true/false)에 따라서 실행여부가 결정되는 경우.
-문법:
if(조건식)문장1;
문장2; // 영향이 없음.
// {} 지정을 권장함.
if(조건식){문장1;}
문장2;
// {} 역할은 그룹핑 역할.
if(조건식){
문장1;
문장2;
}
나. if~else 문
-용도: 조건식(true/false)에 따라서 실행하는 문장이 달라지는 경우.
-문법:
if(조건식)
문장2; // 조건식이 true인 경우에 실행
else
문장3; // 조건식이 false인 경우에 실행
if(조건식){
문장2; // 조건식이 true인 경우에 실행
}else{
문장3; // 조건식이 false인 경우에 실행
}
다. 다중 if~else 문
-용도: 여러번 비교할 때 사용된다.
-문법:
if(조건식1){
문장1; // 조건? 조건식1이 true인 경우
}else if(조건식2){
문장2; // 조건? 조건식1은 false, 조건식2는 true
}else if(조건식3){
문장3; // 조건? 조건식1은 false, 조건식2는 false 조건식3는 true
}
if(조건식1){
문장1; // 조건?
}else if(조건식2){
문장2; // 조건?
}else if(조건식3){
문장3; // 조건?
}else{
문장4; // 조건? 조건식1은 false, 조건식2는 false 조건식3는 false
}
참고할만한 사이트 소개
연산자
https://tadaktadak-it.tistory.com/7
https://hongong.hanbit.co.kr/%EC%9E%90%EB%B0%94-%EA%B8%B0%EC%B4%88-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%97%B0%EC%82%B0%EC%9D%98-%EB%B0%A9%ED%96%A5%EA%B3%BC-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84/
# 자바 제어문
https://raccoonjy.tistory.com/10
############################################################################
############################################################################
참조형 데이터
교재 p177 - 배열
p128 - 객체와 클래스
'JAVA' 카테고리의 다른 글
[JAVA] Object 클래스 (0) | 2023.08.11 |
---|---|
[JAVA] 인터페이스 (0) | 2023.08.10 |
[JAVA] 추상 클래스 (0) | 2023.08.10 |
[JAVA] 다형성 (0) | 2023.08.09 |
[JAVA] 상속 (0) | 2023.08.07 |