본문 바로가기

Computer Science/Java18

String, StringBuilder, StringBuffer의 차이 String 먼저 String과 다른 클래스(StringBuffer, StringBuilder)의 차이점은 두 문자열 클래스의 아주 기본적인 차이는 String은 immutable(불변), StringBuffer와 StringBuilder는 mutable(변함)에 있다. String str = "hello"; // String str = new String("hello"); str = str + " world"; // [ hello world ] 위의 예제에서 "hello" 값을 가지고 있던 String 클래스의 참조변수 str이 가리키는 곳에 저장된 "hello"에 "world" 문자열을 더해 "hello world"로 변경한 것으로 생각 할 수 있다. 하지만 실제로는 기존에 "hello" 값이 들어가.. 2023. 4. 10.
동일성과 동등성 동일성(identity) 동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 변수1은 객체 1을 가리키고 있고, 변수 2와 변수 3은 객체2를 가리키고 있다. 즉 변수2와 변수 3은 동일한 객체를 가리키고 있으므로, 두 변수는 동일하다고 할 수 있다. 그리고 해당 변수가 동일한지를 == 연산자를 통해 판별할 수 있다. 동등성(equality) 두 객체가 같은 정보를 가지고 있는 경우 동등하다고 판단한다. 즉, 참조하고 있는 객체의 주소가 서로 다르더라도 내용만 같으면 두 변수는 동등하다고 말할 수 있다. Car a1 = new Car("aaa"); Car a2 = new Car("aaa"); System.out.println(a.equals(a2)); // true 위와 같은 코드에.. 2023. 4. 10.
원시 타입과 참조 타입 자바의 데이터 타입은 크게 원시 타입(Primitive Type)과 참조 타입(Reference Type)이 있다. 원시 타입은 쉽게 말해, 정수, 실수, 문자, 논리 리터럴등의 실제 데이터 값을 저장하는 타입이고, 참조 타입은 객체(Object)의 번지를 참조(주소를 저장)하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입이다. 원시 타입 원시 타입의 종류는 byte, short, char, int, float, double, boolean이 있다. int a = 10; 같이 코드를 작성했다면 정수 값이 할당될 수 있는 a라는 이름의 메모리 공간이 JVM 스택 영역에 생성되고, 10이라는 값이 들어간다. 즉, 원시 타입은 메모리 공간에 실제 데이터 값이 저장되어 있다. [원시 타입에서의 주의사항.. 2023. 4. 10.
기타 제어자 - static, final, abstract 자바의 제어자에는 접근 제어자와 기타 제어자가 있고, 이번 포스팅에서는 자주 쓰이는 기타 제어자인 static, final, abstract에 대해 중점적으로 알아보려고 한다. 제어자의 정의와 접근 제어자에 관해서는 다음 포스팅을 참고하면 된다. https://nueahx7674.tistory.com/49 접근 제어자 먼저 '제어자'란 클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미한다. 제어자는 이번 포스팅에서 중점적으로 살펴 볼 접근 제어자와 기타 제어자로 나뉘는 nueahx7674.tistory.com static static 은 '클래스의' 또는 '공통적인'의 의미를 가지고 있다. 인스턴스 변수는 하나의 클래스로 부터 생성되었더라도 각기 다른 값을 유지하지만, 클래.. 2023. 4. 10.
접근 제어자 먼저 '제어자'란 클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미한다. 제어자는 이번 포스팅에서 중점적으로 살펴 볼 접근 제어자와 기타 제어자로 나뉘는데, 기타 제어자는 경우에 따라 여러개를 함께 사용할 수도 있지만 접근 제어자는 두 개 이상 같이 사용할 수는 없는 특징이 있다. 접근 제어자가 사용되는 이유는 객체지향의 특징인 캡슐화와 관련이 있다. 객체지향 프로그래밍에서는 정보 은닉, 즉 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념이 존재한다. 유효한 값을 유지하도록, 함부로 변경하지 못하도록 접근을 제한하는 것이 필요한 것이다. 자바는 이러한 정보 은닉을 접근 제어자를 통해 구현한다. 접근제어자를 사용하여 변수, 메서드, 생성자에 대한 접근 권.. 2023. 4. 10.
자바 컬렉션 프레임워크 - List, Set, Map java에서 Collection이란 데이터의 집합, 그룹을 의미한다. JCF(Java Collection Framework)는 다수의 데이터를 쉽고 효과적으로 처리할수 있는 표준화 된 방법을 제공하는 클래스의 집합이다. 기존에는 배열을 이용하여 데이터를 처리하였지만, 크기가 고정되어 있고 삽입/삭제 연산이 오래걸리는 불편한 점을 개선하기 위해 JCF가 등장했다. Collection의 주요 인터페이스로는 List, Set, Map이 있다. List 입력 순서를 유지하며, 데이터의 중복을 허용한다. 인덱스가 존재하여 이를 통해 저장된 데이터에 접근이 가능하다. ArrayList : 단방향 포인터 구조. 데이터의 순차적 접근(조회)가 빠르다. LinkedList : 양방향 포인터 구조. 데이터의 삽입, 삭제가.. 2023. 3. 30.