본문 바로가기

반응형

자바/개념

(7)
XML 파싱(DOM,SAX) 파싱 문서를 구성하는 태그를 컴퓨터가 알아 볼 수 있도록 파꿔주는 과정 DOM 파싱 문서 전체를 메모리에 로드하여 원하는 노드에 바로 접근이 가능하다. - XML문서를 읽으면 모든 Element, Text, Attribute 등의 객체를 생성, 이를 Document객체로 리턴한다. - Document 객체는 트리 구조의 자바 객체로 표현되어 있다. - XML 문서가 메모리에 모두 올라가 있기 때문에 노드들의 검색, 수정, 구조변경이 빠르고 용이하다. - SAX 보다 직관적이고 단순하여 DOM 방식을 채택한다. SAX 파싱 XML 문서를 하나의 긴 문자열로 간주한다. - XML 문서를 앞에서 순차적으로 읽어가면서 노드가 열리고 닫히는 과정에서 이벤트가 발생. - 각각의 이벤트가 발생될 때마다 수행하고자 하..
람다식 람다식 자바에서 함수형(함수를 들고다니고 전달하는 형태의) 프로그래밍을 지원하기 위해 8버전부터 추가한 문법 기본 구조 (매개변수1,매개변수2...) -> { 실행문; 실행문; }; 생략되는 내용 매개변수 자료형 생략 가능 (x,y) -> x>y?x:y; 매개변수 하나일 때는 소괄호 생략 가능 ex> x -> {실행문; 실행문;}; 구현 하려는 함수 내부에 실행문이 하나인 경우 중괄호{} 생략 가능 x->System.out.println("x"); 구현하려는 함수 내부의 실행문이 하나이면서 그게 return이면 중괄호에 return까지 생략 (x,y) -> {return x>y?x:y;}; => (x,y) -> x>y?x:y;
Exception, I/O 자바에서는 프로그램 진행 중 (개발자가 처리 가능한) 예외가 발생했을 경우 관련된 클래스로 객체를 생성하여 그 객체를 전달하려 한다. 개발자가 그 예외객체에 대한 처리를 해놓지 않았을 경우 예외 객체는 JVM한테까지 전달되고 결국 프로그램이 중단된다. 예외Exception(개발자가 조치 가능한)의 종류 개발자의 조치가 불가능한 경우 에러Error 라고 부름. 체크예외 - 컴파일러가 빨간색으로 예외처리를 강제하는 예외 비체크예외 - 컴파일러가 빨간색 표시 안하는데 실행하다 보면 나는 에러(RuntimeException 클래스의 자손 클래스 객체들) 예외에 대한 처리 문법 2가지 직접 try-catch-[finally] 작성하기. 현재 메소드를 호출하는 상위 메소드에게 처리를 위임하기. I/O - Input..
Interface & Collection API Interface 특별히 정의하지 않아도 컴파일 시에 아래 제한자가 추가된다. public static final 제한자가 상수 앞에 붙는다. public abstract 제한자가 메서드 앞에 붙는다. 메서드 overriding 시 항상 public 제한자를 갖아야 한다. Collection API 모든 Collection들은 toString을 구현하고 있기 때문에 그냥 실행해도 결과값이 나온다. Set HashSet 정렬되지 않고 중복을 허용하지 않는다. Hash 같은 입력이 들어가면 같은 결과가 나온다. 다른 입력이 들어가도 같은 결과가 나올 수 있다. 이 경우를 해시 충돌이라 한다. 결과를 가지고 입력을 예상할 수 없다. 이것을 일방향성이라 한다. 빠르다. 인풋 길이에 상관없이 일정 이하 길이의 아..
char[] 를 String으로 바꾸는 법 Tip char[] arr; String.valueOf(arr); // 이렇게 하면 String 값으로 반환이 된다. Integer.parseInt(String.valueOf(arr)) // 이렇게 하면 간단하게 int값으로 변환이 가능하다.
[자바] String String Stirng의 +연산은 메모리 내부에서 String객체 값이 바뀌는 것이 아니고 StringBuilder를 통하여 연산을 하고 String값으로 다시 반환을 하기 때문에 효율적이지 않다.(메모리 초과가 발생하는 가장 큰 요인이 될 수 있다.) 따라서 연산이 자주, 많이 일어나는 경우에는 StringBuilder를 이용하는 것이 바람직하다. StringBuilder 사용 가능한 메소드 append(String s): 가장 마지막에 s를 추가한다. insert(int offset, String s): offset위치에 s를 추가한다. reverse(): 순서를 바꾼다. 현재 StringBuilder에 영향을 미친다. setCharAt(int index, char c): index의 문자를 c로 ..
자바 modifier와 생성자 클래스 변수 Static 예약어 멤버 변수와 메서드 앞에 붙일 수 있는 modifier로서, 활용 방법을 제어함 Static예약어가 붙지 않는 인스턴스 변수 생성된 인스턴스마다 그 안에 클래스의 인스턴스 변수들이 포함됨 일반적인 멤버 변수를 인스턴스 변수라고 부름 Static 예약어가 붙는 클래스 변수 클래스로부터 생성된 인스턴스에 포함되지 않는 변수 많은 인스턴스를 생성하더라도 메모리에 하나의 변수만 존재함 객체를 생성하지 않고도 접근할 수 있는 변수 클래스 변수가 필요한 이유 동일한 값을 가지고 있는 변수를 클래스 변수로 선언하면 메모리 관리에 좋다 인스턴스 변수 클래스로부터 객체가 생성될 때마다 각 객체의 변수들이 생성됨 한 객체의 값이 변경되어도, 다른 객체의 값에 영향을 주지 않음 클래스 변수 ..