BackEnd/Java57 [Java] 가비지 컬렉션 Garbage Collection 가비지 컬렉션 Garbage Collection 가비지 컬렉터가 더이상 사용하지 않는 객체를 제거하는 것을 가비지 컬렉션이라고한다. 가비지 컬렉션의 특징 자동 메모리 관리 가비지 컬렉션은 프로그래머가 구현할 수 없다. 가비지 컬렉션은 객체이지 참조가 아니다. 가비지 컬렉션의 대상은 살아있는 스레드가 더이상 참조하지 않는 객체이다. 다른 참조 변수가 참조하고 있는 객체는 가비지 컬렉션의 대상이 될 수 없다. 객체에 할당된 메모리를 명시적으로 해제할 수 없다. 가비지 컬렉터가 객체를 어떤 순서로 정리하는지 알 수 없다. 가비지 컬렉터가 언제 수행될지 알 수 없다. 가비지 컬렉터는 JVM이 결정하며 우리는 단지 요청만 할 수 있다. 가비지 컬렉션이 되려면 참조 변수에 null할당하기 참조변수에 null을 할당.. 2021. 7. 27. [Java] 자바로 Excel 파일 만들기 [JSP] JXL 라이브러리를 사용하여 엑셀로 다운로드 JXL 라이브러리를 사용하여 엑셀로 다운로드 JXL 라이브러리를 사용하여 원하는 화면을 엑셀로 다운... blog.naver.com ▲ JXL 라이브러리 다운로드 방법 https://noirstar.tistory.com/264 SQL Injection 이란? (SQL 삽입 공격) 1. SQL Injection 1.1 개요 SQL Injection SQL Injection 이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작 noirstar.tistory.com ▲ 참고한 블로그 2021. 7. 27. [Java] 아파치 POI 설치 및 사용법 아파치 POI 설치 아파치 POI는 마이크로소프트 오피스 파일 포맷을 순수 자바 언어로 읽고 쓰는 기능을 제공한다. 주로 워드, 엑셀, 파워포인트 등의 파일들을 지원한다. 아래 링크를 클릭하여 다운로드 페이지로 이동한다. 2021. 7. 26. [Java] IO Stream 입출력 스트림 IO Stream 자바에서 데이터는 스트림(stream)을 통해 입출력된다. 스트림은 단방향으로 연속적으로 흘러가는 것을 말한다. 물이 높은 곳에서 낮은 곳으로 흐르듯, 데이터도 출발지에서 나와 도착지로 들어간다. 프로그램이 데이터를 입력받을 때는 입력스트림, 데이터를 내보낼 때는 출력스트림이라고 한다. 실제 프로그램에서는 데이터의 입력은 키보드, 파일, 네트워크로부터 입력될 수 있다. 데이터의 출력은 모니터 화면이나 파일로 출력될 수 있다. EX01. ByteArrayInput(Output)Stream package IO; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.A.. 2021. 7. 26. [Java] 내부 클래스 Inner Class 내부 클래스 Inner Class class A{ class B{ } } 위와 같이 클래스 내부에 또 다른 클래스가 존재할 수 있다. B는 A의 내부 클래스이고, A는 B의 외부 클래스이다. 내부 클래스 B는 외부 클래스인 A가 아닌 클래스에서 잘 사용되지 않아야 한다. 외부 클래스가 아닌 다른 클래스에서 내부 클래스에 접근해야 한다면 내부 클래스로 선언해서는 안 되는 클래스를 내부 클래스로 선언했다는 의미이기 때문이다. 보통 AWT, Swing 등의 GUI 이벤트 처리 외에는 잘 사용되지 않는다. 내부 클래스의 장점 내부 클래스에서 외부 클래스의 멤버들에게 쉽게 접근이 가능하다. 코드의 복잡성을 줄여준다. (캡슐화) - 외부에는 불필요한 클래스를 감출 수 있기 때문이다. 내부 클래스의 종류와 특징 cl.. 2021. 7. 22. [Java] 예외 Exception 예외 Exception 예외란 실행시에 발생할 수 있는 모든 에러상황들을 말한다. 예외는 객체이기 때문에 클래스로 정의되어 있으며, 예외는 '던진다' 라고 표현한다. 자바는 예외를 목적에 따라서 처리(핸들링)하도록 설계되어있다. 즉, 예외가 발생한다고 해서 바로 프로그램을 비정상 종료시킬 수도 있고, 예외처리를 통해 프로그램을 종료하지 않고 정상실행상태가 유지되도록 할 수 있다. 특정 API는 컴파일시 예외를 처리하지 않으면 컴파일 되지 않는 예외들도 있다. 자바에서 예외가 발생되는 순서 컴파일 → 실행 → 실행중 예외 발생 → VM이 발생한 예외의 종류 및 내용을 파악한 뒤 예외 객체 생성 → 발생된 코드 밖으로 예외 던지기(throw) → 예외의 콜 스택에 전이 → main메소드 밖까지 던지게 되면 .. 2021. 7. 19. [Java] 2진트리 Binary Tree 2진트리 Binary Tree 이진트리는 여러개의 노드(node)가 트리형태로 연결된 구조 루트(root) 라고 불리는 하나의 노드에서 시작해 각 노드에 최대 2개의 노드를 연결할 수 있는 구조 연결된 두 노드를 부모-자식 관계에 있다고 하며 이에 있는 노드를 부모노드, 아래 노드를 자식노드라고 한다. 하나의 부모노드는 최대 두개의 자식 노드와 연결될 수 있다. 첫번째 저장하는 값은 루트 노드가 되고 두번째 값은 루트 노드에서 값의 크기를 비교하면서 트리를 따라 내려간다. (숫자가 아닌 문자를 저장할 경우 = 문자의 유니코드값을 비교) 작은 값은 왼쪽에, 큰 값은 오른쪽에 저장 이렇게 구성하면 왼쪽 마지막 노드가 제일 작은 값 제일 큰 값이 오른쪽 끝에 위치하게 된다. TreeSet 이진트리를 기반으로 .. 2021. 7. 19. [Java] 스택(Stack), 큐(Queue) 스택 Stack 쌓아 올리는 것 자료를 정해진 방향으로만 쌓을 수 있다. 가장 마지막에 입력된 자료가 가장 먼저 읽힌다. (LIFO) ※ LIFO: Last In First Out, 후입 선출구조 자료 저장: push 자료 읽기: pop 사용 : 브라우저 사용기록, 실행 취소 주요 메소드 push(): 객체 입력 peek(): 스택의 맨 위 객체를 가져온다. 제거 x pop(): 스택의 맨 위 객체를 가져온다. 제거 o Stack st = new Stack(); st.push("1"); st.push("2"); st.push("3"); st.push("4"); st.push("5"); //추출 while (!st.isEmpty()) { String str = st.pop(); System.out.prin.. 2021. 7. 19. [Java] 맵 Map 맵 Map Map은 Key와 value를 가진 집합이며, 중복을 허용하지 않는다.(키는 중복X, 값은 중복O) {key=value, key=value...} 와 같은 형태로 저장 java.util 패키지에 여러 집합들을 사용하기 위한 interface와 class가 정의되어 있다. 선언은 다음과 같이 선언한다. Map 객체명 = new HashMap(); 좌변에는 Map, 우변에는 HashMap으로 선언하는 이유? ※ HashMap HashMap은 Map Interface를 implements한 클래스로 중복을 허용하지 않는다. Map이므로 Key-value의 한 쌍으로 구성된다. Key 또는 value값으로 null을 허용한다. ※ HashTable HashMap과 동일한 내부구조를 가지고 있다. Ha.. 2021. 7. 19. [Java] Hash set Hash set - 순서 X 중복 X HashSet은 객체들을 순서없이 저장하고 동일한 객체는 중복 저장하지 않는다. HashSet이 판단하는 동일 객체란 꼭 같은 인스턴스를 뜻하지 않는다. HashSet은 객체를 저장하기 전에 객체의 hashCode()메소드를 호출해서 해시코드를 얻어내고, 그리고 이미 저장된 객체의 해시코드와 비교한다. 만약 동일한 해시코드가 나온다면 equals() 메소드로 두 객체를 비교해서 true가 나온다면 동일한 객체로 판단하고 중복 저장을 하지 않는다. 이런 순서로 동일 객체인지 확인하기 때문에 서로 다른 String 객체인 경우에도 같은 문자열을 갖고 있을 때 중복으로 취급될 수 있다. 문자열을 HashSet에 저장하는 경우, 같은 문자열을 갖는 String 객체는 동등한.. 2021. 7. 19. [Java] VirtualBox 설치 Oracle VM Virtual Box 설치 Downloads – Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt www.virtualbox.org 위 링크에 들어가서, 아래와 같은 항목을 찾아 'windows hosts'를 클릭하여 다운받는다. 그 외 설정은 건.. 2021. 7. 19. [Java] Linked List Linked List Linked List 값 추가하기/삭제하기 LinkedList ll = new LinkedList(); ll.addFirst("A"); ll.addFirst("B"); ll.addFirst("C"); ll.addFirst("D"); System.out.println(ll);//[D, C, B, A] ll.removeLast(); System.out.println(ll);//[D, C, B] ArrayList와 LinkedList 속도 비교 구분 순차적 추가/삭제 중간 추가/삭제 검색 ArrayList 빠름 느림 빠름 LinkedList 느림 빠름 느림 EX01. ArrayList와 LinkedList 중간 추가/삭제 속도비교 List test1 = new ArrayList(); Li.. 2021. 7. 18. 이전 1 2 3 4 5 다음