반응형
String 클래스는 immutable(불변) 불변성을 가졌기 때문에 String 객체를 변경시 실제로 변경되는 것이 아닌 새로운 String 객체를 생성합니다. 즉, 지정된 문자열을 변경할 수 없습니다. 반면 StringBuffer/StringBuilder 클래스는 mutable(가변) 가변성을 가져, 동일한 객체내에서 문자열 변경이 가능합니다. StringBuffer/StringBuilder 클래스의 차이점 StringBuffer는 멀티쓰레드에 안전하도록 동기화되어 있습니다. 그래서 멀티쓰레드로 작성된 프로그램이 아닌 경우, StringBuffer의 동기화는 불필요하게 성능만 떨어트리게 됩니다. 그래서 StringBuffer에서 쓰레드의 동기화만 뺀 StringBuilder 가 추가되었습니다. Str..
아래의 표는 String클래스 내에 정의된 생성자의 메서드의 목록입니다. 자바의 정석3을 참고해 자주사용되는 것들만을 표로 적었습니다. 메서드/설명 예 제 결 과 String (String s) 주어진 문자열 (s)을 갖는 String 인스턴스를 생성 String s = new String("HI?"); s="HI?" String(char[] value) 주어진 문자열(value)을 갖는 String인스턴스를 생성 char[] c = {'H','e','l','l','o'} String str = new String(c) s= "Hello" String(StringBuffer buf) StringBuffer 인스턴스가 갖고 있는 문자열과 같은 내용의 String인스턴스를 생성 StringBuffer sb ..
객체지향프로그래밍 ( Object Oriented Programming ) 이란 ? 먼저 OOP를 이해하기 위해선 절차지향적 프로그래밍에 대해 알아야하는데요, 절차 지향 프로그래밍 ( PP : Procedural Programming )에 대해 설명하자면, 순차적인 처리를 중요시하며, 프로그램 전체가 유기적으로 연결되어 있습니다. 그렇기 때문에 프로그램을 이해하기 어렵고 유지보수가 어렵다는 등의 단점이 있지만 속도가 빠르다는 장점이 있습니다. OOP는 위와 같은 절차지향적 프로그래밍의 단점을 보완하기 위해서 만들어졌습니다. 객체란 "실제로 존재하는 것"으로 우리가 주변에서 볼 수 있는 책상, 의자, 컴퓨터와 같은 사물들을 곧 객체라고 할 수 있습니다. 이처럼, 객체지향프로그래밍 ( OOP )은 현실 세계..
다형성 다형성은 객체지향 언어인 자바의 아주 중요한 특징 중 하나입니다. 다형성은 상속과 깊은 관계를 가지고 있으므로 상속에 대해 알고 싶다면 아래 포스팅을 참고하시면 됩니다. [Java/자바] 클래스의 관계 - 상속(is-a)과 포함(has-a) 상속 상속이란, 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것입니다. 상속을 통해서 클래스를 작성하면, 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리 hstory0208.tistory.com 다형성이란, "여러 가지 형태를 가질 수 있는 능력"을 의미하며 자바에서 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현합니다. 쉽게 말하면, "조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 ..
추상이란 ? 추상의 사전적 의미를 보면 "여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용." 입니다. "상속"이 자손 클래스를 만드는데 조상 클래스를 사용하는 것이라면, "추상화"는 기존의 클래스의 공통적인 부분을 뽑아 조상 클래스를 만드는 것이라 할 수 있습니다. 추상화 : 클래스간의 공통점을 찾아 공통의 조상을 만드는 작업. 구체화 : 상속을 통해 클래스를 구현, 확장하는 작업. 상속계층도를 따라 내려갈수록 클래스는 점점 기능이 추가되어 구체화의 정도가 커져 세분화되고, 반대로 올라갈수록 추상화의 정도가 커져 공통요소만 남게됩니다. 추상 클래스 ( abstract class ) 클래스를 설계도라 비유한다면, 추상클래스는 미완성 설계도라고 할 수 있습니다. 클래스가 미..
super super는 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수입니다. 멤버변수와 지역변수의 이름이 같을 때 this를 붙여 구별했듯이 상속받은 멤버와 자신의 멤버와 이름이 같을 때는 super를 붙여 구분할 수 있습니다. super와 this 비교 class SuperTest { public static void main(String args[]) { Child c = new Child(); c.method(); } } class Parent { int x=10; } class Child extends Parent { int x = 20; void method() { System.out.println("x=" + x); System.out.println("this...