본 게시글은 대학 전공수업을 들으며 노션에 정리한 내용을 블로그로 옮긴 것으로, 에디터 차이로 인해 일부 수식, 서식, 내용 등이 빠져 있을 수 있습니다.
노션 웹을 통해 최적화된 형태로 읽으시길 권해드립니다.(➡️ 노션 링크)
변수와 자료형
변수의 종류
데이터필드
- 인스턴스 변수 : non-static 필드 -> 개별 객체가 소유
- 클래스 변수 : static 필드 -> 동종 객체간 공유하는 변수(정적)
전역변수 : 클래스 내에서 선언된 변수
파라미터 : 메소드 호출 시 전달하는 값을 저장하기 위한 변수
지역변수
- 블록 내에서 선언된 변수, 블록이 종료될 때 까지 유효함
- 초기값을 지정한 후 사용해야함
- 접근 제어자 사용x
데이터 필드(인스턴스 변수 or 클래스 변수)
- 선언된 클래스 내부에서 사용
- 클래스 외부에서 사용여부 → 접근제어자(access modifier)에 따라 다름
기본자료형 종류
- 정수형 : byte, short, int, long
- 실수형 : float, double
- 문자형 : char
- 논리형 : boolean
위 값들은 저장 공간에 값을 저장함.
리터럴
상수
한번 할당되면 변경할 수 없는 변수
final int nConst = 3;
리터럴
소스코드에서 입력한 데이터 값
‣
코드 예시
```java
public class DataType {
public static void main(String[] args) {
//리터럴 상수
final int nConst = 3;
//리터럴 정수
byte bNum = 10;
short sNum = 10;
int nNum = 10;
long lNum = 10L;
//리터럴 실수
float fNum = 3.14f;
double dNum = 3.14;
//리터럴 문자
char cChar = 'A';
System.out.println(cChar);
System.out.println((char) 65);
//리터럴 논리값
boolean bFlag = true;
System.out.println(bFlag);
//리터럴 문자열
String szMsg = "Hello, Java!";
//리터럴 null
Object obj = null;
System.out.println(obj);
}
}
```
참조형
- 기본형을 제외한 모든 자료형
- 참조형 변수는 객체를 가르키는 변수!
- 클래스, 배열, 인터페이스, 열거형 등.
‣
코드예시
```java
package lecture02;
public class ReferenceDataType {
public static void main(String[] args) {
//참조 자료형
//참조 자료형은 객체의 주소를 저장하는 자료형이다.
//배열
String str = "abc";
String str2 = new String("abc");
System.out.println(str == str2); //false
System.out.println(str.equals(str2)); //true
int[] aNum = new int[3];
System.out.println("aNum = " + aNum); //[I@15db9742
System.out.println(aNum.getClass().getName()); //[I
System.out.println(aNum.getClass().getSimpleName()); //int[]
System.out.println(aNum.getClass().getSuperclass().getName()); //java.lang.Object
}
}
```
형변환
‣
코드예시
```java
package lecture02;
public class Casting {
public static void main(String[] args) {
//형 변환 (Casting)
//implicit type conversion
//묵시적 형 변환 or 자동 형 변환 : 작은 타입에서 큰 타입으로
//byte -> short -> int -> long -> float -> double
//char -> int -> long -> float -> double
//boolean -> int -> long -> float -> double
int numInt = 10;
double d = numInt;
System.out.println("j=" + d); //정수가 실수로 자동 형 변환
//explicit type conversion
//명시적 형 변환 or 강제 형 변환 : 큰 타입에서 작은 타입으로
double res = Math.sqrt(2);
System.out.println("res = " + res);
float f = (float) res;
System.out.println("f = " + f); //자료 손실 발생
}
}
```
연산자
강의에선 생략
문장의 종류
- 수식문
- 변수 선언문
- 제어문
- 실행 흐름을 바꿈!
- 선택문 : if, switch
- if문 : if(boolean-수식) {문장}
- if-else문 : if(boolean-수식) {문장} else {문장}
- switch문 : 다중 선택 구조. case의 조건은 정수 or string
- 코드
switch (n) {
case 10:
System.out.println("10입니다.");
break;
case 20:
case 30:
System.out.println("20이거나 30입니다.");
break;
default:
System.out.println("모르겠습니다.");
break;
- default는 어떤 case에도 해당되지 않는 경우(생략가능)
- 반복문 : for, while, do-while
- 향상된 for문(for-each문) : 배열 또는 컬렉션 원소를 차례로 다룰 때
- 점프문
- return : 값을 반환
- break : 가장 가까운 switch 및 반복문의 실행을 끝냄.
- continue : 반복문 안에서 다음 반복으로 즉시 넘어감.
- break와 continue는 레이블을 사용할 수 있음!
- <summary>코드 예시</summary>
public class LabelEx {
public static void main(String[] args) {
outerLoop:
for (int i = 1; i <= 3; i++) {
innerLoop:
for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
// 특정 조건에서 레이블을 사용하여 바깥쪽 반복문을 종료
break outerLoop;
}
if (i == 1 && j == 1) {
// 특정 조건에서 레이블을 사용하여 내부 반복문의 이번 반복을 건너뜀
continue innerLoop;
}
System.out.println("i = " + i + ", j = " + j);
}
}
}
}
- 블록문 : ‘ {} ’ : 중괄호로 묶은것
- 레이블문 : 레이블 : 문장
- 예외처리문 : try-catch
- 동기화문 : synchronized 블록문
'Back-End > Java' 카테고리의 다른 글
(전공정리) 5강 - 추상 클래스, 인터페이스, 다형성, enum, 익명클래스, 중첩클래스 (0) | 2024.06.22 |
---|---|
(전공 정리)4강 - static, final, 오버로딩/오버라이딩, 상속, this, super, 메소드체이닝 (0) | 2024.06.22 |
(전공 정리) 3강 - 배열, String, Scanner, 클래스, 접근제어자, 생성자 (0) | 2024.06.22 |
자바 Servlet 기초 예제(doGet : 데이터 조회) (0) | 2023.08.31 |
JDBC 사용하기(Java + MySQL) 쿼리날려보자! (0) | 2023.07.27 |
mySQL과 Java 연결하기(JDBC 라이브러리) (0) | 2023.07.26 |