String myString = "aBc";
System.out.println(myString.toUpperCase()) // 모두 대문자로
System.out.println(myString.toLowerCase()) // 모두 소문자로
System.out.println(myString)
toUpperCase는 값을 모두 대문자로 변환하는 메소드 이고
toLowerCase는 값을 모두 소문자로 변환한다.
따라서 값은 순서대로 ABC, abc,aBc가 된다.
그럼 참조형 변수 String으로 정의된 myString은 두번째 메소드 toLowerCase를 통해 값이 변경되었으니 마지막에 abc가 되어야 하는것이 아닌가?
toUpperCase와 toLowerCase는 값을 변화시키는것이 아닌 새로운 문자열을 리턴만 시켜주는 개념이기 때문에 값은 변화하지 않는다.
String myString = "aBc";
System.out.println(myString.toLowerCase() == "abc");
이 코드를 보면 양쪽 모두 "abc"이니깐 당연히 true가 나올 것 같은데
실상은 false가 나온다.
참조형인 String의 비교연산자는 가리키는 인스턴스가 같은 인스턴스인지 확인하는 역할이다.
두 인스턴스가 다른 인스턴스 이므로 당연히 false가 나오는것이다.
그럼 두 값을 비교해주려면 어떻게 해야할까?
두 인스턴스의 값을 비교하려면 ==이 아닌 메소드 equals를 이용해주어야 한다
String myString = "aBc";
System.out.println(myString.toLowerCase().equals("abc"));
이 경우 equals를 통해 인스턴스의 값을 비교해주었으므로 true가 나오게된다.
사용전에 미리 import를 시켜줘야한다.
import java.lang.Math;
public class Driver {
public static void main(String[] args) {
System.out.println(Math.abs(-10));
System.out.println(Math.abs(8));
}
}
10
8
Math.abs( )는 괄호 안의 값을 절댓값으로 만들어 출력시켜준다.
import java.lang.Math;
public class Driver {
public static void main(String[] args) {
System.out.println(Math.min(4, 10)); // 최솟값
System.out.println(Math.max(4, 10)); // 최댓값
}
}
Math.min(a,b)는 두 값 a와b중 최소값을 출력시켜준다.
반대로 Math.max(a,b)는 두 값a,b중 최댓값을 출력시켜준다.
max와 min은 반드시 두개의 값만 비교할 수 있다는것이 특징이다.
임의의 랜덤값을 받고 싶으면 Random 클래스를 import해야합니다.
또한 따로 인스턴스를 생성하여 사용해야 한다는 점이 특징이다.
import java.util.Random;
public class Driver {
public static void main(String[] args) {
Random rand = new Random();
System.out.println(rand.nextInt(10)); // 0 이상 9 이하의 랜덤한 값
}
}