Java
-
Math메서드, Round(), Rint() 비교하기Java/자바의정석 2023. 2. 22. 23:41
앞전에 Math 메서드를 공부하면서 Round,와 Rint에 대해 공부하였는데 Round는 반올림, Rint는 짝수를 반올림한다고 하였는데 코드를 보며 좀 더 자세하게 이해해보도록 하자. public class RoundTest { public static void main(String[] args) { double sum = 0; double sum1 = 0; double sum2 = 0; for (double i = 1.5; i
-
Wrapper클래스란?Java/자바의정석 2023. 2. 22. 23:41
Wrapper클래스란? 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. 기본 자료 타입 래퍼 클래스 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 기본자료타입에는 위의 표와같이 8개의 타입이있다. 래퍼클래스를 사용할때는 char, int를 제외한경우 앞글자를 대문자로 해주기만하면 끝이난다. 객체지향언어인데 모든것이 객체가 아니다? 라는 질문에 대응하기위한 클래스가 아닐까 싶다. 왜 기본형이라는 예외를 두었는지의 원인은 성능때문이라고한다. 참조형의 경우 값을 읽어올때 참조형 주소를 읽고 ..
-
자바 Math의 주요 메서드Java/자바의정석 2023. 2. 22. 23:40
Math의 주요 기능들 메서드 기능 abs 절대값 max 최대값 min 최소값 ceil 올림 floor 버림 round 반올림 rint 반올림(짝수) 이러한 기능들이 있다. 아래의 코드를 보면서 하나하나 짚어보자. 이코드는 자바의정석 Ex09_13의 예제이다. package JavaChap09; import static java.lang.Math.*; import static java.lang.System.*; class Ex9_13 { public static void main(String args[]) { double val = 90.7552; out.println("round("+ val +")="+round(val));// 반올림 val *= 100; out.println("round("+ val..
-
여러가지 StringBuffer메서드Java/자바의정석 2023. 2. 22. 23:40
StringBuffer의 메서드에는 대표적으로 무엇이있을까? 메서드 수행 tringBuffer append(boolean b) StringBuffer append(char c) StringBuffer append(char[] str) StringBuffer append(CharSequence s) StringBuffer append(double d) StringBuffer append(float f) StringBuffer append(int i) StringBuffer append(long lng) StringBuffer append(Object obj) StringBuffer append(String str) StringBuffer append(StringBuffer sb) 인수로 전달된 값을 문자열..
-
자바의정석 - StringBuffer()란?Java/자바의정석 2023. 2. 22. 23:40
StringBuffer란? 문자열을 저장,변경하는 클래스 보다싶이 아주 간단하다. 문자열을 저장하고 변경하는 클래스이다. 예시를 보면서 이해해보도록 하자. String Buffer사용 이유 - String은 불면객체 - immutable 자바에서 String은 불변객체(immutable)이다. 즉, 한번 생성되면 그 내용을 바꿀 수 없다는 뜻이다. 정확하게 말하자면 내용이 아닌 주소를 바꿀 수 없다. String str1 = "a"; String str2 = "a"; str1 = "aa"; 위의 코드를 한번 살펴보자 str1, str2와 같이 값이 같은 String은 String Pool 내에서 String 객체를 공유한다. 여기서 str1의 값을 aa로 변경한다면 String Pool내에서 새로운 주소..
-
자바 equals()와 hashcode()는 왜 같이 재정의해야하는가?Java/자바의정석 2023. 2. 22. 16:10
자바 equals()와 hashcode()는 왜 같이 재정의해야하는가? 를 알아보기전에 전에 공부했던 내용을 다시한번 확인하고 이유를 파악해보자. 해시코드란? 객체를 식별할 하나의 정수 값 Object는 클래스의 최상위 타입, Object의 hashCode() 메서드는 객체의 메모리 주소를 이용하여 해시 코드를 만들어 리턴하기 때문에 객체마다 다른 값을 가지게 된다. equals 메서드란? public boolean equals(Object obj) { return (this == obj); } 해당 코드는 Object.java 에 선언되어있는 equals 메서드이다. equals메서드의 기능은 객체의 참조변수를 받아 비교하여 그 결과를 boolean 값으로 알려주는 역할을 한다. 코드를 보면 단지 참조..
-
자바 hashCode(), identityHashCode()Java/자바의정석 2023. 2. 22. 14:38
해시코드란? 객체를 식별할 하나의 정수 값 Object는 클래스의 최상위 타입, Object의 hashCode() 메서드는 객체의 메모리 주소를 이용하여 해시 코드를 만들어 리턴하기 때문에 객체마다 다른 값을 가지게 된다. System.identityHashCode()란? System.identityHashCode()는 객체의 고유한 hashcode를 리턴하는 메소드입니다. public static native int identityHashCode(Object x); System.identityHashCode()는 역시 Object에 이미 선언되어있다. 해당 코드는 위와 같다. 객체의 주소값을 int형으로 반환시켜준다. class Ex9_3 { public static void main(String[] ..
-
자바 equals()는 대체 왜 쓰는가...?Java/자바의정석 2023. 2. 22. 14:15
equals()메서드와 hashcode() 메서드는 대체 왜 쓰는가..? 우선 equals 메서드가 무엇인지부터 알아보자. equals 메서드란? public boolean equals(Object obj) { return (this == obj); } 해당 코드는 Object.java 에 선언되어있는 equals 메서드이다. equals메서드의 기능은 객체의 참조변수를 받아 비교하여 그 결과를 boolean 값으로 알려주는 역할을 한다. 코드를 보면 단지 참조값을 비교하여 같은지 여부를 판단하여 True, False를 반환한다. equals()는 언제 사용하는가? 개발을 하다보면 참조하고 있는 주소가 다르지만 두 값을 같은 값으로 인식해야하는 경우가 있다. 그러한 경우에 equals()를 오버라이딩 해..