본문 바로가기

Java

(29)
[Java] Wrapper Class Wrapper Class란 말 그대로 8가지의 Primitive type을 clsss로 만든 것이다. 그래서 Primitive type을 객체로 사용하고 싶을 경우 사용한다. Wrapper Class의 종류 Boolean Character Byte Short Integer Long Float Double 이름이 워낙 직관적으로 잘 되어있어서 무슨 Primitive type을 클래스로 만든 것인지 파악하기가 쉽다. 객체화 또한 똑같이 해주면 된다. 한 가지 주의할 점은 객체화를 할 때 해당 wrapper class type에 맞는 값으로 생성을 해 주어야 한다. 무슨 말이냐면 Integer I = new Integer(11.0); 과 같이 정수형 wrapper class에 실수값으로 초기화를 하지 말아야 ..
[자바] 쉬프트 연산자 쉬프트 연산자 중 모르던 게 있어서 이 기회에 한꺼번에 정리하려고 한다. 자바의 쉬프트 연산자에는 그리고 >>> 가 있다. > : 비트를 오른쪽으로 이동시킨다. 먄약 맨 왼쪽 비트가 0이었으면 0으로, 1이었으면 1로 채워진다. >>> : 비트를 오른쪽으로 이동시키고, 맨 왼쪽 비트는 무조건 0으로 채운다. 또한 >>>는 byte나 short, int, long 타입의 비트를 연산할 때 내부적으로 int로 변환해서 쉬프트 시키고 리턴한다. 따라서 int 가 아닌 다른 자료형으로 받을 경우엔 명시적 형변환을 해주어야 한다. 명시적 형 변환을 해 주면 오른쪽부터 해당 자료형의 크기만큼만 나오게 된다. 또한 최상위 비트가 0으로 채워지기 때문에 음수를 쉬프트해도 형 변환을 해 주지 않고 int로 받으면 무조건..
[JAVA] getBytes()와 String생성자로 인코딩 디코딩하기 String class에는 getBytes() 메서드를 사용해 문자열을 인코딩할 수 있다. 다만 플랫폼의 기본 charset에 없으면 변환 불가능하다. 문자열을 byte[]로 인코딩하면 디코딩할 때에도 같은 charset을 사용해 주어야 한다. 만약 다른 charset을 사용하면 외계어를 볼 수 있을 것이다. public class Test { public static void main(String[] args) throws UnsupportedEncodingException { String str = "가나다라마바사"; String decode = null; byte[] encode = null; encode = str.getBytes("UTF-8"); for (byte b : encode) { Sys..
getClass() getClass()는 Object클래스의 메서드로 자신이 속한 클래스의 Class 객체를 반환해 주는 메서드이다. Class 객체란 클래스 이름이 Class인 클래스로 만들어진 객체이며 클래스의 모든 정보를 담고 있다. (클래스당 1개만 존재한다.) 이 Class 객체는 생성자가 private로 되어 있기 때문에 우리가 사용하는 것이 아니라 javac에 의해 컴파일된 클래스 파일이 클래스 로더에 의해 메모리에 올라갈 때 자동으로 생성된다. 클래스 로더란 실행 시에 필요한 클래스를 동적으로 메모리에 로드하는 역할을 한다. 먼저 기존에 생성된 클래스 객체가 메모리에 존재하는지 확인하고 없으면 클래스 패스에 지정된 경로를 따라서 클래스 파일을 찾는다. 못 찾으면 ClassNotFoundException이 발생..