본문 바로가기
반응형

JAVA5

해시(Hash) & 해시셋(HashSet) & 해시맵(HashMap) 해시(Hash) - 임의의 크기 데이터를 고정크기 데이터로 변환하는 것(해싱) HashTable - Key 값을 해시 함수로 계산(해싱)해서 배열의 인덱스를 저장 - 데이터가 저장되는 공간을 "버킷", "슬롯" 이라 함 - 키 전체 개수와 깉은 크기의 버킷을 가진 테이블을 Direct-adress table 이라 함 (충돌이 일어나지 않지만 공간 효율성 하락) HashTable과 HashMap 공통점 - 내부적으로 H ash 공법 사용 - Map 인터페이스 구현 - Key 와 Value 값 가짐 차이점 HashTable - 동기화 보장 O HashMap - 동기화 보장 X HashSet - 내부적으로 Hash 공법 사용하지만, Set인터페이스 구현(중복 X) 2020. 6. 28.
ORM(Object-Relational Mapping), JPA(Java Persistence API) ORM - 객체는 객체대로, 관계형DB는 DB 대로 설계를 따로 함 - ORM은 객체와 RDB 두 기둥 위에 있는 기술 JPA - ORM 기술 표준 - 인터페이스의 모음 JPA의 유지보수 측면 - 기존 : 필드 변경시 모든 SQL을 수정해야 함 - JPA : 필드만 추가하면 JPA가 알아서 SQL을 수정함 특징 - 객체 그래프를 완전히 자유롭게 탐색 가능 - 지연로딩 전략(Lazy Loading) 사용 -> 객체를 사용하는 시점에 SELECT 쿼리로 객체를 가져오는 전략 - 트랜잭션을 커밋하기 전까지 메모리에 INSERT 쿼리를 쌓음 작동순서 개발자가 JAVA 어플리케이션에서 JPA 사용 - JPA 내부에서 JDBC API를 사용 - SQL 호출 - DB와 통신 2020. 6. 28.
JAVA SE 와 JAVA EE JAVA SE (Java Standard Edition) 자바 표준 에디션은 가장 기본이 되는 에디션입니다.흔히 자바 언어라고 하는 대부분의 패키지가 포함된 에디션 주요 패키지로는 java.lang.*, java.io.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* 등 JAVA EE (Java Enterprise Edition) 자바로 구현되는 웹프로그래밍에서 가장 많이 사용되는 JSP, Servlet을 비롯하여, 데이터베이스에 연동하는 JDBC, JNDI, JTA, EJB 등의 많은 기술들이 포함 Java EE는 Java SE의 API에 추가로(lib 디렉토리에 포함되어 있는 JAR파일들)의 차이 출처: https://210life.tistory.com/e.. 2020. 6. 25.
String, String Buffer, String Builder 비교 String - immutable(불변) - 리터럴을 통해 생성되면(String a="hello";) 그 인스턴스의 메모리 공간은 변하지 않음 - 리터럴로 생성하면 "String Pool"에 생성 - 문자열 값이 변경되면 String Pool의 공간에 메모리를 할당받아 새로운 String 클래스 객체를 만듬 (원래 문자열을 가비지컬렉터를 통해 삭제돼야함, 언제사라질 지는 모름) - 문자열 연산이 많아지면 객체를 계속 새로 만드므로 성능 저하 - 대신 String 클래스는 "불변"하므로 단순히 "조회" 연산에서는 속도가 빠름 - 멀티쓰레드에서도 동기화를 신경쓸 필요가 없다 = 문자열 연산이 적고, 자주 참조(조회)하는 경우 좋다. StringBuffer & StringBuilder (공통점) - mutab.. 2020. 6. 8.
스레드 (Thread) Thread 스레드 - 각 응용프로그램은 하나의 프로 세스를 가짐 - 스레드는 프로세스를 여러개(작업단위)로 나눈 조각 - 프로세스는 스레드에 대한 일종의 컨테이너 역할 (동시에 여러 작업을 처리할 수 있다.) - 프로세스 = A program in execution - 프로그램에서 사용자가 접속할 때 마다 사용자 각각을 처리할 수 있는 처리모듈(=스레드)이 생성되어야 함. 프로그램 실행 - 프로세스 생성 - 사용자의 접속마다 지원하는 스레드 생성. 멀티 스레딩(Multi Threading) & 멀티 태스킹(Multi Tasking) 멀티스레딩 - 스레드간의 자원 공유 가능 - 프로그래밍을 통해 구현 - 독립된 수행 불가능 멀티 태스킹 - 자원을 공유하지 않음 - 운영체제에서 지원해야 수행 가능 - 멀티.. 2020. 6. 8.
반응형