[Java] String 클래스
·
TIL/Java
기본형을 통해서는 연속된 문자인 문자열을 어떻게 다루어야 할까?char는 문자 하나 밖에 저장하지 못하므로 문자열을 저장하기 위해서는 char[]를 선언해서 연달아 저장해주어야 한다public class StringMain{ public static void main(String[] args) { char[] charArr = {'H','e','l','l','o'}; System.out.println(charArr); } }// 실행결과// Hello그렇지만 개발할 때 문자열은 굉장히 많이 사용되는 자료형이며 매번 배열을 통해서 문자열을 다루기란 쉽지 않다.따라서 자바에서는 String 클래스를 제공해서 문자열을 쉽게 다루도록 돕고 있다 String을 통해 문자열을 생성..
[Java] 불변 객체
·
TIL/Java
기본형, 그리고 참조형의 공유자바의 데이터 타입은 크게 기본형과 참조형으로 나눌 수 있다기본형 : 변수의 실제 물리 메모리에 데이터를 저장하게 된다참조형 : 변수의 실제 물리 메모리에는 객체의 참조값을 저장하게 된다모든 변수의 값을 변수에 대입할 때는 해당 변수가 갖고 있는 값을 복사해서 대입하게 된다기본형int a = 10;int b = a;기본형은 실제 물리 메모리에 데이터를 직접 저장하게 된다다른 변수에서 값을 넘겨받을 때는 해당 변수 ( a ) 가 갖고 있는 값 ( 현재는 10의 이진코드 )을 복사해서 대입하게 된다따라서 a, b가 갖고 있는 10은 값만 같을 뿐이지 같은 10으로 볼 수는 없다참조형public Class Bird(){ private String name;}// 간단히 위와 ..
[Java] equals()
·
TIL/Java
동일성과 동등성자바는 두 객체가 같다는 표현을 2가지를 통해서 할 수 있다.동일성 ( == ) : 물리적인 참조 값이 동일한가? 즉 동일한 인스턴스를 참조하고 있는가?동등성 ( equals() ) : 두 객체의 논리적인 값이 동일한가? ( 객체가 갖고 있는 정보가 동일하다 )public class User { private Long id; public User(Long id) { this.id = id; }}public class EqualsMain { public static void main(String[] args) { User user1 = new User(1L); User user2 = new User(1L); System...
[Java] toString()
·
TIL/Java
toString() 메서드Object 클래스가 제공하는 메서드 중 하나이다객체의 정보를 문자열 형태로 제공해준다디버깅과 로깅에 유용하게 사용되는 메서드이다public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());}Object 클래스에 선언되어 있는 toString의 내용이다클래스의 정보와 이름@16진수해시코드 형태로 제공한다public class ToStringMain { public static void main(String[] args) { Object obj = new Object(); String objString = obj.toString(); ..
[Java] Object 클래스
·
TIL/Java
java.lang 패키지java.lang 패키지는 자바가 기본으로 제공하는 라이브러리이다자바를 사용할 때 가장 기본이 되는 클래스들을 포함하고 있는 패키지이다기본 제공 패키지이기 때문에 클래스 작성시 import를 해주지 않아도 사용할 수 있다대표 패키지Object StringInterger, Long, DoubleClassSystemObject 클래스자바에서 모든 클래스의 최상위 부모는 항상 Object 클래스가 된다즉 모든 객체는 Object를 상속받고 있다는 것으로 클래스를 작성할 때 명시적으로 상속을 받지 않으면 바로 Object 클래스를 자동으로 상속받게 된다만약 명시적으로 상속을 받게 되면? 상속한 부모 클래스를 타고 올라가보면 결국 Object 클래스가 존재한다public class Pare..
[Java] 추상 클래스
·
TIL/Java
추상 클래스란?인터페이스의 역할을 하는데 클래스의 기능도 갖춘 신기한 친구이다추상 클래스의 특징일반적인 클래스와 아주 동일하다. 필드, 생성자, 메서드를 갖고 있다.다만 추상 클래스는 생성자를 통해서 인스턴스를 생성할 수 없다. 추상 클래스를 상속받은 자식 클래스를 통해서만 인스턴스 생성이 가능하다이 때도 생성자에서 다루었듯 super()를 통해서 부모 클래스의 인스턴스가 먼저 생성된다보통 추상 클래스는 추상 메서드를 1개 이상 포함하고 있다인터페이스에서와 마찬가지로 추상 메서드를 자식 클래스에서 구현해야 한다선언 방법은 다음과 같다abstract [접근제한자] class 클래스명 { 필드, 생성자, 메서드, 추상메서드}인터페이스 vs 추상 클래스인터페이스와 추상 클래스 모두 추상화..