java

문제 풀이   문제 이해하기  설명:주어진 그래프에서 DFS와 BFS 탐색 결과를 구하라.탐색 시 노드 번호가 작은 순서부터 방문한다.입력 조건:노드의 수, 간선의 수, 시작 노드를 입력해야 한다.간선은 양방향이다.출력 조건:DFS 결과와 BFS 결과를 출력한다.    DFS와 BFS 간단 설명  DFS는 깊이 우선 탐색이며 한 노드를 방문한 후 그 노드와 연결된 노드를 재귀적으로 탐색한다. 재귀 호출 또는 스택을 사용하여 구현 가능하다.  BFS는 너비 우선 탐색이며 한 노드를 방문한 후 연결된 모든 노드를 큐에 넣어 순차적으로 탐색한다. 큐를 사용하여 구현 가능하다.     코드 구조 입력 처리:  노드,간선 정보를 입력받아 인접 행렬을 생성한다. DFS 구현: 재귀 호출을 사용하여 깊이 우선으로 탐..
메서드 오버로딩을 하다보면 여러 매개변수를 받는 생성자나 메서드를 여러 개 작성하다 보니 매개변수의 순서나 타입에 의한 혼동이 생길 수 있다. 많은 매개변수를 갖는 생성자를 사용하면 코드의 가독성도 떨어지고 잘못된 타입을 넣었을 때 오류를 발생할 수도 있다.  public class Car { private String model; private String color; private int year; public Car(String model) { this.model = model; } public Car(String model, String color) { this.model = model; this.color = color; ..
오랜만에 자바 포스팅으로 돌아왔다.   오늘은 문자열을 처리하는데 사용되는 String, StringBuffer, StringBuilder의 동작 방식, 성능, 사용 목적을 비교하며 각각의 클래스가 어떻게 동작하고 언제 사용하며 성능이 어떻게 다른지 설명하겠다.      String 불변 객체String 객체는 한 번 생성되면 더 이상 변경할 수 없다.예를 들어 String 객체에서 문자열을 변경하는 작업이 발생하면 실제로는 새로운 String 객체가 생성되는 것이고 기존 객체는 가비지 컬렉터가 처리할 때까지 메모리 상에 남아 있다.  불변성의 장점String 객체는 불변성 덕분에 안전하게 여러 쓰레드에서 공유될 수 있다.String은 Java의 String Pool(메모리 사용 최적화하는 공간)에 의해..
오늘도 조금 쉬운 개념으로 돌아왔다 자바의 인터페이스는 메서드 선언의 집합만을 포함하며, 구현이 없는 추상적인 형식을 정의한다. 클래스가 인터페이스를 구현하면, 해당 인터페이스의 모든 메서드를 반드시 구현해야 한다. 이 부분은 뒤에서 다시 설명하겠다. 인터페이스는 코드의 유연성과 확장성을 높이며, 다중 상속을 지원하지 않는 자바에서 다른 클래스와 기능을 공유하는 중요한 방법이다.    자바의 인터페이스는 일종의 계약서나 청사진으로 비유할 수 있다.이 비유를 통해서 인터페이스의 개념과 역할을 쉽게 이해해보자.  계약서로 비유를 들어보았다. 생각해보자. 나는 한 건설 회사의 사장이다. 나는 여러 다른 하청업체와 계약을 맺고 건물을 짓고 싶다. 각 하청업체는 건물의 특정 부분을 담당해야 한다. 전기, 배관, ..
형변환 (Type Conversion)하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환 이라고 한다. 예를 들어 byte 타입을 int 타입으로 변환하거나 반대로 int 타입을 byte 타입으로 변환하는 것을 말한다.   자바에서 형변환은 일종의 "물건을 담는 상자"에 비유할 수 있다.    1. 작은 상자에서 큰 상자로 옮기기 (자동 형변환, Upcasting) 작은 상자에 담긴 물건을 큰 상자로 옮기는 것은 쉽다.예를 들어, 작은 상자에 담긴 사과를 큰 상자로 옮기는 것은 간단하다.자바에서는 작은 데이터 타입에서 큰 데이터 타입으로 형변환할 때 자동으로 변환이 이루어진다.더 큰 상자(더 큰 데이터 타입)에 작은 물건(작은 데이터 타입)을 넣는 것과 같다.  작은 상자에서 큰 상자로 이동..
hskhsmm
'java' 태그의 글 목록