김지팡의 저장소
[Java] 제네릭(Generic)
Java 2024. 6. 8. 00:02

🧑‍💻 이번 포스팅은 자바의 제네릭에 대해서 알아보고자 한다.  📚 Generic제네릭은 컴파일 시 타입을 체크할 수 있도록 도와주어 코드의 재사용성을 높이고 타입 안정성을 보장해 준다. 제네릭을 사용하지 않는 것과 사용하는 것의 차이를 예시로 함께 알아보도록 하겠다. 💡 일반 클래스public class Box() { private String content; public void setContent(String content) { this.content = content; }}위와 같은 일반 클래스가 있다고 할 때, 해당 클래스 내 메서드를 사용할 때 인자로 넘겨주어야 할 것은 String 타입으로 고정되어 있다.  즉, 해당 클래스로 객체를 100번을 만들어도 그 안에 담을 수 있..

[Java] ArrayList
Java 2024. 6. 3. 22:14

🧑‍💻 이번 포스팅에서는 Java의 ArrayList에 대해 알아보고 배열과의 차이점을 확인해보고자 한다.ArrayList와 배열은 모두 여러 개의 값을 저장하고 관리하는 데 사용되는 자료구조인데, 다른 점이 존재한다.   📚 동적인 크기를 가지는 ArrayList크기를 지정해야 하는 배열과는 다르게 ArrayList는 동적으로 크기를 할당할 수 있다.때문에, 크기를 알 수 없거나 동적으로 크기를 지정해야 하는 상황에서는 ArrayList를 활용할 수 있다.  📚 저장 가능한 데이터 타입ArrayList는 배열과 다르게 객체만을 저장할 수 있기 때문에 기본 데이터 타입을 저장하려면 해당 타입의 래퍼 클래스를 사용해야 한다.ArrayList list = new ArrayList();list.add(..

[Java] BufferedReader & Scanner
Java 2024. 6. 3. 00:04

🧑‍💻 이번 포스팅에서는 BufferedReader에 대해 이야기해 보겠다.BufferedReader는 Scanner와 동일하게 입력을 처리하는 용도로 사용되는 클래스이다. Java를 처음 접할 때, 입력을 처리하는 용도로 Scanner 클래스를 사용하는데, BufferedReader가 성능적으로 이점이 많아 둘의 차이점에 대해 다뤄보도록 하겠다.  💡 ScannerScanner를 사용하기 위해서는 'java.util' 패키지에 포함된 Scanner 클래스를 import 해야 한다. 사용법은 아래와 같다.import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new S..

article thumbnail
Chapter 23 - StringBuilder
Java 2022. 1. 28. 18:00

오늘 이야기할 것은 StringBuilder이다. 이름을 들었을 때에는 String과 밀접한 관련이 있는 것처럼 느껴질 것이다. 그렇다면 StringBuilder란 무엇일까. 이것에 대해 알아보기에 앞서 String 타입으로 선언된 2개의 변수에 저장된 문자열을 서로 더할 때를 떠올려 보면 이럴 것이다. 두 문자열의 덧셈은 서로를 이어 붙이는 것과 같다. 단순하게 생각했을 때에는 str1과 str2를 더한 것으로 보이지만, 두 String 타입 변수를 더하게 되면 새로운 String을 생성하게 된다. 정리해서 말하자면 String 타입의 덧셈 연산을 수행했을 뿐인데 또 다른 String을 생성시킴으로써 메모리 할당과 메모리 해제를 발생시킨다. 단지 덧셈만을 하고 싶을 뿐인데 내부적으로 추가적인 작업이 필..

article thumbnail
Chapter 22 - Character 메서드
Java 2022. 1. 27. 18:00

String 타입이 문자열을 저장하는 데이터 타입이라면 Character(char)는 문자를 저장하는 데이터 타입이다. 문자와 문자열 얼핏 비슷하지만 분명히 다른 데이터 타입이다. 오늘은 Character의 메서드들 중 몇 가지를 다뤄보려고 한다. 첫 번째로는 String 타입에서도 존재하는 메서드인 toUpperCase(), toLowerCase() 메서드이다. char 타입으로 생성된 변수 ch에 'A'를 담고 있다. 그 아래는 String 타입 변수 str에 "abc"를 저장한 것을 볼 수 있는데, 같은 메서드이지만 7번째 줄의 코드와 8번째 줄의 코드를 보면 조금 다르다. 7번째 줄의 코드는 'Character.'이고, 그 아래는 'str.'이다. 둘 다 변수에 저장된 값을 변경하는 메서드이지만 ..

article thumbnail
chapter 21 - 배열의 초기화
Java 2022. 1. 21. 18:00

저번 프로그래머스 문제를 풀 때, 꽤나 많은 긴 시간 동안 에러를 찾아내지 못하고 애를 먹었었다. 물론 나와 같지 않은 사람도 있겠지만 혹여나 위와 동일한 에러를 보았지만 구글링을 통하여도 해결할 수가 없는 사람들을 위해 이야기를 해본다. 우선 에러를 보면 Index 0 out of bounds for length 0 at Solution.solution(First.java:13)라고 나와있다. 난 index 0이 배열 인덱스 범위 밖에 있다...? 이 정도로 해석을 했다. 정확하게 찾기 위하여 구글링을 했지만 찾을 수 있는 것은 예시로 크기가 4인 배열에 인덱스 4에 접근을 하려고 하면 저런 에러가 난다고 한다. 크기가 4라면 배열의 시작 인덱스는 0이기 때문에 끝자리는 3인데, 4번 인덱스에 접근을 ..

728x90