Java 35

CPU 바운드 작업 vs 비동기 I/O 작업

1. CPU 바운드 작업이란?CPU 바운드 작업은 작업의 성능이 주로 CPU 처리 능력에 의존하는 작업입니다. 이 작업은 대기 시간이 거의 없고, CPU가 계속해서 연산을 수행해야 하는 작업으로, 처리 속도는 CPU 성능에 의해 결정됩니다.CPU 바운드 작업의 특징:계산 중심 작업으로, CPU가 쉬지 않고 계속 연산합니다.대기 시간이 없으며, 작업의 성능은 CPU 속도에 의존합니다.작업이 완료되기까지 다른 작업을 실행할 수 없습니다.CPU 바운드 작업의 예:복잡한 수학적 계산: 행렬 연산, 암호화, 해싱 등.비디오/이미지 처리: 인코딩/디코딩.데이터 분석: 머신러닝 모델 훈련.물리 시뮬레이션: 게임에서 물리 엔진 연산.CPU 바운드 작업의 최적화:병렬 처리: 멀티코어 CPU의 장점을 살리기 위해, 멀티스..

Java 2024.10.02

[Java] JDK 환경변수 설정 방법 및 이유

JDK 환경변수 설정 이유 환경변수 설정을 통해 운영체제 어디에서든 Java를 인식할 수 있도록 할 수 있습니다. *bin 폴더 안에 javac를 비롯한 각종 실행파일이 있기 때문에 환경변수를 설정할 때, jdk의 bin 디렉터리 경로를 등록합니다. 자바 실행파일의 경로가 환경변수 path에 제대로 세팅되어 있다면 어느 곳에서나 jdk의 bin에 있는 프로그램들을 실행시킬 수 있습니다. 환경변수 설정 방법 1. 환경 변수를 검색하여 '시스템 환경 변수 편집'을 열어주세요. 2. 고급 탭을 클릭 후 하단에 있는 환경 변수를 눌러줍니다. 3. 시스템 변수 탭에서 새로 만들기를 클릭하고, 값을 입력해 줍니다. 4. 시스템 변수에서 Path를 찾아 클릭하고, 편집을 눌러줍니다. - 새로 만들기를 통해 %JAVA..

Java/Java 2023.07.27

Java, Intelij,JetBrains Toolbox 다운로드

Java 설치 https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdk#zulu Azul Downloads According to the Gartner report, “by 2025, more than 70% of Java applications will be deployed on third-party Java runtimes, up from 30% in 2019.” www.azul.com 위에 링크를 타고 들어가 본인의 OS , java 버전, 아키텍처에 맞게 선택한 뒤 다운로드를 합니다. IntelliJ 설치 https://www.jetbrains.com/ko-kr/idea/down..

Java 2023.07.27

Java_ Optional Class

Optional Class란? 자바에서 null 값은 런타임에서 예외를 발생시킬 수 있는 원인 중 하나입니다. 이를 해결하기 위해 Java 8에서는 Optional 클래스가 도입되었습니다. Optional 클래스는 null 값을 감싸고 있는 래퍼 클래스로, null 값을 명시적으로 다룰 수 있게 합니다. 이를 통해 코드의 가독성과 안정성을 높일 수 있습니다. Optional 메서드 우선, Optional 객체를 생성할 때는 of(), ofNullable() 또는 empty() 메서드를 활용합니다. of() 메서드는 null이 아닌 값을 감싸는 Optional 객체를 생성하며, ofNullable() 메서드는 null 값을 감싸는 Optional 객체를 생성합니다. empty() 메서드는 비어있는 Opti..

Java/Java 2023.02.21

Java 깊은 복사(Deep Copy) 와 얕은 복사( Shallow Copy)

깊은 복사와 얕은 복사의 의미 깊은 복사와 얕은 복사를 단순하고 명료하게 정리해 보면 얕은 복사(shallow copy)는 복사한 배열이 원래 배열의 '주소값'을 가져오고 깊은 복사(deep copy)는 복사한 배열이 원래 배열을 '그대로 가져온다 정도로 정리해 볼 수 있습니다. 얕은 복사는 복사하려는 배열의 주소값을 가져오며, 단순한 변수 선언을 통한 복사의 형태이고, 그래서 복사한 배열을 수정할 경우, 원래 배열도 같이 수정되게 됩니다. (예를 들어 자물쇠의 열쇠를 복사하는 것과 같아, 복사한 열쇠를 통해 자물쇠를 열어 그 안의 내용을 바꾸면 기존의 열쇠를 통해 열어도 그 안의 내용물이 변화되는 것과 같습니다.) 반면에 깊은 복사는 새로운 배열에 원래 배열을 복사하는 겁니다. 따라서 복사한 배열을 수..

Java/Java 2023.02.01

Java _ 래퍼 클래스(Wrapper Class)

Wrapper Class는 무엇일까요? 래퍼 클래스는 하나 이상의 기본 타입(primitive type)을 wrap 하는 클래스입니다. 기본타입인 boolean, byte, char, int, float, double, long, short을 객체로 사용하는 클래스들을 말하는 거죠 그런 래퍼 클래스에는 Integer,Boolean,Double 등이 있습니다 그런데, 방금 위에서 하나 이상의 기본 타입이라 했는데 왜 하나 이상이라는 표현을 썼을까요? Primitive(기본타입) Wrapper Class(래퍼 클래스) Constructor Argument (생성 인자) boolean Boolean byte or String char Character char int Integer int or String f..

Java/Java 2023.01.29

Java Lambda(람다)

람다식은 함수형 프로그래밍 기법을 지원하는 자바의 문법요소이다. Lambda 식을 이용하기 위해서는 interface 가 필요하며 매개변수와 리턴값의 유무에 따라 3가지의 람다식 유형이 존재한다. 1. 매개변수 o 리턴값 o 2. 매개변수 x 리턴값 x 3. 매개변수 o 리턴값 x 아래의 코드 내용은 유형 1,2,3에 맞게 각각 나타내었다. ex) LambdaJg1.play1 은 매개변수 o 리턴값 o의 유형 interface LambdaJg3{ void play3(String x); } interface LambdaJg2 { void play2(); } interface LambdaJg1 { int play1(int x, int y); } public class CordJgLambda1 { public..

Java/Simple code 2023.01.27

Java 소수점 자릿수 표현하기 3가지 방법

1. System.out.printf("%. 3f") %.(num)f -> num 숫자에 따라 소수점 num까지 표현 즉, 3이면 소수점 4번째 자리에서 반올림하여 3번째 자리까지 나타낸다. public class CordJgwow { public static void main(String[] args) { double n1 = 6.2; double n2 = 3.4; double result = n1/n2; System.out.printf("%.3f",result); } } //출력 1.824 2. String.format() 대략적인 구조는 1번과 비슷하지만 String 타입의 참조변수에 담아줘서 출력하는 방식이다. public class CordJgwow { public static void main..

Java/Simple code 2023.01.27