본문 바로가기

개발 언어 및 알고리즘 기초/JAVA 기초

(9)
[Java] 자바에서 난수 생성하기 자바에서는 다양한 클래스를 이용하여, 다양한 방식으로 난수를 생성할 수 있다. 방식 별로 난수의 범위도 다르다. 오늘은 난수 생성 방법들에 대해 정리해보려 한다. 1. Math.random() 메소드 0 이상 1 미만의 double 데이터를 반환하는 명령. (0 // 0 이상 1 미만의 난수 얻기double num = Math.random();// 랜덤 주사위 값 얻기int dice = (int) (Math.random() * 6) + 1; 2. Random 클래스 다양한 형태의 난수를 생성할 수 있는 클래스로 객체를 생성하여 사용한다. 난수를 생성하는 메소드들은 다음과 같다.반환 타입메소드설명booleannextBoolean()boolean형 난수 반환intnextInt()int형 난수 반환intnex..
[Java] 네트워크 (Network) 자바 공부 중 네트워크에 관한 내용을 정리한 것에 대한 기록이다. 아래 책을 공부 중이다.신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121.   네트워크 기초  네트워크는 여러 컴퓨터들을 통신 회선으로 연결한 것으로, LAN(Local Area Network)와 WAN(Wide Area Network)가 있다. 우리가 흔히 말하는 인터넷은 WAN에 해당한다. 네트워크에서는 서버와 클라이언트가 데이터를 주고받는다.네트워크에서 서비스를 제공하는 프로그램을 서버(Server), 서비스를 요청하는 프로그램을 클라이언트(Client)라고 하는데, 클라이언트가 서비스를 요청하면, 서버가 처리하여, 다시 클라이언트에게 처리 결과를 응답하는 식이다.   1. IP 주소 IP(Internet ..
[Java] Thread Pool (스레드 풀) 자바 네트워크 구현 관련된 공부 중 Thread Pool에 관한 내용이 다시 헷갈려 정리한 것에 대한 기록이다. 아래 책을 공부 중이다.신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121.   Thread Pool 이란?  Thread Pool(스레드 풀)이란 작업 처리에 사용되는 스레드를 제한된 개수만큼 정해 놓고 작업 queue에 들어오는 작업들을 스레드가 하나씩 맡아서 처리하는 방식이다. 이는 병렬 작업 처리가 많아지면 스레드 개수가 폭증하여 CPU가 바빠지고, 메모리 사용량이 증가하여 결국 애플리케이션의 성능까지 저하되는 현상을 방지하기 위해 사용된다.  Thread Pool이 작동하는 방식은 다음과 같다. 우선 애프리케이션에서 스레드풀에 작업 처리 요청을 한다. 그러면 ..
[Java] 스트림(Stream) 요소 처리 자바 공부 중 Stream에 대한 내용이 복잡하다고 느껴, 정리한 것에 대한 기록이다. 아래 책을 공부 중이다.신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121.    Stream(스트림) 이란?  Stream(스트림)은 for문이나 Iterator 외에 컬렉션 및 배열의 요소를 반복 처리 하기 위한 또 다른 방법 중 하나이다. Stream과 Iterator는 유사하지만 아래와 같은 차이를 가진다.1. 외부 반복자인 Iterator 및 for문과 달리 '내부 반복자'로 처리 속도가 빠르고 병렬 처리에 효율적이다.2. 람다식으로 다양한 요소 처리를 정의할 수 있다.3. 중간 처리와 최종 처리를 수행하도록 파이프 라인을 형성할 수 있다.   차이점들을 하나씩 보자. 우선 내부 반복..
[Java] Wrapper Class (래퍼 클래스, 포장 클래스) 자바 공부 중 Wrapper Class에 대한 내용이 헷갈려 정리한 것에 대한 기록이다. 아래 책을 공부 중이다. 신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121. 참고한 블로그 글들이다. https://medium.com/@s23051/%EB%9E%98%ED%8D%BC-%ED%81%B4%EB%9E%98%EC%8A%A4%EB%9E%80-wrapper-class-cc5aa6f7cdd1 래퍼 클래스란(Wrapper Class)? 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class… medium.c..
[JAVA] StringBuilder로 문자열 조작하기 StringBuilder는 자바에서 사용 가능한 문자열과 관련된 주요 클래스 중 하나이다. 이 클래스는 효율적인 문자열 조작 기능이 필요할 때 사용하게 된다. 그렇다면 왜 자바에서는 특별히 효율적인 문자열 조작을 위해 StringBuilder를 사용할까? StringBuilder의 필요성을 파악하기 위해서는 우선 자바에서 문자열을 처리하는 방식을 알아야 한다. 아래 코드를 예로 보자. String str = "abc"; str += "de"; 위와 같이 str에 "abc"를 저장했다가 "de"를 덧붙이면 우리의 일반적인 생각 혹은 C를 공부해 보신 분이라면 C에서는 아래 표와 같이 "abc"가 있던 메모리 공간 뒤에 "de"를 저장하여, 하나의 문자열로 처리하는 것을 떠올릴 것이다. 변경 전 str 'a..
[JAVA] Collection Framework 정리 자바 공부 중 Collection Framework에 대한 내용이 방대하다고 느껴져, 기억할 겸 정리한 것에 대한 기록이다. 아래 책을 공부 중이다. 신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121. 0. Collection Framework (컬렉션 프레임워크) Collection Framework란 널리 알려진 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 만들어진 각종 인터페이스와 클래스들이다. java.util 패키지에 포함되어 있다. Collection Framework는 크게 세 가지로 분류할 수 있는데, List, Set 그리고 Map이 이에 해당한다. List와 Set이 유사하여 이는 Collection interface로 정의되고, M..
[JAVA] Thread 상태 자바 공부 중 스레드 상태에 대한 내용을 자꾸 까먹게 되어 정리한 것에 대한 기록이다. 아래 책을 공부 중이다. 신용권, 임경균, 『이것이 자바다』, 한빛미디어(2023), p120-121. 1. Thread 상태의 3단계 아래 그림과 같이 Thread는 크게 3가지 상태를 가진다. 첫 번째는 스레드 객체가 새로 생성되는 객체 생성 단계이고, 두 번째는 실행을 기다리고 있는 상태인 실행 대기 상태이다. 실행 대기 중인 스레드들은 CPU 스케쥴링에 따라서 실행상태 실행대기상태를 반복하다가 일시정지가 되기도 하고 다시 실행 대기 상태가 되기도 한다. 이후 run() 메서드가 종료되어 더 이상 실행할 코드가 없으면 종료 상태에 도달하게 된다. Thread 객체 생성 [ NEW ] 실행 대기 [ RUNNABLE..

728x90