본문 바로가기

JAVA/Java Study22

[Java] 자바 난수(랜덤 숫자) 생성 : Math, Random 자바에서 난수를 생성하는 방법은 Math 클래스를 활용하는 방법과 Random 클래스를 활용하는 방법 두 가지가 있다. 두 방법의 차이점은 Math.random() 메소드는 0.0에서 1.0 사이의 double 난수를 얻는데 사용하지만, Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있다는 점이다. 또, Math.random()은 종자값(seed)가 현재시간으로 고정인 반면, Random 클래스는 종자값(seed)를 설정할 수 있다. 종자값 : 난수를 만드는 알고리즘에 사용되는 값, 종자값이 같으면 같은 난수를 얻는다. Math.random() public class RandomExample { public static void main(String[].. 2024. 1. 15.
[Java] 아스키 코드 아스키코드 (ASCII) 아스키코드는 American Standard Code for Information Interchange의 약자로서 ASCII라고 불린다. 또한 ANSI에서 만든 표준 코드체계이다 아스키는 각 문자를 7비트로 표현하므로 2^7 = 128개의 문자를 표현할 수 있다. 하단 표를 보면 0~127까지 각각의 숫자에 대응되는 값들이 표현되어 있다. 컴퓨터는 문자를 문자로 기억하지 않는다. 그 대신 숫자로 기억하고 표현한다. 예를 들면 문자 'A'는 65로, 'B'는 66으로 표현한다. 아스키 코드에는 인쇄가 불가능한 33개의 제어문자 코드와 95개의 인쇄가 가능한 문자 코드가 있다. 제어 문자 코드는 0부터 31까지 차지하며, 스페이스 문자부터 인쇄가 가능한 코드이다. 스페이스 문자는 3.. 2024. 1. 11.
[Java] StringBuffer 개념과 사용법 String 클래스는 immutable(불변) 불변성을 가졌기 때문에 String 객체를 변경 시, 실제로 변경되는 것이 아닌 새로운 String 객체를 생성한다. 즉, 지정된 문자열을 변경할 수 없다. 반면 StringBuffer 클래스는 mutable(가변) 가변성을 가져, 동일산 객체 내에서 문자열 변경이 가능하다. StringBuffer/StringBuilder 클래스의 차이점 StringBuffer는 멀티쓰레드에 안전하도록 동기화되어 있다. 그래서 멀티쓰레드로 작성된 프로그램이 아닌 경우, StringBuffer의 동기화는 불필요하게 성능만 떨어트리게 된다. 그래서 StringBuffer에서 쓰레드의 동기화만 뺀 StringBuilder가 추가되었다. StringBuilder는 StringBuf.. 2024. 1. 11.
[Java] throw와 throws는 언제 사용하는 것일까? throw 자바에서 예외처리를 하면 throw와 throws 예약어를 자주 접하게 된다. throw는 아래처럼 사용된다. throw의 경우 개발자가 의도적으로 예외를 발생시키는 것이다. throw라는 키워드를 이용하여 주로 비즈니스 로직을 구현하는 과정 중 컴파일에는 문제가 없지만 해당 비즈니스 로직이 개발자가 의도한 대로 통과하지 못했을 경우, 고의로 예외를 발생시켜야 할 때 사용한다. public void validate(String name) { if (name.isBlank()) throw new IllegalArgumentException(); } 하지만 메서드 시그니처에 사용되는 throws는 어떤 곳에서는 사용되고, 또 어떤 곳에서는 사용되지 않는다. throws는 언제 사용하는 것일까? t.. 2024. 1. 9.
[Java의 정석 - 기초편] 8. 예외처리 (exception handling) 1. 예외처리 (exception handling) 1.1 프로그램 오류 컴파일 에러(compile-time error)와 런타임 에러(runtime error) 컴파일 에러 : 컴파일할 때 발생하는 에러 런타임 에러 : 실행할 때 발생하는 에러 논리적 에러 : 의도와 다르게 동작 (실행 시) Java의 런타임 에러 - 에러(error)와 예외(exception) 에러(error) : 프로그램 코드에 의해서 수습되 수 없는 심각한 오류 예외(exception) : 프로그램 코드에 의해 수습될 수 있는 다소 미약한 오류 1.2 예외처리의 정의와 목적 에러(error)는 어쩔 수 없지만, 예외(exception)는 처리해야 한다. 예외처리의 정의와 목적 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생.. 2024. 1. 9.
[Java] java.util.IllegalFormatConversionException: d != java.lang.String 에러 원인 문자열 형식이 잘못되었을 때 생기는 에러이다. String s = String.format("%d = 정수", "10"); %d 는 정수형을 넣어야하지만 "10"은 String이다. 이럴 때 발생한다. 해결 적절한 형식으로 지정해주어야 한다. String s = String.format("%d = 정수", 10); 참고 [Java] String.format을 이용한 문자열 형식 설정하기 public static String format(String format, Object... args); public static String format(Locale l, String format, Object... args); String의 static 메서드인 format 메서드는 문자열의 형식을 설정하는 메.. 2024. 1. 9.