[JAVA] String Builder, String Buffer
2022. 10. 3. 22:08
JAVA/기본 문법
String Builder에 관해서는 전에 https://chb2005.tistory.com/73 여기서 조금 다룬 적이 있음 출력할 때 System.out으로 직접 출력하는 것보다 StringBuilder을 사용해 출력하는 것이 더 빨랐었음 왜 더 빠른지 이 글을 보면 알 수 있을 것이라 생각함 String Builder, String Buffer 란? String의 경우 빈번하게 문자열을 변경할 때는 비효율적임 String이 내용을 변경하기 위해선 새로운 객체를 생성하고 복사하는 방식이기 때문 ex) String str = "hi"; 라고 하면 "hi" 라는 Literal 객체를 생성하고 이를 복사해 옴 str = "hello"; 라고 다시 해주면 다시 "hello" 객체 생성 후 복사해 옴 Stri..
[JAVA] 추상 클래스(Abstract Class)와 인터페이스(interface), 인터페이스의 default method
2022. 10. 3. 21:54
JAVA/기본 문법
추상 클래스 란? 하나 이상의 추상 메소드를 포함한 클래스 추상 메소드 란? 선언부만 존재하고, 구현부는 존재하지 않는 메소드 자식 클래스가 추상 클래스를 상속받고, 자식 클래스에서 추상 메소드를 오버라이딩을 통해 직접 구현해야 함 반드시 특정 메소드를 만들도록 에러를 발생시켜서 강제성 부여 abstract static class Animal { abstract void speak(); } static class Dog extends Animal { @Override void speak() { System.out.println("멍멍"); } } 만약 위 코드에서 Animal을 상속받은 Dog 클래스에 speak 메소드가 구현되지 않았으면 에러 발생 또한 추상 클래스로는 객체를 생성할 수 없음 Anima..
[JAVA] 다형성(Polymorphism) 정의 및 활용(UpCasting, DownCasting) + instanceof
2022. 10. 3. 21:12
JAVA/기본 문법
다형성(Polymorphism) 이란? 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미 객체들의 타입이 다르면 똑같은 메세지(같은 메소드명)가 전달되더라도 서로 다른 동작을 함 ex) cat.speak() => 야옹, dog.speak() => 멍멍 다형성은 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나임 다형성 예제 public class Test { public static void main(String[] args) { Dog dog = new Dog(); Animal animal = new Dog(); // Animal animal = (Animal) new Dog(); 와 동일 animal.speak(); animal.speak2(); // 에러 발생 Dog dog2 = new A..
[Fiddler] Fiddler 사용법 (네이버, 유튜브 검색)
2022. 9. 13. 21:07
기타
Fiddler 란? 컴퓨터와 웹 서버 또는 서버 사이의 HTTP 및 HTTP 트래픽을 기록, 검사 및 변경하는데 사용되는 디버깅 프록시 도구 Fiddler 다운 아래 링크에서 무료 다운 가능 (mac 지원X) https://www.telerik.com/fiddler Fiddler을 통해 네이버와 유튜브 검색을 해봄 네이버 검색 Request, Response 분석 아래와 같이 인터넷 브라우저와 피들러 준비 Capture Traffic이 체크 되어있는지 확인 이 상태에서 네이버 검색창에 '안녕하세요'를 쳐보면 피들러에 아래와 같이 Traffic들이 Capture 됨 적당히 캡쳐가 되었다 싶으면 Capture Traffic(단축키 F12)를 꺼줘서 새로운 Traffic들의 캡쳐를 정지시킴 이제 이 Traff..
[Git] Git 기능 정리
2022. 8. 20. 16:18
Git
간단한 예제를 통해 Git의 기능들에 대해 정리 아래와 같은 기능이 개발되어 있고 Github에 이 프로젝트를 올려둔 상황 (Github에 Repository 생성 및 프로젝트 업로드 : https://chb2005.tistory.com/18) 여기에 기능들을 추가해가며 Git의 기능들에 대해 정리 프로젝트 다운받기 clone clone은 Github에 올라가있는 프로젝트를 내 로컬에 그대로 가져오는 기능 여러 사람들과의 협업, 로컬 프로젝트가 날아가는 상황 등에 필요한 기능 일단 로컬에서 프로젝트를 삭제 Terminal(cmd)에서 프로젝트를 clone 받고 싶은 로컬 디렉토리로 이동 ex) Documents/DevStudy/Spring Boot cd "Documents/DevStudy/Spring B..
[JAVA] 백준 2188 - 축사 배정
2022. 8. 19. 20:11
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/2188 2188번: 축사 배정 농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다. 첫 주에는 소를 임의 배정해 www.acmicpc.net 해결 방법 DFS로 해결했는데 이 알고리즘을 이분매칭이라고 하는것 같음 => 나중에 다시 알아봄 예제를 풀며 해결 방법 정리 ex) 입력이 아래와 같이 들어왔다고 가정 5 5 2 2 5 3 2 3 4 2 1 5 1 1 3 1 2 5 1번 소는 2, 5번 축사에 가고 싶어함 확인 후 비어있는 축사가 있으면 바로 집어 넣음 1, 2, 3번 소는 비어 있는 축사에 바로 들어갈 수 있음 이제 4번 소가..
[JAVA] 백준 2176 - 합리적인 이동경로 (Reverse Dijkstra + DP)
2022. 8. 19. 14:48
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/2176 2176번: 합리적인 이동경로 첫째 줄에 정점의 개수 N(1 정답은 몇개일까?? 1 -> 2로 갈 수 있는 방법은 총 6개 [1->2] [1->3->4->5->2] [1->3->5->2] [1..