인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Language/Java

☕ 자바 toString 오버라이딩 - 완벽 이해하기

toString 메소드 기본적으로 Object 클래스의 toString() 메소드는 해당 인스턴스에 대한 정보를 문자열로 반환한다. 이 메서드는 인스턴스에 대한 정보를 문자열로 제공할 목적으로 정의되어 있는 것이다. 이때 반환되는 문자열은 클래스 이름과 함께 구분자로 @가 사용되며, 그 뒤로 16진수 해시 코드(hash code)가 추가된다. 해시 코드 값은 인스턴스의 주소를 해싱하여 변환한 값으로, 고유 숫자로서 인스턴스마다 모두 다르게 반환된다. 실제로 toString() 메서드 내부를 본다면 다음과 같이 구현되어있다. class MyObject extends Object { // extends Object 는 생략해 줘도 된다. int objId; String objName; public MyObj..

category_image
인파_
2022.11.15
(0)
Language/Java

☕ 자바 Object 클래스와 메서드 오버라이딩

Object 클래스 모든 자바의 클래스는 Object 클래스로 부터 시작된다. 즉, Object 클래스가 모든 클래스의 조상 혹은 base 라고 할 수 있다. 사실 우리가 클래스 파일을 만들어 클래스명을 작성하면 자동적으로 Object 클래스가 extends 가 된다. 우리가 클래스를 만들때 굳이 Object 클래스를 상속시키지 않아도 자동으로 상속해줘서 Object 클래스가 지원하는 메서드를 자유롭게 사용이 가능한 이유이다. 만일 다른 클래스를 상속시키면 당연히 클래스는 한개밖에 상속할수 없기에 extends Object는 사라지지만, 부모 클래스에서 Object를 상속하고 있기에 결국 모든 클래스는 Object 클래스를 상속 받고 있는 형태가 된다. // extends Object 를 안써줘도 컴파일..

category_image
인파_
2022.11.15
(0)
Language/Java

☕ 자바 Wrapper 클래스와 Boxing & UnBoxing 총정리

래퍼 클래스 (Wrapper Class) 이전 강의글에서 우리는 자바의 자료형은 기본 타입(primitive type)과 참조 타입(reference type) 으로 나누어지고 각 특징에 대해 알아보았다. 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 생기게 된다. 예를 들어 메소드의 인수로 객체 타입만이 요구되면, 기본 타입의 데이터를 그대로 사용할수 없기 때문에 어떠한 변환 작업이 필요해 진다. 또한 멀티스레드 환경에서 동기화 데이터를 사용해야 할 경우 이를 객체화 해야 할 필요성이 생긴다. 이럴 때에 기본 타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다. 자바는 모든 기본타입(primitiv..

category_image
인파_
2022.11.14
(0)
Language/Java

☕ BigInteger & BigDecimal 사용법 💯 정리

BigInteger 자료형 BigInteger는 언제 사용되는가 Type 범위 int -2,147,483,648 ~ 2,147,483,647 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 자바의 int는 메모리 크기는 4byte로 표현할 수 있는 범위는 -2,147,483,648 ~ 2,147,483,647이고 long은 메모리 크기는 8byte로 표현할 수 있는 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 이다. 보기엔 조 단위가 넘는 커다란 숫자이지만, 우주 시뮬레이션과 같은 무한한 정수를 계산하기 위해서는 턱 없이 부족한 공간이다. 만일 이 타입의 범위를 넘어서게 되면 에러가 난..

category_image
인파_
2022.11.12
(0)
Language/Java

☕ 자바 split / StringTokenizer - 문자열 자르기 비교

자바 문자열 자르기 자바에서 문자열을 자르는데 사용하는 대표적인 클래스가 String 클래스의 split 메서드와 StringTokenizer 클래스가 있다. 이번 시간에는 이 둘의 사용 문법을 알아보고, 둘이 어떠한 차이점이 있는지, 어떨때 어느 것을 사용해야 하는지 알아보자. String 클래스의 split 메서드 String 클래스에서 제공되는 split 메서드는 매개변수 갯수가 다른 2개로 오버로딩 되어 있다. 자바의 split 메서드의 가장 큰 특징은 구분자를 문자로 받는게 아니라 정규식으로 받는다는 점이다. 정규식이 난이도가 있는 부분이긴 하지만 덕분에 다채롭고 섭세하게 문자열을 자를 수 있다는 특징이 있다. public String[] split(String regex); // 반환을 Str..

category_image
인파_
2022.11.03
(0)
Language/Java

☕ 자바 String / StringBuffer / StringBuilder 차이점 & 성능 비교

자바에서는 대표적으로 문자열을 다루는 자료형 클래스로 String, StringBuffer, StringBuilder 라는 3가지 자료형을 지원한다. 위 3가지 클래스 자료형은 모두 문자열을 다루는데 있어 공통적으로 사용되지만, 사용 목적에 따라 쓰임새가 많이 달라지게 된다. 이번 시간에는 String, StringBuffer, StringBuilder 클래스 차이점을 알아보고, 이 3가지 중 어느 상황에서 어느 자료형을 사용하는 것이 이상적이고 성능적으로는 어느것이 더 좋은지 총정리 해보는 시간을 가져보자. StringBuffer / StringBuilder 클래스 StringBuffer / StringBuilder 클래스는 문자열을 연산(추가하거나 변경) 할 때 주로 사용하는 자료형이다. 물론 Str..

category_image
인파_
2022.11.02
(0)
Language/Java

☕ 자바 String 타입 특징 이해하기 (String Pool & 문자열 비교)

여타 대부분의 프로그래밍 언어에서 문자열 이라는 데이터를 저장하기 위해 string 이라는 데이터 타입을 사용한다. 이 string 데이터를 다루는데 있어 특별히 유의해야 할점은 없어보이지만, 자바에서의 string은 특별한 자료형으로 취급되어 여러 유의해야 할 사항들이 존재한다. 단순히 문자열을 다루는 것이지만 이를 어떻게 다루느냐에 따라 어플리케이션의 성능이 차이가 있을 수 있기 때문이다. 이 포스팅에서는 초보부터 중고급까지 짚어야 할 것들을 추려서 간단하게 소개 해볼 예정이다. 자바 String의 특징 String은 객체 자바(Java) 프로그래밍에서 String 은 int 와 char 와 달리 기본형(primitive type)이 아닌 참조형(reference type) 변수로 분류 된다. 즉, ..

category_image
인파_
2022.11.01
(0)
Language/Java

☕ 익명 클래스(Anonymous Class) 사용법 총정리

익명 클래스 (Anonymous Class) 익명 클래스는 내부 클래스(Inner class) 일종으로 단어 그대로 이름이 없는 클래스를 말한다. 익명, 이름이 없다는 것은 별로 기억되지 않아도 된다는 것이며, 나중에 다시 불러질 이유가 없다는 뜻을 내포한다. 즉, 프로그램에서 일시적으로 한번만 사용되고 버려지는 객체라고 보면 된다. (일회용 클래스) 보통 어느 클래스의 자원을 상속 받아 재정의하여 사용하기 위해서는 먼저 자식이 될 클래스를 만들고 상속(extends) 후에 객체 인스턴스 초기화를 통해 가능하다. // 부모 클래스 class Animal { public String bark() { return "동물이 웁니다"; } } // 자식 클래스 class Dog extends Animal { @..

category_image
인파_
2022.10.27
(0)
Language/Java

☕ 내부 클래스(Inner Class) 장점 & 종류 총정리

내부 클래스 (Inner Class) 내부 클래스(inner class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 보통 사용자 클래스 자료형이 필요하면, 메인 클래스 외부에 선언하거나, 따로 독립적인 클래스 파일을 만들어 불러와 사용해 왔다. 내부 클래스는 대신 클래스 내에 선언되어 사용되며, 내부에 정의된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 우리가 어느 클래스에 변수나 상수가 필요하다면 클래스 멤버로서 클래스 내에서 선언하여 사용해 왔듯이, 선언 주체를 변수에서 클래스로 바꾼다면 그것이 내부 클래스인 것이다. 이처럼 내부 클래스는 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스또는 메소드에서만 사용되는 클래스일 때 이용되는 기법이라고 보면 된다. 내부(in..

category_image
인파_
2022.10.26
(0)
Language/Java

☕ JAVA 업캐스팅 & 다운캐스팅 - 완벽 이해하기

자바의 참조형 캐스팅 하나의 데이터 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환(캐스팅) 이라고 한다. 자바의 데이터형을 알아보면 크게 두가지로 나뉘게 된다. 기본형(primitive type) - Boolean Type(boolean) - Numeric Type(short, int, long, float, double, char) 참조형(reference type) - Class Type - Interface Type - Array Type - Enum Type - 그 외 다른 것들 기본형(primitive) 이든 참조형(referece) 이든 하나의 타입이다. 이는 즉, 서로 타입간의 형변환(casting)이 가능하다는 말이다. 기본적으로 자바에선 대입 연산자 = 에서 변수 와 값 서로 ..

category_image
인파_
2022.10.25
(0)
Language/Java

☕ 인터페이스 vs 추상클래스 용도 차이점 - 완벽 이해

인터페이스 vs 추상클래스 비교 이 글을 찾아보는 독자분들은 아마도 이미 인터페이스와 추상클래스 개념을 학습한 뒤에 이 둘에 대하여 차이의 모호함 때문에 방문 했겠지만, 그래도 다시한번 확실하게 한번 더 짚고 넘어가보자. 추상 클래스 인터페이스 사용 키워드 abstract interface 사용 가능 변수 제한 없음 static final (상수) 사용 가능 접근 제어자 제한 없음 (public, private, protected, default) public 사용 가능 메소드 제한 없음 abstract method, default method, static method, private method 상속 키워드 extends implements 다중 상속 가능 여부 불가능 가능 (클래스에 다중 구현, 인..

category_image
인파_
2022.10.13
(0)
Language/Java

☕ 인터페이스(Interface) 문법 & 활용 - 완벽 가이드

인터페이스 정의 (친숙하게 설명) 객체 지향 프로그래밍의 추상화를 배우고 추상 클래스를 접해봤다면 그 다음 접해보는 것이 인터페이스(Interface) 일 것이다. 인터페이스는 간단히 말하자면 프로그램을 설계하고 조금 더 유연한 프로그램을 만드는 기법을 말한다. 인터페이스는 추상화와 상속과 더불어 다형성이라는 객체 지향의 특징을 구현하는 핵심이다. 실생활의 인터페이스 인터페이스(Interface) 라는 용어는 꼭 자바(java)에만 있는 것이 아니다. 위키 백과에 따르면, 인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이라고 한다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 상호작용 시스템을 의미한다. 이러한 정의를 자바 프로그래밍에 접목해보..

category_image
인파_
2022.10.12
(0)