private 접근 제한을 가지는 멤버는 확인할 수 없다.
java.sql은 java.base의 패키지에 없다.
Object의 toString() 메소드는 클래스명@16진수해시코드로 구성된 문자열을 리턴한다.
hashCode
equals
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student student = (Student) obj;
if (studentNum.equals(student.getStudentNum())) {
return true;
}
}
return false;
}
@Override
public int hashCode() {
return studentNum.hashCode();
}
@Override
public String toString() {
return id + ": " + name;
}
milisTime -> currentTimeMilis
public class Main {
public static void main(String[] args) {
long startTime = System.nanoTime();
int[] scores = new int[1000];
for (int i = 0; i < scores.length; i++) {
scores[i] = i;
}
int sum = 0;
for (int score : scores) {
sum += score;
}
double avg = (double) sum / scores.length;
System.out.println(avg);
System.out.println((System.nanoTime() - startTime) + " ns");
}
}
new String(bytes, "UTF-8")
public class StringBuilderExample {
public static void main(String[] args) {
String str = "";
StringBuilder sb = new StringBuilder();
for (int i=1; i<=100; i++) {
sb.append(i);
}
str = sb.toString();
System.out.println(str);
}
}
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String str = "아이디,이름,패스워드";
StringTokenizer st = new StringTokenizer(str, ",");
while(st.hasMoreTokens()) {
String token = st.nextToken();
System.out.println(token);
}
}
}
public class IntegerCompareExample {
public static void main(String[] args) {
Integer obj1 = 100;
Integer obj2 = 100;
Integer obj3 = 300;
Integer obj4 = 300;
System.out.println(obj1.equals(obj2));
System.out.println(obj3.equals(obj4));
}
}
포장 객체의 효율적인 사용을 위해 다음 범위의 값을 갖는 포장 객체는 공유된다.
이 범위의 값을 갖는 포장 객체는 ==와 != 연산자로 비교할 수 있지만, 내부 값을 비교하는 것이 아니라 객체의 주소를 비교한다는 것을 알아야 한다.
타입 | 값의 범위 |
---|---|
boolean | true, false |
char | \u0000 ~ \u007f |
byte, short, int | -128 ~ 127 |
따라서 obj1과 obj2는 같은 객체를 공유하기 때문에 == 연산자의 결과가 true이고, obj3과 obj4는 false인 것이다.
Math.round(5.7) -> 6
Random의 nextInt(int n) 메소드는 0<=...<
사이의 정수 난수를 리턴한다.
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
System.out.println(LocalDateTime.now().until(LocalDateTime.of(LocalDateTime.now().getYear(), 12, 31, 0, 0, 0), ChronoUnit.DAYS));
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
System.out.println(new SimpleDateFormat("yyyy년 MM월 dd일 E요일 HH시 mm분").format(new Date()));
}
}
"[a-zA-Z][a-zA-Z0-9]{7,11}"
Pattern.matches(regExp, id)
getResource() 메소드는 class 파일의 경로를 기준으로 리소스의 URL을 리턴한다.
value 속성과 다른 속성의 값을 동시에 주고 싶다면 value 속성 이름은 반드시 언급해야 한다.
@AnnotationName(value="*", prop=3);