본문 바로가기

TIL

(22)
23.01.17 TIL String 리터럴과 new의 차이 오늘 한 일 백준 3문제 풀기 spring강의 듣기 공부하면서 궁금한 점 String 리터럴 String str = "홍길동" 으로 생성하는 방식 Heap영역의 String contents Pool이라는 곳에 저장이 되는데 들어가기전 중복된 문자열이 있는지 확인하고, 있다면 해당 주소값을 공유 없다면 새로운 문자열을 만들어 저장 후 그 주소값을 가져와 사용한다 매번 새로운 객체를 만들지 않아 좀더 효율적으로 사용할 수 있다. String new String str = new String("홍길동") 으로 생성하는 방식 Heap memory에 새 문자열 객체를 생성하며 같은 문자열이 있어도 새로운 독립된 객체를 생성한다. 즉, 가지고 있는 값이 같아도 주소값이 다르다. 출처 : https://www.jav..
23.01.12 TIL 백준 14225 문제 (Java) 오늘 한 일 백준 3문제 풀기 Spring 강의 듣기 공부하면서 궁금한 점 부분수열의 합 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 8926 4242 2883 43.530% 문제 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다. 입력 첫째 줄에 수열 S의 크기 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 수열 S가 주어진다. S를 이루고있는 수는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 수열 ..
23.01.11 TIL 예외처리 오늘 한 일 백준 3문제 풀기 자바 예외처리 강의 듣기 공부하면서 궁금한 점 예외처리 자바는 예외가 발생했을 경우, JVM에서 예외를 던지고(Throw), 예외가 발생한 지점에서 프로그래머가 지정해 놓은 위치로 제어의 비지역 이동이 발생한다. 비지역이동 - 비지역 이동은 제어의 흐름을 주어진 문맥의 외부로 이동시키고, 미리 선언된 지점에서 이어서 수행된다. *처리 키워드 try : 예외가 발생할 것으로 예상되는 코드를 블럭으로 지정하는데 사용되며, try블록 다음에는 catch또는 finally가 와야한다 catch : 예외를 처리하는데 사용, 단독으로 사용할수 없다. finally : 예외 발생과 상관없이 무조건 실행시킨다. throw : 예외를 발생시키는데 사용 throws : 예외를 선언하는데 사용..
23.01.06 TIL 템플릿 메서드 디자인 패턴 오늘 한 일 백준 3문제 풀기 -> 2문제 풀기 자바 강의듣기 spring 강의 2개듣기 공부하면서 궁금한 점 템플릿 메서드 디자인 패턴 abstract 메서드와 하위 클래스에서 재정의 할수 없게 만드는 final 메서드가 핵심이다. final을 꼭 사용하지 않아도 된다. public abstract class AbstractDisplay { public abstract void open(); public abstract void print(); public abstract void close(); // Template method - 알고리즘 구조(처리과정) public final void display() { open(); for(int i=0; i
23.01.05 TIL 문자가 숫자인지 확인하는 메서드 isDigit()과 백준 1620번 문제 오늘 한 일 백준 3문제 풀기 자바 강의 듣기 공부하면서 궁금한 점 1620번: 나는야 포켓몬 마스터 이다솜 (acmicpc.net) 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 백준 1620번 문제를 풀며 문자열이 숫자인지 아닌지 구분이 필요했다. 알아보니 Character.isDigit(문자) 라는 메서드가 있었으며, 괄호 안의 문자가 숫자면 true 문자면 false를 반환 해준다. 이것을 통해 문자열을 확인 해주는 함수를 만들어 사용했다. public static boo..
23.01.04 TIL 오늘 한 일 백준 3문제 풀기 자바 강의 듣기 덱 ArrayDeque와 LinkedList 공부하면서 궁금한 점 백준 2346번 문제를 풀다가 2346번: 풍선 터뜨리기 (acmicpc.net) 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 메모리 초과가 떠서 덱에 대해 알아보았다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRea..
23.01.03 TIL 오늘 한 일 백준 3문제 풀기 자바 인강 듣기 StringBuilder와 StringBuffer 공부하면서 궁금한 점 StringBuffer 스레드에서 안전하기 위해 동기화가 되어 동시에 호출이 불가능 하다. StringBuilder 동기화가 되지 않아 멀티스레드 사용시 안전하지 않지만, StringBuffer보다 속도가 빠르고 효율적이다. 내일 할 일 백준 3문제 풀기 자바 강의 듣기
23.01.02 TIL 오늘 한 일 백준 실버 단계 3문제 풀기 싱글톤 패턴 공부 자바 강의 공부하면서 궁금한 점 싱글톤 패턴(Singleton) 싱글톤 패턴은 하나의 객체를 이용해 정보를 보관, 공유, 관리하기 위해 사용한다. 한 번의 메모리 할당으로 관리하며, 이렇게 되면 여러 클래스에서 사용하더라도 공유가 되기 때문에 동기화에 용이하다. public class Company { private static Company instance; private String name; //synchronized는 멀티 스레드시 동시에 명령을 실행해야할 때 기다리도록 한다 public static synchronized Company getInstance() { if(instance == null){ instance = new Comp..