StringBuilder
싱글쓰레드 : 한번에 1개 작업
멀티쓰레드 : 한번여 n개 작업 (데이터공유- 동기화(데이터보호))
규칙
1. StringBuilder동기화 처리 되어있지 않음. (StringBuffer는 동기화 되어있다. 멀티쓰레드에 안전)
2. 멀티쓰레드 프로그램이 아닌경우, 동기화 불필요 (성능저하)
ㄴ 이럴땐 StringBuffer대신StringBuilder를 사용하면 성능향상

Math클래스
규칙
1. 수학관련 static메서드의 집합


메서드 & 설명 | 예제 | 결과 | |
1 | static double abs(double a) static float abs(float f) static int abs(int f) static int abs(long f) 주어진 값의 절대값을 반환한다.(abs: absolute) |
int i = Math.abs(-10); doulbe d = Math.abs(-10.0) |
i = 10 d = 10.0 |
2 | static double ceil(double a) 주어진 값을 올림하여 반환한다. |
double d = Math.ceil(10.1); double d2 = Math.ceil(-10.1); double d3 = Math.ceil(10.000015); |
d = 11 d2 = -10 d3 = 11 |
3 | static double floor(double a) 주어진 값을 버림하여 반환한다. |
double d = Math.floor(10.8); double d2 = Math.fllor(-10.8); |
d = 10 d2 = -11 |
4 | static double max(double a, double b) static float max(float a, float b) static int max(int a, int b) 주어진 두 값을 비교하여 큰 쪽 반환 |
double d = Math.max(9.5, 9.50001); int i = Math.max(0, -1); |
d = 9.50001 i = 0 |
5 | static double min(double a, double b) static float min(float a, float b) static int min(int a, int b) static long min(longa, long b) 주어진 두 값을 비교하여 작은 쪽을 반환 |
double d = Math.max(9.5, 9.50001); int i = Math.max(0, -1); |
d = 9 i = -1 |
메서드 & 설명 | 예제 | 결과 | |
1 | static double random() 0.0~1.0범위의 임의의 double값을 반환한다. (1.0은 포함되지 않는다.) |
double d = Math.random(); int i = (int)(Math.random()*10)+1 |
0.0 <= d <1 1 <= i < 11 |
2 | static double rint(double a) 짝수 반올림 ( 소수점첫자리에서 반올림하여, 반올림 결과가 짝수시만 반올림, 아니면 내림 ) round even 더정확 주어진 double값과 가장 가까운 정수값을 double형으로 반환한다. 단, 두 정수의 정가운데 있는 값 (1.5, 2.5, 3.5 등)은 짝수를 반환. |
double d = Math.rint(1.2); double d2 = Math.rint(2.6); double d3 = Math.rint(3.5); double d4 = Math.rint(4.5); |
d = 1.0 d2 = 3.0 d3 = 4.0 d4 = 4.0 |
3 | static long round(double a) static long round(float a) 소수점 첫째자리에서 반올림한 정수값(long)을 반환한다. 두 정수의 정가운데있는 값은 항상 큰 정수를 반환.(rint()의 결과와 비교) |
long l = Math.round(1.2); long l2 = Math.round(2.6); long l3 = Math.round(3.5); long l4 = Math.round(4.5); double k = 90.7552; double k2 = Math.round(k*100)/100.0; |
l = 1 l2 = 3 l3 = 4 l4 = 5 k = 90.7552 k2 = 90.76 |
래퍼클래스(wrapper) 클래스
규칙
1. 기본형(8개)을 객체로 다뤄야할 때 사용하는 클래스. ( 감쌀 때 )
기본형 | 래퍼클래스 | 생성자 | 예시 | |
1 | boolean | Boolean | Boolean(boolean value); Boolean(String s); |
Boolean b = new Boolean(true); Boolean b2 = new Boolean("true"); |
2 | char | Character | Character(char vlaue) | Character c = new Character('a'); |
3 | byte | Byte | Byte(byte value) Byte(String s) |
Byte b = new Byte(10); Byte b2 = new Byte("10"); |
4 | short | Short | Short(short value) Short(String s) |
Short s = new Short(10); Short s2 = new Short("10"); |
5 | int | Integer | Integer(int value) Integer(String s) |
Integer i = new Integer(100); Integer i2 = new Integer("100"); |
6 | long | Long | Long(long value) Long(String s) |
Long l = new Long(100); Long l2 = new Long("100"); |
7 | float | Float | Float(double value) Float(float value) Float(String s) |
Float f = new Float(1.0); Float f2 = new Float(1.0f); Float f3 = new Float("1.0f"); |
8 | double | Double | Double(double value) Double(String s) |
Double d = new Double(1.0); Double d2 = new Double("1.0"); |
Number클래스


문자열을 숫자로 변환하기

※ 래퍼클래스 → 문자열 = toString 사용
n진법의 문자열을 숫자로 변환하는 방법
// n진법의 문자열을 숫자로 변환하는 방법
//"@"을 'n' 진수로 해석하면?
int k1 = Integer.parseInt("100",2); // 100(2) = 4
int k2 = Integer.parseInt("100",8); // 100(8) = 64
int k3 = Integer.parseInt("100",16); // 100(16) = 256
int k4 = Integer.parseInt("FF",16); // FF(16) = 255
오토박싱 & 언박싱
규칙
1. 오토박싱이란, int (기본형) → Integer(래퍼클래스) 자동으로 바꿔주는걸 말함.
2. 언박싱이란, Integer(래퍼클래스) → int (기본형) 자동으로 바꿔주는걸 말함.
3. 자바의 원칙이 바뀐게아니라, 프로그래머가 쉽게 개발할수 있게 자동으로 컴파일러가 코드를 추가해주는 것.
( 기본형과 참조형간의 자동형변환)
※ JDK 1.5 이전에는 기본형과 참조형간의 연산이 불가능했음.




출처 : 남궁성의 정석코딩
https://www.youtube.com/@MasterNKS
'Java의 정석' 카테고리의 다른 글
10장. 날짜와 시간 & 형식화 ( 형식화 클래스, SimpleDateFormat ) (0) | 2023.02.12 |
---|---|
10장. 날짜와 시간 & 형식화 ( Calendar클래스 ) (0) | 2023.02.12 |
9장. String.lang패키지(String클래스, StringBuffer클래스) (0) | 2023.02.11 |
9장. 유용한클래스(Object클래스, equals(), hashCode(),toString(),String클래스의 문자열비교) (0) | 2023.02.11 |
8장. 예외처리( 계층구조, try-catch 등) (0) | 2023.02.09 |