본문 바로가기

분류 전체보기81

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.
객체지향 프로그래밍에 대한 전반적인 정리 객체지향 프로그래밍이란? OOP (Object-Oriented Programming)이란 객체 지향적인 프로그래밍. 즉, C언어같은 절차 지향적인 프로그래밍(프로그램이 함수 단위로 순서대로 진행)이 아닌 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 그 객체의 관점에서 프로그래밍을 한다는 것이다 .객체들간의 상호작용을 통해 로직을 구성한다. OOP는 절차지향에 비해서 사람의 사고방식과 더 가깝다. OOP는 객체들의 유기적인 관계를 통해서 프로세스가 진행된다. 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말한다. 클래스, 객체, 인스턴스의 차이 객체 소프트웨어 세계에 구현할 대상 물리적으로 존재하거나 추상적으로 생각할 .. 2023. 4. 9.