반응형

Java 6

Java에서 사용하는 정렬(sort) 메소드는 무슨 알고리즘을 사용할까?

정렬 방법Java에서 정수를 오름차순으로 정렬할 수 있는 방법을 찾아봤습니다.1. int[] -> Arrays.sort()를 사용하여 정렬2. List -> Collections.sort()를 사용하여 정렬 Arrays.sort(int[] a)Dual-Pivot Quicksort 사용 참고 : https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#sort-int:A Arrays (Java Platform SE 8 )parallelPrefix public static   void parallelPrefix(T[] array, BinaryOperator  op) Cumulates, in parallel, each element of the give..

Java 2025.02.10

Scanner와 BufferedReader 차이 분석

차이를 분석하게 된 계기코딩테스트 문제를 풀던 중 다른 사람과 푼 문제를 비교하는데 약 0.07초 정도의 차이가 발생한걸 확인했습니다.0.07초도 사용자가 많아 입력량이 많아지면 유의미한 차이라고 느껴져서 비교하게 되었습니다. Scanner정규식 처리입력값을 파싱할 때 내부적으로 정규식 사용(사진 참고)Ex) nextInt() 함수를 사용할 때, 12라는 문자열을 입력하면 정수형 데이터(int)로 변환하는 과정 수행sc.nextInt() 호출 -> 내부적으로 입력스트림에서 데이터를 읽음 -> 숫자 형식이 맞는지 확인(아닐 시 Exception) -> 변환 가능한 경우 변환 -> 변환된 정수 반환기본 버퍼 크기 : 1024 Byte(1KB)동기화 Overhead : 멀티스레드 환경에서 동기화 제공, 단일 ..

Java 2025.02.06

[디자인 패턴]MVC 패턴

MVC(Model-View-Controller) 사용자 인터페이스, 데이터 및 논리 제어 구현 시 사용하는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 인터페이스를 분리하는 목적으로 사용합니다. Model 데이터와 비즈니스 로직을 관리 View 레이아웃과 화면을 처리 Controller 명령을 Model과 View로 Routing 사용 예시 Controller Model View MVC 단점 Model과 View의 의존성이 높아져 애플리케이션이 복잡해지는 경우 유지보수가 어렵습니다. 코드 : 직접 사진 출처 : https://beomy.tistory.com/43

Java 2022.10.06

변수(Variable)

변수 변수란 값을 저장할 수 있는 메모리 공간을 의미한다. 변수에는 다양한 타입의 값을 저장할 수 없고 한가지 타입의 값만 저장할 수 있다. ex) int a = 1;로 선언시 a = "안녕"; 식으로 변경이 불가능 하다. "안녕"은 String 타입이기 때문 변수의 선언 변수 선언은 어떤 타입의 데이터를 저장할 것인지, 변수 이름이 무엇인지를 결정한다. int number;//정수(int) 값을 저장할 수 있는 변수 선언 double value;//실수(double) 값을 저장할 수 있는 변수 선언 코드1 처럼 선언할 수 도 있지만 Java Coding Convention 상 코드2처럼 한줄에 하나의 변수를 선언하는 것이 좋습니다. //코드1 int x, y, z;//비추천 //코드2 int x; in..

Java 2022.09.18

JVM(Java Virtual Machine)

.java 파일을 javac.exe 컴파일러가 바이트 코드로 컴파일(.class) JVM 자체는 운영체제에 맞게 설치되어야 한다. java 프로그램은 JVM 중계로 운영체제에 자유롭다. Class Loader JVM내로 클래스 파일(.class)을 로드하고 링크를 통해 배치하는 작업을 수행하는 모듈 Run time 시 동적으로 Class 로드 Execution Engine class를 실행시키는 역할 Class Loader에 의해 런타임 데이터 영역에 배치된 바이트 코드를 실행 Interpreter .Byte Code는 기계가 바로 수행할 수 있는 언어가 아니다. Byte Code를 한 줄씩 실행 -> 느리다는 단점 JIT(Just In Time) 인터프리터 방식의 단점을 보완하기 위해 도입된 JIT 컴..

Java 2022.09.15

Java

이식성이 높다. JRE(Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능 객체 지향 언어 기능에 해당하는 객체를 연결하여 전체 프로그램을 완성하는 객체 지향 프로그래밍(OOP)에 사용하는 언어를 객체 지향 언어라고 한다. 메모리 자동 관리 개발자가 직접 메모리에 접근할 수 없게 설계되어 메모리 관리의 수고가 줄었다. 자바가 메모리 관리를 한다. 객체 생성 시 자동적으로 메모리 영역을 찾아 할당한다. 사용 완료 시 Garbage Collector가 실행되어 자동적으로 사용하지 않는 객체를 제거한다. 멀티 스레드(Multi-Thread) 구현 스레도 생성 및 제어와 관련된 라이브러리 API를 제공하고 있다. 운영체제에 상관없이 멀티스레드를 쉽게 구현 가능하다. 동적 ..

Java 2022.09.11
반응형