본문 바로가기

language/JAVA6

[JAVA] StringBuilder를 사용하는 이유 자바에서 문자열을 사용할 때 일반적으로 String을 사용합니다. String str = "문자열"; 변수 str의 값을 수정하려면, str = "수정된 문자열"; 이렇게 하면 수정된 것 처럼 보이지만 사실은 자바에서 String 객체는 수정이 불가능! 하기 때문에 새로운 String 객체를 만들어서 기존에 있는 값에 대입하고... 이게 계속 반복되기 때문에 메모리 낭비가 생기게 됩니다. 그래서 변경 가능한 StringBuilder 라는 클래스를 사용하여 한 객체로 문자열을 수정하고~ 삭제하고 등등이 가능해집니다! 다만 StringBuilder는 동기화를 지원하지 않기 때문에 멀티쓰레드 환경에서는 String이나 StringBuffer를 사용하는 것이 좋겠죠? 2022. 3. 9.
[JAVA] 다형성 / instanceof 상속과 함께 🌸 자바의 꽃🌼 다형성입니다. 어떻게 보면 간단한 개념인데 또 하다보면 헷갈리는 개념이기 때문에 잘 이해하고 넘어가야겠습니다!! 1. 개념 -하나의 객체가 여러가지 타입을 가질 수 있는 것 -부모클래스 타입의 참조변수로 자식클래스 타입의 인스턴스를 참조할 수 있다. 예제 //부모 클래스 생성 class ParentClass { void print() { System.out.println("ParentClass의 print메서드"); } } //자식클래스가 부모클래스를 상속받음 class ChildClass extends ParentClass { void print() { System.out.println("ChildClass의 print메서드"); } void action() { System.. 2021. 8. 4.
[JAVA] Scanner 대신 Buffer를 사용해보자! BOJ에서 신나게 문제를 풀고 있던 나... 빠른 A+B라는 제목부터 의문을 가지게 되는 문제를 보게 된다. 빠른 A+B??? A+B면 A+B지, 빠른 A+B는 뭔데??? 🧐 왠지 모르게 앞으로 자주 볼 아이같으니 왜 저걸 사용하면 실행시간이 단축되는지! 알아보고 넘어가보자. Java에서 처음 입력하는 걸 배울 때, 100이면 100 Scanner를 사용했을 것이다. Scanner sc = new Scanner(); String text = sc.next(); 사용이 정말 간편하다. 그러나 Scanner의 경우 next()등의 메서드 내에서 여러가지 정규식을 검증하기 때문에 실행 속도가 느리다. 하지만 BufferedReader는 1. 정규식을 검증하지도 않고, 2. 문자를 입력받아 버퍼에서 한꺼번에 전.. 2021. 7. 30.
[JAVA] 상속 / 오버라이딩 / super, super() 자바의 꽃이라고 불리우는 상속에 대해 알아보자! 1. 상속이란? 기존에 있는 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 수정이 쉽다. 코드의 중복을 제거하고, 코드의 재사용성이 높아진다. == 프로그램의 유지보수가 쉬워진다!! 상속은 extends 키워드로 사용할 수 있다. class ParentClass {} class ChildClass extends ParentClass {} ParentClass를 부모클래스(=super클래스), ChildClass를 자식클래스라고 한다. 이 관계를 상속 관계도와 다이어그램으로 나타나면 아래 그림과 같다. ParentClass에 a라는 멤버변수를 추가하면 자식 클래스인 ChildClass에도 a라는.. 2021. 7. 29.