import java.util.Objects;
public class second {
public static void main(String[] args) {
num_conditional();
str_conditional();
iter();
}
public static void num_conditional() {
//숫자 데이터 조건문
int x = 170;
Objects.equals(x, 170); //원시데이터 객체는 이렇게 판별
if (x < 170) {
System.out.println("평균 이하입니다.");
} else if (x == 170) {
System.out.println("평균 입니다.");
} else {
System.out.println("평균 이상입니다.");
}
}
public static void str_conditional() {
//문자 데이터 조건문
String id = "jmj0801";
String input_id = new String("jmj0801"); //메모리에 새롭게 생성
String pw = "0801";
String input_pw = "0801";
System.out.println(input_id == id); // ==은 객체의 주소값 비교
System.out.println(input_id.equals(id));
//.equals()는 원시데이터 타입이 아닌 객체의 값 자체를 비교
if (input_id.equals(id) && input_pw.equals(pw)) {
System.out.println("로그인 되었습니다!");
} else if (input_id.equals(id) && !input_pw.equals(pw)) {
System.out.println("비밀번호를 확인해주세요!");
} else if (!input_id.equals(id) && input_pw.equals(pw)) {
System.out.println("아이디를 확인해주세요");
} else {
System.out.println("아이디와 비밀번호를 확인해 주세요");
}
}
public static void iter()
{
//배열 선언 방법1
int[] arr = new int[5];
String[] users = new String[3];
// 배열 선언 방법2
int[] arr_2 = {1,2,3,4,5};
//반복문
int i = 1;
while (i<6)
{
if(i%2==0)
System.out.println("짝수!");
else
System.out.println("홀수!");
i++;
}
for(int j=0; j<5; j++)
arr[j] = j+2;
for(int k = 0; k<arr.length; k++)
System.out.println(arr[k]);
}
}
- JAVA에는 원시타입(Primitive Type)과 참조타입(Reference Type)이 존재한다.
- 원시 타입: boolean, char, byte, int , short, long, float, double 해당 타입들은 call by value다.
- 참조 타입: String, Array, Class, File, Interface 등등.. 해당 타입들은 call by reference
- 참조타입은 메모리의 힙 영역에서 객체가 생성된다. 해당 메모리의 주소를 스택 영역에서 주소값으로 저장하고 있다.
- 객체 안의 메소드 작업이 종료되면 할당된 메모리 공간은 비워진다. 이를 행하는 게 Garbage Collector이다.
- 원시타입은 제너릭 타입에서 사용할 수 없고 Null을 담을 수 없다. 다만 원시 타입은 성능상의 이점이 있다.
- Boxing과 Unboxing으로 타입 캐스팅도 가능하지만 메모리 누수의 가능성이 존재한다.
- 참조타입에서 변수명.equlas(변수명 or 값) 은 객체끼리의 '값'을 비교한다. 따라서 문자열 비교에는. equals()를 사용.
- 참조타입에서 변수명 == 변수명은 객체사이의 '메모리상에서 주소값'을 비교한다.
- 문자열 비교에는 compareTO()라는 함수도 존재한다. 다를 경우 사전적인 순서 값도 리턴해준다.
- JAVA의 배열 선언 방법은 두 가지가 있다.
- 자료형[] 변수명 = {데이터 1, 데이터 2...}
- 자료형[] 변수명 = new 자료형[배열의 크기]
- new를 사용해서 선언할 경우 Heap영역에 객체가 만들어지고 Call by Reference를 통해서 스택으로 메모리 주소 값만 가져온다.
- 반복문과 조건문은 C언어의 그것과 크게 다르지 않다.

'Programming languages > JAVA' 카테고리의 다른 글
자바 기초 (0) | 2023.04.16 |
---|---|
5. 접근 제어자, 추상(abstract), 인터페이스 (0) | 2023.01.29 |
4. 오버로딩, 오버라이딩, 상속 (0) | 2023.01.29 |
3. 클래스, 메소드, 인스턴스, Static (0) | 2023.01.25 |
1. 변수, 주석, 형변환, 연산자 (0) | 2023.01.25 |