Collection Framework 값들을 담아주는 형태 - NonPrimitive 타입만 저장이 가능 Primitive 형을 Wrapper 클래스를 통해 Boxing - Integer Collection(List, Set), Map 으로 나뉜다. (인터페이스) Hash : 값이 중복될 수 없는 유니크한 특징 Tree : 이진 트리 순회 방법 중 중위 순회 방식 Collection 기본 자료형이나 자료형의 그룹 형태로 저장 및 관리를 해주는 인터페이스 List (순서 o, 중복 o) - ArrayList, LinkedList, Vector, Stack Set (순서x, 중복 x) - HashSet, SortedSet, TreeSet ArrayList Collection에서 제일 많이 사용 하는 리스트 ..
배열 특정 자료형이 연속된 공간에 확보된 집합 split String names = "a|b|c|d|e"; String[] arr = names.split("\\|"); String[] arr2 = names.split("|"); System.out.println(Arrays.toString(arr)); System.out.println(Arrays.toString(arr2)); [출력] [a, b, c, d, e] [a, |, b, |, c, |, d, |, e] split 구분자를 이용해서 String 값을 분리할 수 있다. Arrays.toString으로 배열 출력을 쉽게 하자. 다차원 배열은 Arrays.deepToString() equals Arrays.equals(arr, arr2) 두 개의 ..
문자 찾기 public class Main { public int solution(String str, char t) { int answer = 0; str = str.toUpperCase(); t = Character.toUpperCase(t); for (char x : str.toCharArray()) { if ( x == t ) answer ++; } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.next(); char c = kb.next().charAt(0); System.out.print(T.solution..
JVM 메모리 구조 JVM : 자바 바이트 코드들을 OS에서 어떻게 실행할 지에 대한 표준 스펙 static 키워드를 이해하기 위해선 JVM의 메모리 구조 및 실행 단계에 대한 선행되어야 한다. JVM 구조 Garbage Collector : Heap 영역에 더이상 사용 하지 않는 객체 제거 Execution Engine : .class 파일을 하나의 명령 단위로 읽어 컴퓨터가 이해할 수 있는 기계어로 번역 후 실행 Class Loader : .java 파일을 .class로 (바이트코드)로 컴파일된 바이트 코드들을 운영체제를 통해 메모리를 할당 받아둔 Runtime Data Area로 적재하는 역할 Runtime Data Area : JVM 메모리 영역으로 OS로 부터 별도로 메모리 공간을 할당 받고 J..
객체지향 프로그래밍 - OOP 현실 세계를 객체로 모델링하여 소프트웨어를 개발하는 방법 소프트웨어를 개발할 때 시스템에 대한 요구사항이 계속해서 추가되고 변경된다. 이를 객체지향에 대입 장점 : 객체마다 유연하게 프로그래밍하여 시스템의 확장이나 변경에 쉽게 대응(안정적인 유지 보수 가능) 단점 : 처리 속도가 상대적으로 느리고 설계할 때 많은 시간과 노력 필요 객체지향 프로그래밍의 3요소 캡슐화(Encapsulation) - 정보은닉 public class Ex1 { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) { this.id = ..
JSOP 라이브러리 // https://mvnrepository.com/artifact/org.jsoup/jsoup implementation group: 'org.jsoup', name: 'jsoup', version: '1.14.1' mvnrepository 에서 jsop 라이브러리 받아오기 (gradle 버전) Document : 웹사이트의 모든 소스코드 (HTML, CSS, Javascript 포함) Elements : Document의 특정 범위, 일부 Tag를 담을 수 있다. Element 는 Elements에서 얻은 최종 요소 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.j..
로봇 배제 표준 (Robots exclusion standard) 웹사이트에 로봇이 접근하는 것을 방지하기 위한 규약으로 일반적으로 로봇의 접근을 제한하는 내용을 robots.txt 파일에 기술되어 있다. (웹사이트 URL 주소) /robots.txt User-agent : * (모든 로봇) , User-agent : bingbot (bingbot이라는 이름의 로봇) Disallow : / (모든 경로 불허) Allow : /$ (최상위 경로 허가) User-agent : bingbot Disallow : / bingbot은 모든 경로를 크롤링하는 행위를 허락하지 않는다. User-agent : * Disallow : /owner 모든 로봇은 /owner 경로를 크롤링하는 행위를 허락하지 않는다. Use..
람다식이란 (Lambda expression) 메서드를 하나의 식으로 표현한 것 메서드 이름과 반환값이 없어서 익명함수라고도 한다. Java8부터 사용가능 (매개변수..) -> { 실행문 }; 람다식 예시 public class Ex1 { public static void main(String[] args) { Sample01 f = (n) -> System.out.printf("%s", n); //():매개변수가 없을 때 f.test("테스트"); Sample01 f2 = new Sample01() { @Override public void test(String n) { System.out.printf("%s", n); } }; f2.test("테스트"); } } @FunctionalInterface ..