수정 사항을 Git Repository에 마지막 저장된 내용으로 되돌리는 것
(마지막으로 pull을 받기 전 초기 상태라고 생각하면 편할것입니다.)
public class Main {
public static void main(String[] args) {
/**
* int 타입의 number 변수에 10을 "대입" 하면서 "초기화" 해라
* String 타입의 s1 변수에 신재원을 "대입" 하면서 "초기화" 해라
*/
int number = 10;
String s1 = "신재원";
String s2 = "신재원";
String s3 = new String("신재원");
System.out.println(s1 == s2);
System.out.println(s2 == s3);
}
}
실행결과
true
false
s1 == s2 는 true, s2 == s3 는 false인 이유는 ?
s1 == s2가 true인 이유는, Java에서 String 리터럴(literal)은 같은 값을 가진 경우 동일한 객체를 참조합니다.- 따라서, "신재원"이라는 리터럴은 프로그램 실행 도중 한 번만 생성되고, s1과 s2는 모두 이 리터럴을 참조하게 됩니다.
- 즉, s1과 s2가 같은 객체를 참조하므로
s1 == s2는 true가 됩니다.
반면, s2와 s3는 서로 다른 객체를 참조합니다. s3은 new 연산자로 생성된 새로운 String 객체이기 때문입니다.
그러므로,s2 == s3는 false가 됩니다.
String은 비교할경우 정수처럼==비교가 아닌equals를 사용하여 비교 해줘야합니다.
equals두 객체의 단순 문자열을 비교합니다.==비교는 객체에서 사용할경우, 주소값을 비교하게됩니다.new연산자를 사용할경우 다른 메모리 영역에 저장된다고 생각하면 편할것 같습니다.
(그러므로==의 결과가false가 나오는것입니다)
int 는 소수점 아래를 반올림 하지않고 정수부분만 반환합니다.public class Main {
public static void main(String[] args) {
System.out.println((int) 1.1); // 1
System.out.println((int) 1.2); // 1
System.out.println((int) 1.3); // 1
System.out.println((int) 1.4); // 1
System.out.println((int) 1.5); // 1
System.out.println((int) 1.6); // 1
System.out.println((int) 1.7); // 1
System.out.println((int) 1.8); // 1
System.out.println((int) 1.9); // 1
}
}
float 는 1234567 이라는 7자리는 float 를사용하면 오차없이 표현이 가능합니다. public class Main {
public static void main(String[] args) {
System.out.println(1234567.0f); // 1234567.0
System.out.println(12345.67f); // 12345.67
System.out.println(123.4567f); // 123.4567
System.out.println(1.234567f); // 1.234567
System.out.println(0.01234567f); // 0.01234567
}
}
float (f)를 사용할경우 7자리가 넘어가면 출력 정밀도가 떨어집니다. 이 같은 경우에는 float 대신 double를 사용해야됩니다. public class Main {
public static void main(String[] args) {
System.out.println(91234567.0f); // 9.1234568E7
System.out.println(912345.67f); // 912345.7
System.out.println(9123.4567f); // 9123.457
System.out.println(91.234567f); // 91.234566
System.out.println(0.91234567f); // 0.91234565
}
}
double 는 float와 다르게 대략 15자리의 정밀도를 가지고 있습니다. 하지만 float보다 메모리를 많이 사용함으로, 적절하게 사용해야됩니다.double 타입은 float 타입 보다 느리게 처리됩니다.)Integer.parseInt(값); : 값을 int 타입으로 변환해주는것이다.public class Main {
public static void main(String[] args) {
System.out.println(1 + "12"); // 112
System.out.println(1 + Integer.parseInt("12")); // 13
}
}
Integer.parseInt();
Long.parseLong();
Float.parseFloat();
Double.parseDouble();
boolean : true, false를 나타내는 타입 입니다.true 와 false 에 따라 조건문을 작성할수 있습니다.boolean 타입의 변수명 짓기is~로 시작합니다.isValidationpublic class Main {
public static void main(String[] args) {
int number = 1;
boolean isNumberOneCheck = false;
if (number == 1) {
isNumberOneCheck = true;
}
System.out.println(isNumberOneCheck); // true
}
}