JAR(Java Archive)란?

Java 애플리케이션을 배포하기 위한 압축 파일 형식.

여러 클래스 파일, 이미지, 사운드 등의 리소스를 하나의 파일로 묶어 관리 가능.

일상에서 흔히 마주치는 .zip 파일과 같은 압축 파일 중 Java 애플리케이션 배포용 압축파일.

Maven, Gradle로 추가된 Jar파일 의존성

 

JAR 파일의 용도

라이브러리 배포

  • Maven, Gradle 등으로 추가 가능한 라이브러리 제작 가능.

애플리케이션 배포

  • 클래스, 리소스, Tomcat 등의 WAS를 묶어 웹 앱으로 배포.

 

Excutable Jar vs Plain Jar

Excutable Jar

  • 연관된 모든 라이브러리를 묶어 생성한 파일.
  • Main 클래스 내부의 main 메소드를 통해 실행 가능.
# 실행방법
java -jar [jar파일명].jar

 

 

Plain Jar

  • 컴파일된 클래스와 리소스 파일만 묶어 생성.
  • 라이브러리 부재 등의 이유로 직접 실행 불가.
  • 보통 라이브러리 배포 목적으로 수행.

 

Jar파일 생성 방법

java cf [파일명].jar [압축대상]

# EX
java cvf test.jar *

 

 

'Language > Java' 카테고리의 다른 글

[Java] Queue 정리  (0) 2024.02.19
[Java] String, StringBuilder, StringBuffer  (0) 2023.10.12

https://www.geeksforgeeks.org/queue-data-structure/

Queue의 개념

https://www.geeksforgeeks.org/queue-interface-java/

Queue는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저장하는 형식을 말한다. 먼저 온 사람이 진료받는 병원 대기줄 과 같은 형태로, 나중에 집어 넣은 데이터가 먼저 나오는 LIFO 구조의 스택과 반대되는 개념이다.

Java에서 Queue는 java.util 패키지 내부에 존재하며 이의 하위 클래스/인터페이스로는 Deque(), PriorityQueue() 등이 있으며 Collection Interface의 확장으로 addAll(), clear(), contains() 등 Collection Interface 메소드 전부 사용 가능하다.

 

Queue 선언

Queue<T> queue = new LinkedList<>();
Queue<T> queue = new ArrayDeque<>();

위 사진에서 볼수있듯 Queue는 interface라 직접 초기화가 불가능하다. 대신에 이를 구현한 LinkedList 혹은 ArrayDeque로 초기화한다.

Queue의 함수

  Throws Exception Return Special Value
Insert add(e) offer(e)
Remove remove() poll()
Examine element() peek()

queue에는 데이터 추가, 삭제, 계산 총 6개의 메소드가 있다.

 

Queue 데이터 추가하기

queue.add(e);
queue.offer(e);
  1. boolean add(E e)
    •  큐 맨 뒤에 값 삽입
    •  삽입 성공 시 return true
    •  큐가 꽉 찬 경우 throws IllegalStateException
  2. boolean offer(e)
    •  큐 맨 뒤에 값 삽입
    •  삽입 성공 시 return true
    •  큐가 꽉 찬 경우 return false

Queue 데이터 삭제하기

queue.remove();
queue.poll();
  1. E remove()
    •  큐 맨 앞의 값 반환 후 삭제
    •  큐가 비어있을 경우 throws NoSuchElementException
  2. E poll()
    •  큐 맨 앞의 값 반환 후 삭
    •  큐가 비어있을 경우 return null

Queue 데이터 조회하기

queue.element();
queue.peek();
  1. E element()
    •  큐 맨 앞의 값 출력 (삭제 x)
    •  큐가 비어있을 경우 throws NoSuchElementException
  2. E peek()
    •  큐 맨 앞의 값 출력 (삭제 x)
    •  큐가 비어있을 경우 return null

요약

  • Queue는 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 형태의 자료구조.
  • Queue를 선언하려면 이의 구현체인 LinkedList나 ArrayDeque를 사용.
  • 데이터 추가는 add(), offer()
  • 데이터 삭제는 remove(), poll()
  • 데이터 조회는 element(), peek()

출처

https://docs.oracle.com/javase%2F7%2Fdocs%2Fapi%2F%2F/java/util/Queue.html

 

Queue (Java Platform SE 7 )

A collection designed for holding elements prior to processing. Besides basic Collection operations, queues provide additional insertion, extraction, and inspection operations. Each of these methods exists in two forms: one throws an exception if the opera

docs.oracle.com

https://cocoon1787.tistory.com/774

 

[JAVA] Queue(큐) 사용법 (add vs offer / remove vs poll / element vs peek)

🚀 자바에서 큐를 사용하면서 값 추가, 삭제, 검색 메서드가 2개씩 있어서 어떠한 차이점이 있는지 알아보기 위해 정리해봤습니다. ⭐️ Queue 선언 Queue q = new LinkedList(); Integer형 선언 ⭐️ Queue에

cocoon1787.tistory.com

'Language > Java' 카테고리의 다른 글

[Java] Jar  (0) 2024.08.05
[Java] String, StringBuilder, StringBuffer  (0) 2023.10.12

개요

Java에서 문자열을 다루는 자료형 클래스로는 String, StringBuilder, StringBuffer 을 사용한다.

3개 클래스 모두 문자열을 다루는 공통점이 있으나, 각각의 장단점을 알아보며 언제 사용하는지 알아보자.

String 특징

  • 불변객체로 생성된 객체가 변경되지않는다.
  • 'concat()', '+' 연산자를 통해 문자열 수정 가능
  • 수정이 될 경우 새로운 객체가 생성되기에 문자열 수정이 잦은 경우 부적절하다.
  • 간단한 문자열 연산에 사용하기 용이하다.

StringBuilder 특징

  • 가변객체로 생성된 객체가 변경될수있다.
  • 수정이 될 경우 새로운 객체가 생성되지 않고 변경이 된다.
  • 반복적인 문자열 연산에 사용하기 용이하다.

StringBuffer 특징

  • StringBuilder와 비슷한 thread-safe한 특성을 가지고있다.
  • 멀티스레드 환경에서 동시적으로 접근하는 상황의 경우 사용될수 있다.

'Language > Java' 카테고리의 다른 글

[Java] Jar  (0) 2024.08.05
[Java] Queue 정리  (0) 2024.02.19

+ Recent posts