자바에서 변수를 정의할 때 변수 앞에 데이터타입을 입력해야 하기 때문이다.(Scanner 함수를 통해 값을 입력 받을 때도 nextInt, nextDouble 등으로 사용된다.)
데이터타입은 말 그대로 데이터의 종류이다.
자바에서는 데이터의 종류를 알아야 코드를 작성할 수 있는데,
기본 데이터타입은 다시 4가지로 나뉜다.
을 그대로 저장하는 의미를 가진다.
float은 개발 30년차 강사님 말씀에 따르면, 잘 쓰지 않는다고 한다.
double을 자주 쓰도록 하자.
Q. char는 한글자만 써서 불편하지않냐고, String을 쓰는 것이 좋지 않냐고 질문했다.
A. 강사님은 char도 많이 쓴다고 한다. 특히 char는 2byte의 크기밖에 차지하지 않기 때문에
오히려 보안에 좋다고 말씀하셨다. 어떤 논리구조로 보안에 좋게된거지? 내일 다시물어보고 수정하겠다.
가 있다.
ex_)
double a = 1.5;
int b = a;
왜냐하면
a의 자료형이 더 큰 데이터를 가지고 있기 때문에,
값이 더 작은 int 로 정의하게된다면 데이터 손실이 발생하기 때문이다.
Java는 의도치않은 데이터 손실을 원하지 않는다.
객체의 번지를 참조 하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다.
int는 데이터 타입인 걸 알았는데, 자료를 정리하다 new는 뭐라고불러야 할까? 생각했다. 가장 마지막 문단에서 다뤄보도록 하겠다.
기본값 : 실제값을 변수에 저장
참조값 : 배열, 열거, 클래스, 인터페이스를 이용해서 메모리에 번지를 값으로 가진다. 즉 번지를 통해 객체를 참조한다는 뜻이다.
키워드를 사용하여 객체를 생성할 때, 메모리에서 해당 객체의 인스턴스를 할당하고 초기화하는 역할을 한다.
new가 쓰이는 상황 4가지
1. 객체 생성
(예를 들어,
ClassName objectName = new ClassName(); 형식으로 클래스의 인스턴스를 생성)
2. 배열 생성
(예를들어,
DataType[] arrayName = new DataType[length]; 형식으로 배열을 생성)
3. 익명 객체 생성
예를들어interface MyInterface { void doSomething(); } public class Main { public static void main(String[] args) { // MyInterface를 구현한 익명 객체 생성 MyInterface obj = new MyInterface() { @Override public void doSomething() { System.out.println("익명 객체에서 doSomething() 메서드를 재정의합니다."); } }; // 익명 객체의 메서드 호출 obj.doSomething(); } }
4. 내부 클래스 생성