목록분류 전체보기 (42)
끄적끄적
- ArrayList는 기본 Capacity=10이다. - add 시 내부에서 count를 한다. 데이터가 10개 있는데 add 하면 resize가 발생하여 15가 된다. - capcity를 설정하지 않았으면 (기존 용량 + 기존용량/2) 즉, 1.5배 크기의 새 배열에 기존 배열을 복사한다. 참고)https://junghyungil.tistory.com/96
String의 생성 방식 1. new 연산자를 이용한 방식 String s = new String("str1"); Heap 영역에 생성 2. 리터럴을 이용한 방식 String literal = "str2"; String 상수풀에 생성. String을 리터럴로 선언하게 되면 내부적으로 String의intern()메서드 호출 String.intern() 주어진 문자열이 String 상수풀에 있는지 검색하고 있으면 주소값 반환, 없으면 새로 추가하고 새로운 주소값 반환 constant pool의 위치 변경 - java 6: perm 영역 - java 8: Perm 영역은 사라지고 Heap 영역 (perm은 고정된 사이즈고 Runtime에 사이즈가 확장되지 않는다. OutofMemoryException문제때문에..
- final 키워드는 여러 컨텍스트에서 단 한번만 할당될 수 있는 entity를 정의할 때 사용 - final 변수, final 메서드, final 클래스로 적용할 수 있다. 1. final 변수 원시 타입 원시 변수를 final 로 선언하면 변경할 수 없는 상수 값 final int x=1; 객체 타입 객체 변수를 final로 선언하면 그 변수에 다른 참조값을 지정할 수 없음. 객체 속성은 변경 가능 final Pet pet = new Pet(); pet.setWeight(2); 메서드 인자 메서드 안에서 변수값 변경 불가 public void setWeight(final int weight){ //final 인자는 메서드 안에서 변경할 수 없음} 2. Final 메서드 - 메서드를 final로 선언..
JVM이란 - 자바 가상머신으로 운영체제 종류에 영향 받지 않고 독립적으로 자바를 동작하게 해주는 중계자. JVM의 메모리 구조 - 총 4단계로, Garbage Collector, Execution Engine, Class Loader, Runtime Data Area가 있다. 자바 실행 시 동작 과정 먼저 자바 컴파일러에 의해 자바 소스(.java) 파일은 Byte code형태인 클래스 파일로 변환된다. 이 클래스 파일을 JVM이 읽어가면서 수행된다. 1. Class Loader - JVM 내로 class를 로드하고 Link 작업을 통해 배치 등 일련의 작업을 한다. - 런타임 시 동적으로 클래스를 로드한다. 2. Execution Engine - 클래스 로더를 통해 JVM Runtime Data Ar..
너무 복잡하게 생각해서 계속 시간 초과가 났다.. 함수를 새로 만들지 않고 그냥 for문으로 체크해주니 통과했다 ㅜ 효율성 1번에서만 시간초과가 발생한다면 현재 탐색할 길이가 그때까지 찾은 최대 길이보다 작으면 탐색하지 않는 방안을 생각해보자 import java.util.*; class Solution { public int solution(String s) { int maxLen = 1; //최대 길이는 항상 1 for(int i=0;i=i;j--){ //살펴볼 마지막 위치 int start = i; //start에 시작 위치저장 int last=j; //last에 마지막 위치 저장 boolean check=true; //팰린드롬이 가능한지 체크할 boolean변수 for(int k=0;klast-s..
조합 - 뽑힌 위치을 true로 저장. cnt를 센다 static int []visited; static int R,N; void cmbination(int target, int cnt){ if(cnt == R){ for(int i=0;i
큐를 이용하여 큐의 front 값을 변경하여 맨끝으로 삽입한다. 뺴주는 minus 변수가 5가 되면 다시 0으로 바꾸고 이러한 순환을 front에서 minus를 뺸값이 0보다 작을 때까지 반복한다. package day0804; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Password { public static void main(String[] args) throws IOException { // TOD..
dfs로 풀었는데 모든 위치에서 dfs를 돌려야한다는게 처음에는 너무 오랜시간이 걸리지 않을까 걱정되었다. dfs에 처음 시작위치를 저장하여 최댓값을 갱신하여 정답배열에 저장한다. 또한 모든 정답배열 중 최댓값을 답으로 출력해주었다. package day0806; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Square { static int[][] arr; static int[][] ans; static int[] dx = { -1, 0, 1, 0 }; static int[] dy = { 0, -1,..