일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오버로딩
- 오버라이딩
- 논리 연산자
- spring 게시판 삭제
- 예약어
- SQL
- 친절한 SQL 튜닝
- 식별자
- StringBuffer
- 객체지향
- 상속
- 연산자
- SQL 튜닝
- 반복문
- 배열
- 인텔리제이 Web 애플리케이션
- SQL튜닝
- java
- 친절한 SQL
- 비교 연산자
- 자바의정석
- 스프링시큐리티 로그아웃
- 산술 연산자
- 이클립스 설치
- 함수
- SpringSecurity 로그인
- join
- SpringSecurity 로그아웃
- @PreAuthorize("isAuthenticated()")
- 객체
- Today
- Total
gi_dor
[Java] CH9 java.lang패키지와 클래스 본문
1. Object클래스
모든클래스의 최고 조상이기 때문에 Object클래스의 멤버들은 모든 클래스에서 바로 사용이 가능하다
Object클래스는 멤버변수는 없고 오직 11개의 메서드만 가지고있다.
// 대표 메서드
protected Object clone() // 객체 자신의 복사본을 반환
public boolean equals(Object obj) // 객체 자신과 객체 obj가 같은 객체인지 알려줌
public Class getClass() // 객체 자신의 클래스 정보를 담고있는 Class 인스턴스
public String toString() // 객체 자신의 정보를 문자열로
protected void finalize() // 객체가 소멸될때 가비지컬렉터에의해 자동적으로 호출
public int hahCode() // 객체 자신의 해시코드를 반환
public void notify() // 객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨운다
public void notifyAll() // 객체 자신을 사용하려고 기다리는 쓰레드를 모두 깨운다
// 13장 쓰레드
public void wait() //
public void wait( long timeout)
public void wait( long timeout , int nanos )
2. Object클래스의 메서드 - equals()
매개변수로 객체의 참조변수를 받아서 비교하여 boolean 값으로 알려줌
public boolean equals (Object obj) {
return (this == obj ); // Object클래스의 equals()는 주소를 비교함
}
// 서로 다른 두객체는 항상주소가 다르다
package weekend;
public class day230408_02_ch9_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Value v1 = new Value(5);
Value v2 = new Value(5);
if(v1.equals(v2))
System.out.println("v1 , v2는 같음");
else
System.out.println("v1 , v2는 다름");
}
}
class Value {
int value ;
Value (int value){ // 생성자
this.value = value;
}
// Object의 equals()를 오버라이딩해서 주소가 아닌 value를 비교
public boolean equals(Object obj) {
if(!(obj instanceof Value) ) {
return true;
}
Value v = (Value)obj;
return this.value == v.value;
// return this==obj; // 주소비교 , 서로다른 객체는 항상 false
}
}
3. equals()의 오버라이딩
인스턴스변수iv의 값을 비교하도록 equalse()를 오버라이딩 해야함
package weekend;
class Person{
long id; // 주민번호
public boolean equals (Object obj) {
if( obj instanceof Person) {
return id == ((Person)obj).id;
}else {
return false;
}
}
Person (long id ){
this.id = id;
}
}
public class day230408_03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1 = new Person(9401200000000L);
Person p2 = new Person(9401200000000L);
if(p1.equals(p2) ) {
System.out.println("p1,p2는 같다");
}else {
System.out.println("p1,p2는 다르다");
}
}
}
4. hashCode()
객체의 해시코드를 반환하는 메서드 ( 정수값, 해싱 알고리즘 ->11장 컬렉션프레임웍)
Object 클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환함
- equals() 를 오버라이딩하면 hashCode()도 오버라이딩 한다
- equals() 결과가 true인 두객체의 해시코드는 같아야 하기때문
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1.equals(str2)); // true
System.out.println(str1.hashCode() ); // 96354
System.out.println(str2.hashCode() ); //96354
System.indetityHashCode(Object obj)는 Object클래스의 hashCode()와 동일
System.out.println(System.identityHashCode(str1)); // 3526198
System.out.println(System.identityHashCode(str2)); // 7699183
5. toString () , toString 오버라이딩
toString() - 객체를 문자열'String' 으로 변환하기 위한 메서드
public String toString() { // Object 클래스의 toString
return getClass().getNAme()+"@"+Integer.toHExString(hashCode() );
// 설계도 객체 . 클래스 이름 . 위치. 16진수로 문자열로 바꿔서 . 객체주소로 반환
}
package weekend;
import java.util.*;
class Card1 {
String kind;
int number;
Card1(){
this("SPADE",1);
}
Card1(String kind , int number){
this.kind = kind;
this.number = number;
}
// Object 클래스 toString() 오버라이딩
public String toString() {
return "Kind : "+kind+ " , number : "+number;
}
}
public class day230408_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 예제 9-4 toString()
Card1 c1 = new Card1();
Card1 c2 = new Card1("HEART",7);
System.out.println(c1.equals(c2));
System.out.println(c1.toString());
System.out.println(c2.toString());
}
}
String 클래스
- String클래스 = 데이터(char[ ] ) + 메서드 (문자열 관련)
- 내용을 변경할수 없는 불변 (immutable)클래스
String 인스턴스가 갖고있는 문자열은 읽어 올수있고 , 변경 할수는 없다 , 불변 클래스 (immutable) not change
ex) ' + ' 연산자를 이용해서 문자열을 결합하는 경우 문자열이 바뀌는것이 아니라
새로운 문자열이 담긴 String 인스턴스가 생성되는것
String a ="a";
String b = "b";
a = a+b;
문자열 간의 결합 , 추출 등 문자열을 다루는 작업이 많이 필요할 경우 String클래스 대신 StringBuffer클래스를 사용
문자열의(String) 비교
- 문자열 리터럴을 지정하는 방법 // "abc"
- String 클래스의 생성자를 사용해서 만드는 방법 // String str = new String("abc");
String str1 = "abc"; // 문자열 리터럴"abc"의 주소가 str1에 저장됨
String str2 = "abc"; // 문자열 리터럴 "abc"의 주소가 str2에 저장됨
String str3 = new String("abc"); // 새로운 String 인스턴스 생성
String str4 = new String("abc"); // 새로운 Strin g인스턴스 생성
str1 == str2 ? true
str1.equals(str2) ? true
str3 == str4 ? false
str3.equals(str4) ? true
String 클래스의 생성자를 사용할 경우 new 연산자에 의해 메모리 할당이 이루어져서
매번 새로운 String인스턴스가 생성됨
package weekend;
public class day230408_07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//기초 예제 9-6 문자열의 비교
String str1 = "abc";
String str2 = "abc";
System.out.println("String str1 = \"abc\";" );
System.out.println("String str2 = \"abc\";" );
System.out.println("str1 == str2 ? " + (str1==str2));
System.out.println("str1.equals(str2) ? "+ str1.equals(str2));
System.out.println();
String str3 = new String("abc");
String str4 = new String("abc");
System.out.println("String str3 = new String(\"abc\");");
System.out.println("String str4 = new String(\"abc\");");
System.out.println("str3 == str4 ? "+ (str3 == str4));
System.out.println("str3.equals(str4) ? " + str3.equals(str4));
}
}
빈 문자열 ( " " empty String)
내용이 없는 문자열 크기가0인 chat형 배열을 저장하는 문자열
크기가 0 인 배열을 생성하는 것은 어느 타입이나 가능
String str = ""; // str을 빈문자열로 초기화
char[] chArr = new char[0]; // 길이가 0인char 배열
int [] iArr = {} ; // 길이가 0 인 int 배열
문자(char) 와 문자열 (String)의 초기화
String s = ""; // 빈문자열로 초기화
char c = ' '; // 공백으로 초기화
// 하나의 "" 빈 문자열을 str1,str2,str3이 공유
String str1 = "";
String str2 = "";
String str3 = "";
// 빈문자열을 3개나 만들어야함 - > 메모리 낭비~
String str4 = new String("");
String str5 = new String("");
String str6 = new String("");
String 클래스의 생성자와 메서드
String (char [] value) // 주어진 문자(value)를 갖는 String인스턴스 생성
char[] c = { 'H','e','l','l','o' };
String s = new String(c); // s = "Hello"
String (StringBuffer buf) // StringBuffer 인스턴스가 갖고있는 문자열과 같은 내용의 String인스턴스 생성
char charAt(int index) // 지정된 위치(index)에 있는 문자를 알려준다 (0부터 시작)
String s = "Hello";
String n = "012345";
char c = s.charAt(1); // c = 'e';
char c2 = n.charAt(1); // c2 = '1';
int compareTo(String str) // 문자열(str)과 사전순서로 비교한다
int i = "aaa".compareTo("aaa"); // i = 0; 같으면 0
int i2 = "aaa".compareTo("bbb"); // i2 = -1; 왼쪽이 작으면 -1
int i3 = "bbb"compareTo("aaa"); // i3 = 1; 오른쪽이 작으면 1
String concat(String str) // 문자열 뒤에 덧붙인다
String s = "Hello";
String s2 = s.concat(" world"); // s2 = Hello world
boolean contains(CharSequence) // 지정된 문자열이 포함되었는지
String s = "abcdefg";
boolean b = s.contains("bc"); // b = true
bollean endsWith(String suffix) // 지전된 문자열로 끝나는지 검사
String file = "Hello txt // b = true
boolean b = file.endsWith("txt"); // b2= true
boolean equals(Object o) // 문자열 비교
String s ="Hello";
boolean b = s.equals("Hello"); // b = true
boolean b2 = s.equals("hello"); // b2 = false
boolean equalsIgnoreCase(String str) // 문자열과 String인스턴스의 대소문자 구분없이 비교
String s ="Hello";
boolean b = s.equalsIgnoreCase("HELLO"); // b = true
boolean b2 = s.equalsIgnoreCase("heLLo"); // b2 = true
int indexOf(int ch) // 문자를 주고 문자열에서 몇번째에 있는지 못찾으면 -1 로 반환
String s = "Hello";
int id1 = s.indexOf('o'); // id1 = 4
int id2 = s.indexOf('k'); // id2 = -1
int indexOf(int ch , int pos) // int pos 검색시작위치
String s = "Hello";
int id1 = s.indexOf('e',0); // id1 = 1
int id2 = s.indexOf('e',2); // id2 = -1
int indexOf(String str) // 주어진 문자열이 존재하는지 확인하여 위치 알려줌
String s = "ABCDEFG"; // index 는 0 부터시작
int id = s.indexOf("CD"); // id = 2
int lastIndex(int ch) // 지정된 문자를 오른쪽끝부터 찾음
String s = "java.lang.Object"; // java.lang.Object
int id1 = s.lastIndexOf('.'); // 뒤에서부터 앞으로 찾음 // id1 = 9
int id2 = s.indexOf('.'); // 앞에서부터 찾음 // id2 = 4
int lastIndexOf(String str) // 지정된 문자열을 문자열 끝에서부터 찾음
String s = "java.lang.Object"; // java.lang.Object
int id1 = s.lastIndexOf("java"); // id1 = 10
int id2 = s.indexOf("java"); // id2 = 0
int length() // 문자열 길이를 알려줌
String s = "Hello";
int length = s.length(); // length = 5
String substring(int vbegin)
String substring(int begin , int end)// 시작위치부터 begin 끝위치 end범위에 포함된 문자열을 얻음
// begin <= x < end
String s = "java.lang.Object";
String c = s.substring (10); // c = Object , begin ~ 끝까지
String p = s.substring(5,9); // p = lang , begin ~ 8 까지
String toLowerCase() // 모든 문자열을 소문자로 변환하여 반환
String s = "Hello";
String s1 = s.toLowerCase(); // s1 = "hello"
String toUpperCase() // 모든 문자열을 대문자로 변환하여 반환
String s = "Hello";
String s1 = s.toUpperCase(); // s1 = "HELLO"
String trim() // 문자열 왼쪽끝 , 오른쪽 끝 공백을 없애고 결과를 반환
String s = " Hello world ";
String s1 = s.trim(); // s1 = "Hello world"
static String valueOf(boolean b)
static String valueOf(char c)
static String valueOf(int i )
static String valueOf(long l )
static String valueOf(float f)
static String valueOf(double b)
static String valueOf(Object o)
// 지정된 값을 문자열로 변환하여 반환 , 참조변수일 경우 toString() 호출함
String b = String.valueOf(true) // b "true"
String c = String.valueOf('a') // c = "a"
String i = String.valueOf(100 ) // i = "100
String l = String.valueOf(100L) // l = "100"
String f = String.valueOf(10f) // f = "10.0"
String d = String.valueOf(10.0) // d = "10.0"
StringJoiner , 문자열과 기본형 변환
join()은 여러 문자열 사이에 구분자를 넣어서 결합한다
String animals = "dog,cat,bear";
String[] arr = animals.split(","); // 문자열 ','을 구분자로 나눠서 배열에 저장
String str = String.join("-", arr); // 배열의 문자열을 '-' 로 구분해서 결합
System.out.println(str); // dog-cat-bear
문자열과 기본형간의 변환
- 숫자를 문자열로 바꾸기
int i = 100; // 숫자 + ""
String str1 = i + ""; // 100을 "100"으로 변환
String str2 = String .valueOf(i);
- 문자열을 숫자로 바꾸는방법
int i = Integer.parseInt("100"); // "100"을 100 으로
int i2 = Integer.valueOf("100");
Integer i2 = Integer.valueOf("100");
StringBuffer 클래스 - 문자열을 저장 & 다루기 위한 클래스
String 처럼 문자형 배열 (char [] )을 내부적으로 가지고있음
그러나 String과(불변-변경불가) 다르게 내용을 변경할수 있다 (가변 - mutable)
StringBuffer의 생성자
- 배열의 길이는 변경불가 , 공간이 부족하다면 새로운 배열을 생성해야함
- StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크리고 생성해야함
StringBuffer의 변경
- StringBuffer는 String과 다르게 내용 변경이 가능함
StringBuffer sb = new StringBuffer("abc");
sb.append("123");
- append() 는 지정된 내용을 StringBuffer()에 추가후 , StringBuffer의 참조를 반환
StringBuffer sb2 = sb.append("zz");
System.out.println(sb); // abc123zz sb의 내용뒤에 zz를 추가
System.out.println(sb2); // abc123zz
StringBuffer sb = new StringBuffer("abc");
sb.append("123");
sb.append("zz");
StringBuffer sb = new StringBuffer("abc");
sb.append("123").append("zz");
StringBuffer의 비교
- StringBuffer는 equals() 가 오버라이딩 안되있음 (주소 비교)
StringBuffer sb = new StringBuffer("abc");
StingBuffer sb2 = new StringBuffer("abc");
System.out.println(sb==sb2); // false
System.out.printlnk(sb.equals(sb2) ); // false
- String으로 변환 후에 equalse() 로 비교 해야함
String s = sb.toString(); // sb를 String으로 변환
String s2 = sb2.toString();
System.out.println(s.equalse(s2) ); // true
StringBuffer의 생성자와 메서드
StringBuffer() // 16문자를 담을수있는 버퍼를가진 StringBuffer객체 생성
StringBuffer(int length) // 지정된 개수의 문자를 담을수있는 객체 생성
StringBuffer(String str) // 지정된 문자열 str을 갖는 객체 생성
StringBuffer sb = new StringBuffer("Oh ha yo my night");
sb = "Oh ha yo my night"
StringBuffer append(boolean b) // 매개변수로 입력된 값을 문자열로 변환해서
StringBuffer append(char c) // StringBuffer 객체가 저장하고있는 문자열뒤에 덧붙임
StringBuffer append(char[] str)
StringBuffer append(double d)
StringBuffer append(float f)
StringBuffer append(int i)
StringBuffer append(long l)
StringBuffer append(Object obj)
StringBuffer append(String str)
StringBuffer sb = new StringBuffer("abc");
StringBuffer sb 2 = sb.append(true);
sb.append('d').append(10.0f);
StringBuffer sb3 = sb.append("ABC").append(123);
// sb = "abctrued10.0ABC123"
// sb2 = "abctrued10.0ABC123"
// sb3 = "abctrued10.0ABC123"
int capacity() // StringBuffer 인스턴스의 버퍼크기를 알려줌
// length는 버퍼에담긴 문자열에 길이
StringBuffer sb = new StringBuffer(100);
sb.append("abcd");
int buffersize = sb.capacity()
int Stringsize = sb.length
// buffersize = 100
// Stringsize = 4 (버퍼에 담긴 문자열이 abcd 4개)
char charAt(int index) //지정된 위치 (index) 에 있는 문자 반환
StringBuffer sb = new StringBuffer("abc");
char c = sb.charAt(2);
// c = 'c'
StringBuffer delete(int start , int end) // 시작 위치 부터 끝사이에있는문자 제거
// 끝위치 문자는 제외
StringBuffer sb = new StringBuffer ("0123456");
StringBuffer sb2 = sb.delete(3,6); // 3 <= x <6 삭제
// sb = 0123456
// sb2 = 0126 // 문자 n개 제거
StringBuffer deleteCharAt(int index) // 지정된 위치의 문자를 제거
StringBuffer sb = new StringBuffer("0123456");
sb.deleteCharAt(3);
// sb = "012456" // 문자 1개 제거
StringBuffer insert(int pos,boolean b)
StringBuffer insert(intpos, char c)
StringBuffer insert(int pos, char[] str)
StringBuffer insert(int pos, double d)
StringBuffer insert(int pos,float f)
StringBuffer insert(int pos, int i )
StringBuffer insert(int pos, long l)
StringBuffer insert(int pos, Object obj)
StringBuffer insert(int pos , String str)
// 두번째 매개변수로 받은 값을 문자열로 변환하여 지정된 위치(pos)에 추가한다 pos는 0부터 시작
StringBuffer sb = new SringBuffer("0123456);
sb.insert(4,'.');
// sb = 01234.56
int length() // StringBuffer의 인스턴스에 저장되어있는 문자열의 길이를 반환
StringBuffer sb = new StringBuffer ("0123456");
int length = sb.length();
// length = 7
StringBuffer replace(int start , int end , String str)
// 지정된 범위 (start ~ end)의 문자들을 주어진 문자열로 바꿈
// end 위치 문자는 범위에 포함안됨
// start <= x < end
StringBuffer sb = new StringBuffer("0123456");
sb.replace(3,6,"AB");
// sb = 012AB6 , 345가 AB가됨
StringBuffer reverse()
// StringBuffer 인스터턴스에 저장되어 있는 문자열의 순서를 거꾸로 나열
StringBuffer sb = new StringBuffer("01456789");
sb.reverse();
// sb = 6543210
void setCharAt(int index, char ch)
// 지정된 문자를 주어진 문자ch로 바꿈
StringBuffer sv= new StringBuffer("0123456");
sb.setCharAr(5,'o');
// sv = 01234o6
void setLength(int newLength)
// 지정된 길이로 문자열의 길이를 변경 , 빈공간은 null
StringBuffer sb = new StringBuffer("0123456");
sb.setLength(5);
String sb2 = new StringBuffer("0123456");
sb2.setLength(10);
String str = sb2.toString().trim();
// sb = "01234"
// sb2 = "0123456 "
// str = "0123456" // trim() 양끝 빈공간 제거 해줌
String substring(int start)
String substring(int start,int end)
// 지정된 범위내의 문자열을 String으로 뽑아서 반환 from ~ to
// 시작위치 지정하면 시작위치부터 문자열 끝까지 뽑아서 반환
StringBuffer sb = new StringBuffer("012345");
String str1 = sb.substring(3); // 3 부터 끝까지
String str2 = sb.substring(3,5); // 3 <= x < 5
// str1 = 3456 , str2 = 34
StringBuilder
- StringBuffer는 동기화 되어있음 , 멀티쓰레드에 안전
- StringBuilder는 동기화 x
- 멀리 쓰레드 프로그램이 아닌경우 동기화는 불필요한 성능저하
Math클래스
- 수학관련 static 메서드 집합
public static final double E = 2.7182818284590452354
public static final double PI = 3.14159265358979323846;
- round()의 원하는 소수점 아래 세번째 자리에서 반올림하기
// 1 . 원하는 값에 100을 곱한다
90.7552 * 100 => 9075.52
// 2. 위의 결과에 Math.round() 사용
Math.round(9075.52) => 9076
// 3. 위의 결과를 다시 100.0으로 나눔
9076 / 100.0 => 90.76 (double)
9076 / 100 => 90 (int)
Math의 메서드
static double abs (double a)
static float abs (float f)
static int abs (int f )
static long abs (long f)
// 주어진 값의 절대값을 반환
// 양수 -> 양수 , 음수 -> 양수 ,
// int i = Math.abs(-10); i = 10
// double d = Math.abs (-10.0); d = 10.0
static double ceil(double a)
// 주어진 값 올림
double d = Math.ceil(10.1); d = 11
double d2 = Math.ceil(-10.1); d2 = -10
double d3 = Math.ceil(10.00015); d3 = 11.0
static double floor (double a )
// 주어진 값을 버림
double d = Math.floor(10.8); d = 10.0
double d2 = Math.floor(-10.8); d2 = -11.0
static double max (double a , double b)
static in max ( int a, int b)
// 두개 값 비교해서 큰거 반환
int i = Math.max(0,-1); // i = 0
double d = Math.max(9.5 , 9.500001); // d = 9.500001
static double min( double a, double b)
static int min ( int a, int b)
// 두개의 값 비교해서 작은쪽 반환
int i = Math.min(0,-1); // i = -1
double d = Math.min(9.5 , 9.500001); // d = 9.5
static double random()
// 0.0 ~ 1.0 범위 내의 임의의 값 반환
// 0.0 <= x < 1.0
int i = (int)(Math.random()*10)+1 // 1 <= x < 11
static double rint( double a )
// 주어진 double 값과 가장 가까운 정수값을 double 형태로 반환해줌
// 1.5 2.5 3.5 같은 값은 짝수를 반환함
double d = Math.rint(1.2); // 1.0
double d1 = Math.rint(2.6); // 3.0
double d2 = Math.rint(3.5); // 4.0
static long round (double a)
// 소수점 첫째 자리에서 반올림한 정수값을 반환
long l = Math.round(2.6); // l = 3
double d = 90.7552;
double d2 = Math.random(d*100)/ 100.0 // 90.76
래퍼 클래스 (wrrapper)
기본형 값을 감싸는 클래스
▶ 8개의 기본형을 객체로 다룰 때 쓰는 클래스
- boolean -> Boolean
- char -> Charcater
- byte -> Byte
- short -> Short
- int -> Integer
- long -> Long
- float -> Float
- double -> Double
✔ char , int 제외 하고 나머지는 대문자 사용
래퍼클래스 들은 모두 equals()가 오버라이딩 되어있어서 주소값이 아닌 객체가 가지고있는 값을 비교함
toString() 도 오버라이딩 되어있어서 객체가 가지고있는 값을 문자열로 변환하여 반환한다.
MAX_VALUE, MIN_VALUE , SIZE , BYTES , TYPE 등의 static 상수를 공통적으로 가지고있다
Number 클래스
문자열을 숫자로 변환하기
문자열을 숫자로 변환하는 방법
int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100"); // 주 사용
Integer i3 = Integer.calueOf("100");
// Integer -> int intValue()
// Long -> long longValue()
// 문자열 -> 래퍼클래스
Byte b = Byte.valueOf("100");
Integer i = Integer.valueOf("100");
// 문자열 -> 기본형
byte b = Byte.parseByte("100");
int i = Integer.parseInt("100");
오토박싱 & 언박싱
컴파일러가 자동으로 기본형과 참조형 간의 계산이 가능하도록 변환하는 코드를 넣어준다
int → Integer 오토박싱
int ← Integer 언박싱
▪ 기존에는 기본형과 참조형간의 연산이 불가능했었음
int i = 5;
Integer iObj = new Integer(7);
int sum = i + iobj; // 에러 기본형 참조형간의 덧셈 불가능 (기존버전)
int i = 5;
Integer iObj = new Integer(7);
int sum = i + iObj.intValue(); // 기본형으로 형변환
▪ 기본형의 값을 객체로 자동변환하는것을 오토박싱, 그반대는 언박싱
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10);
// 오토박싱
// 10 -> list.add(new Integer(10));
int value = list.get(10); // 언박싱
'First > Java' 카테고리의 다른 글
[Java] CH 11 컬렉션 프레임웍 (0) | 2023.06.09 |
---|---|
[Java] Comparator - compare(o1,o2) , Comparable - compareTo(o) , HashSet,TreeSet (0) | 2023.04.05 |
[Java] CH8 예외처리 (0) | 2023.04.02 |
[Java] 6장 QUIZ (0) | 2023.03.21 |
[Java] CH7 객체지향 개념 (0) | 2023.03.20 |