전체 글 562

[JAVA]NaN과 Infinity

Infinity: 정수를 0.0으로 나눌 경우. 무한대의 숫자.0으로 나눌 때와의 차이0과 0.0으로 나눌 때 이러한 차이가 생기는 이유는 JAVA가 IEEE 754(부동 소수점 표준)을 따르기 때문입니다.이 표준은 수학적으로 무한대와 정의되지 않은 숫자를 허용합니다.0으로 나누는 것은 산술적으로 정의되지 않은 연산이기에 java.lang.ArithmeticException 예외가 발생합니다.  Double/Float.isInfinite(소수): infinity 다루기  NaN: Not a Number. 숫자가 아닌 값.자바에서 % 는 나머지를 구하는 연산자이기 때문에 0.0으로 나눌 시 NaN을 반환합니다.0으로 나눌 시에는 /나누기를 사용할 때와 마찬가지로 ArithmeticException예외가 발..

[JAVA]표준출력 System.out.print/println/printf()

모든 출력에 표준출력을 사용하지는 않습니다. 표준출력은 사용자와의 직접적인 상호작용이나 프로그램의 정상적인 출력 결과를 나타냅니다.(알고리즘을 풀 때와 달리 프로젝트에서는 생각보다 별로 사용할 일이 많지 않다는 거죠.) 프로그램 실행 중 발생하는 상태, 오류, 이벤트 등을 기록(Log)할 때는 Logger를 사용합니다.  System.out.print(): 줄바꿈❌ 출력.  System.out.println(): 줄바꿈⭕ 출력.❗ sysout표준 출력 중 가장 많이 사용되기에 자동완성 단어가 있는데 그게 바로 sysout입니다.  특징1 + 2 + ""→ 3 출력. 앞에서 부터 1 + 2를 더한 값 3에 + " "가 된 것입니다."" + 1 + 2→ 12 출력. 문자열 "" 이 앞에 오면 뒤의 값도 모두..

[JAVA]Queue와 LinkedList

Queue: FIFO (First In First Out)먼저 저장한 것을 먼저 꺼낸다.   은행 창구의 차례 대기열 등에서 사용됩니다.데이터를 넣는 작업은 인큐 enqueue 라 하고, 데이터를 꺼내는 작업을 디큐 dequeue 라 합니다.데이터를 꺼내는 쪽을 프런트 front , 데이터를 넣는 쪽을 리어 rear 라 합니다.배열로 queue를 만든 코드(참고용, 실제로 Queue라는 데이터타입이 있으므로)더보기import java.util.Arrays;public class IntAryQueue { private int max; //queue size private int num; //number of elements private int[] que; //que array..

[JAVA]ArraList

ArrayList이름에 array배열이 들어가 있는 걸 보면 알 수 있듯이, 데이터의 저장공간을 배열을 사용한다.저장순서 index를 가진다.중복을 허용한다.요소가 추가되면 저장공간이 자동으로 늘어난다.ArrayList클래스에 있는 메서드 뿐아니라 Collection클래스에 있는 메서드도 상속되어 사용할 수 있습니다.선언방법 기본생성 → List lst1 = new ArrayList(); 용량지정 생성 →  List lst2 = new ArrayList(3); 다른 Collection을 담아서 생성할 수 있다. LinkedList, vector 등도 추가 가능. →  List lst3 = new ArrayList(lst2); add(element): 뒤에서 부터 요소를 추가한다.  add(index, ..

[JAVA]Vector란?

ArrayList의 구버전자료형 이라고 생각하시면 됩니다.  개발을 하다보면 AS-IS(현재 코드)에 vector가 보이곤 합니다.이를 TO-BE(구현할 코드)로 바꾸려면 ArrayList로 바꾸어서 개발하시면 됩니다.  특징하나의 스레드가 실행 완료해야만, 다른 스레드를 실행할 수 있다.그래서 스레드가 안전하다(Thread Safe). 멀티 스레드 환경에서 안전하게 객체를 추가, 삭제 할 수 있다는 뜻이다. Vector와 ArrayList 차이점Vector는 동기화 되어있고ArrayList는 동기화 되어있지 않다.

[JAVA]객체지향 4가지 원칙(특징)

4 Principles of OOP  추상화 Abstraction공통 개념들을 추상적인 큰 개념으로 묶을 수 있다.ex) 같이 쓰이는 메서드들을 class에 묶고 다시 package로 묶는다.상속 Inheritance부모 클래스가 가진 필드와 메서드를 자식 클래스가 사용할 수 있게 한다.반복을 줄이고 재사용성을 높인다.다형성 Polymorphism동일한 인터페이스를 통해 다양한 객체를 사용할 수 있게 한다.캡슐화 Encapsulation필드&메소드를 하나로 묶되, 숨길 데이터를 접근제한자를 이용해 은닉하여 보호한다.인터페이스를 통해서만 데이터에 접근할 수 있게 한다.※ 관련 포스팅2024.03.13 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA]상속 Inheritan..

[JAVA]Arrays: 배열 다루기

Arrays 클래스란jdk docsArray 배열이란❓2024.08.22 - [☕ 자바 JAVA/☕ 변수와 자료형 Variables & Data Type] - [JAVA]배열 Array [ ]  Arrays.toString(배열): 배열을 문자열로 반환한다.여기 밑으로는 Arrays.toString()코드를 좀 더 간단히 쓰고자 아래와 같은 함수를 만들어 사용했습니다.  Arrays.deepToString(배열): 다차원배열을 문자열로 반환한다.  Arrays.fill(배열, value): 배열을 특정 값으로 채운다.  setAll(배열, 람다식): 람다식을 이용해 값을 채운다. 람다식이란❓2024.12.11 - [💬 프로그래밍 표현식] - [Lambda]람다식  Arrays.copyOf(배열, int..

[JAVA]Collections 종류

Collections List순서 ⭕중복 ⭕구현클래스 종류: ArrayList, LinkedList.Set순서 ❌중복 ❌ 구현클래스 종류: HashSet, TreeSet.Mapkey-value 쌍을 저장한다.키는 중복 ❌구현클래스 종류: HashMap, TreeMap.Queue요소들이 순서대로 처리된다.구현클래스 종류: LinkedList, PriorityQueue.배열Array와 차이점크기가 가변적이다.다양한 메서드를 사용할 수 있다.인터페이스(List, Set, Map)는 단독으로 사용할 수 없습니다.구현클래스(ArrayList, HashMap...)들이 필요합니다. 그래서 보통 코드를 적을 때List lst = new ArrayList(); 와 같이 적습니다.가장 많이 쓰이는 게 Map. 그 다음이..

반응형