Java 275

[ 간단 비교 107+ ] currentTimeMillis vs nanoTime

🕓 1. System.currentTimeMillis()📌 뜻현재 시간을 1970년 1월 1일 0시(UTC)부터 경과한 밀리초(ms) 단위로 반환합니다.흔히 말하는 "현재 시각" 을 얻는 데 사용됩니다.long time = System.currentTimeMillis();System.out.println("현재 시각(ms): " + time);✅ 단위: 1밀리초 = 1,000분의 1초✅ 정확도: OS 시간 조정에 영향 받음✅ 용도: 로그 기록, 타임스탬프, 날짜 계산 등⏱️ 2. System.nanoTime()📌 뜻어떤 작업이 걸린 시간 측정용!시작 시간과 끝 시간의 차이를 비교하기 위해 쓰는 고정된 기준의 나노초(nanosecond) 단위 시간입니다.long start = System.nanoTi..

Java/자바 정리 2025.05.14

107. 코드 실행 시간 측정하기 – System.nanoTime()으로 정밀하게

이번 글에서는 자바에서 제공하는 System.nanoTime()을 사용해 코드가 실제로 얼마나 실행되었는지 측정하는 방법을 배웁니다.밀리초(ms)보다 더 정밀한 나노초(ns) 단위 측정이 가능하기 때문에, 성능 비교나 반복문 최적화 확인 등에서 매우 유용하게 사용됩니다.📌 예제 코드public class MeasureRunTimeExample { public static void main(String[] args) { long time = System.nanoTime(); // 시작 시간 기록 double runtime; int sum = 0; for (int i = 1; i 💻 실행 결과 (실행 환경에 따라 달라짐)1~10000000 의 합 ..

Java/자바 정리 2025.05.14

106. 키보드 입력으로 속도 조절! – System.in.read() 실습

이번 강의에서는 System.in.read() 메서드를 사용해 키보드에서 한 글자씩 입력을 받아 프로그램 흐름을 제어하는 방법을 배웁니다.입력된 숫자에 따라 속도를 증가하거나 감소시키고, 특정 키를 입력하면 반복을 종료하는 단순한 텍스트 메뉴 시스템을 만들어보겠습니다.📌 예제 코드public class InExample { public static void main(String[] args) throws Exception { int speed = 0, keyCode = 0; while (true) { if (keyCode != 13 && keyCode != 10) { // Enter 키(줄바꿈)는 무시 if (keyCode ..

Java/자바 정리 2025.05.14

105. 에러 메시지는 따로 출력하자 – System.err 사용법

이번 글에서는 try-catch 블록으로 예외를 처리하면서,일반 출력과 오류 출력을 구분하는 방법으로 System.err를 사용하는 방법을 배웁니다.System.out은 일반 출력용, System.err는 에러 전용 출력 스트림으로, 콘솔에서 빨간 글씨로 출력되는 경우도 많아디버깅과 로그 관리 시 매우 유용합니다.📌 예제 코드package ch12.sec03;public class ErrExample { public static void main(String[] args) { try { int v = Integer.parseInt("1oo"); // 알파벳 'o' 때문에 예외 발생 } catch (Exception e) { Syst..

Java/자바 정리 2025.05.14

104. 진짜 데이터 전용 클래스 – record로 더 간결하게

이번 글에서는 자바에서 불변 데이터 객체를 간편하게 정의할 수 있는 record 키워드를 배워봅니다.record를 사용하면 생성자, getter, toString(), equals(), hashCode()를 자동으로 생성해주기 때문에클래스 선언이 매우 간결해지고 코드 관리도 쉬워집니다.📌 예제 코드package ch12.sec03.record;// id, name, age를 갖는 불변 데이터 객체 정의public record Member(String id, String name, int age) {}package ch12.sec03.record;public class RecordExample { public static void main(String[] args) { Member m ..

Java/자바 정리 2025.05.14

103. 객체를 문자열처럼 출력하려면? – toString() 메서드 재정의

이번 글에서는 Object 클래스의 대표적인 메서드 중 하나인 toString()을 재정의하여,객체의 정보를 사람이 읽기 쉬운 문자열 형태로 표현하는 방법을 배워봅니다.System.out.println(객체)처럼 객체를 출력할 때 내부적으로 toString()이 자동 호출된다는 사실도 함께 확인합니다.📌 예제 코드package ch12.sec03;public class SmartPhone { private String company, os; public SmartPhone(String company, String os) { this.company = company; this.os = os; } @Override public String toString..

Java/자바 정리 2025.05.14

[ 20일차 92~102 ] 수업 정리 - 자바

✅ 오전 수업: 예외 처리(Exception Handling)📌 1. 기본적인 예외 처리 흐름예외 발생 시 프로그램 중단 방지try { // 예외 발생 가능 코드} catch (예외클래스 e) { // 예외 처리 코드}📌 2. NullPointerException 처리printLength(null);// → try-catch로 안전하게 처리📌 3. Class.forName() 사용 시 ClassNotFoundException 처리try { Class.forName("java.lang.String2");} catch (ClassNotFoundException e) { e.printStackTrace();}📌 4. 다중 catch & 다형성 처리다양한 예외 유형을 별도로 처리하거..

국비 2025.05.13

102. HashSet이 중복을 막는 진짜 원리 – equals()와 hashCode() 실전 확인

이번 글에서는 HashSet 컬렉션에 객체를 저장할 때, equals()와 hashCode()의 재정의 여부가 어떻게 중복 판단에 영향을 주는지를 실습합니다.이전 강의에서 만든 Student 클래스를 기반으로, 동등한 객체는 중복 저장되지 않는다는 HashSet의 특징을 확인합니다.📌 예제 코드package ch12.sec03;import java.util.HashSet;public class HashSetExample { public static void main(String[] args) { HashSet hashSet = new HashSet(); // Student 타입 객체들을 저장 Student s1 = new Student(1, "홍길동"); h..

Java/자바 정리 2025.05.13

101. hashCode()와 equals()는 짝꿍이다 – 동등 객체 비교의 원칙

이번 글에서는 객체가 논리적으로 같은지 판단하는 기준을 완성하기 위해,equals()와 함께 hashCode()도 재정의하는 방법을 배웁니다.두 객체가 내용이 같다면 해시코드도 같아야 한다는 규칙이 있기 때문에, 둘은 항상 함께 재정의해야 합니다.📌 예제 코드package ch12.sec03;public class Student { private int no; private String name; public Student(int no, String name) { this.setNo(no); this.setName(name); } public int getNo() { return no; } public void setNo(int..

Java/자바 정리 2025.05.13

100. 객체 비교의 기준을 내 마음대로! – equals() 메서드 재정의

이번 글에서는 Object 클래스의 equals() 메서드를 재정의하여, 두 객체가 동등한지 판단하는 기준을 직접 설정하는 방법을 배웁니다.기본 equals()는 참조값(주소값) 비교이지만,우리가 원하는 대로 내부 값이 같으면 같은 객체로 간주하도록 만들 수 있습니다.📌 예제 코드public class Member { public String id; public Member(String id) { this.id = id; } @Override public boolean equals(Object obj) { if (obj instanceof Member target) if (id.equals(target.id)) // 문자열 id ..

Java/자바 정리 2025.05.13
반응형