자바 정리 3

다람·2023년 5월 19일
0

JAVA

목록 보기
27/27

컬렉션 프레임워크

다수의 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스의 집합

List

순서가 있는 데이터의 집합, 데이터의 중복 허용
ArrayList, LinkedList 등이 있다.

Set

순서가 없는 데이터의 집합, 데이터 중복 불허용
HashSet, LinkedHashSet 등이 있다.
map의 key,value 구조에서 key 대신 value가 들어가 value를 key로 하는 자료구조

Map

키와 값이 한 쌍으로 이루어져 있으며 키를 기준으로 중복 허용하지 않는다.
순서가 없으며 key의 순서를 보장하기 위해서 LinkedHashMap을 사용
HashMap, TreeMap, HashTable, Properties 등이 있다.

Vector, ArrayList 차이

벡터는 한 번에 하나씩 쓰레드에서만 접근 가능하나
ArrayList는 동시에 여러 쓰레드에서 접근 가능

hashSet, treeSet, LinkedHashSet 차이

hashSet

  • 세트의 반복 순서를 보장하지 않거나 시간이 지나도 순서가 일정하게 유지
    --> 성능이 중요하고 요소의 순서가 중요하지 않은 경우 사용

treeSet

  • 사용된 생성자에 따라 요소의 자연스러운 순서에 따라 또는 지정된 comparator에 따라 반복
    --> 요소가 자연적인 순서를 사용하거나 comparator에 의해 순서화되어야 할때 사용

linkedHashSet

  • 요소가 집합에 삽입된 순서와 동일한 예측 가능한 반복 순서를 정의하는 모든 요소를 통해 이중 연결된 목록을 실행
    --> 요소의 삽입 순서를 유지해야 하는지 여부에 따라 사용

hashMap, linkedHashMap, hashTable, treeMap 차이

위 네가지 모두 key에서 value로의 대응 관계가 있고 키를 기준으로 순회할 수 있다.

hashMap

  • 키의 순서는 무작위
  • null key, value 허용

linkedHashMap

  • 키의 순서는 삽입한 순서대로 정렬
  • 구현은 양방향 연결 버킷으로 구현

treeMap

  • 키의 순서는 정렬
  • 구현은 레드-블랙 트리로 구현

hashTable

  • 키의 순서는 무작위
  • 구현은 연결리스트로 이루어진 배열
  • null key, value 불허

일반적으로 HashMap을 사용하나
삽입한 순서대로 키 정보를 얻고 싶다면 LinkedHashMap
정렬된 순서대로 키 정보를 얻고 싶다면 TreeMap
병렬 처리를 하면서 자원의 동기화를 고려해야 하는 상황이라면 HashTable

Servlet

서버에서 웹 페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램

JSP

HTML을 코딩하기 너무 어렵고 불편해 HTML 내부에 JAVA 코드를 삽입하는 형식이 JSP 즉, 서블릿을 작성하지 않고도 웹프로그래밍을 쉽게 할 수 있게 해주는 기술

Servlet, JSP 차이

Servlet

  • 자바 코드로 구현하고 컴파일, 배포한다.
  • html 태그로 문자열("") 스크림 처리
  • 코드가 수정되면 다시 컴파일하고 배포

JSP

  • 서블릿에 비해 배우기 쉽다.
  • 자바코드를 <% %> 태그 안에서 처리한다.

직렬화

시스템 내부에서 사용하는 객체 또는 데이터를 외부의 시스템에서도 사용할 수 있도록 바이트 형태로 데이터 변환하는 기술
반대로 직렬화된 바이트 형태의 데이터를 다시 객체로 변환하는 과정을 역직렬화라고 한다.
--> 다시 말해, JVM의 메모리에 상주되어 있는 객체 데이터를 바이트 형태로 변환하는 기술

자바 버전

자바 8 버전
1. 람다 표현식
2. Stream (반복문을 처리하는 방법 중 하나로 병렬처리 가능)
3. interface의 default 메소드 구현 가능
4. Optional

자바 11 버전
1. String, File 클래스에 몇 가지 메소드 추가
2. 람다 표현식에 var 키워드 사용 가능
3. http client 추가

ajax란?

  • 전체 페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법
    자바스크립트를 사용한 비동기 통신
    단점 : 연속적인 데이터 요청 시 서버 부하가 증가하여 페이지가 느려짐
    : 페이지 내 복잡도가 증가하여 에러 발생 시 디버깅이 어려움
    참고 블로그
    https://dev-coco.tistory.com/92
profile
안녕

0개의 댓글