java 175

Windows 환경에 Gradle 구성하기

목차[Gradle 다운로드]https://gradle.org/releases/ complete 버전으로 다운받은 후 압축을 풀면 아래와 같다.해당 디렉토리를 적절한 위치로 이동 (jaeshim-dev로 이동하였다) [환경변수 설정]'시스템 속성 - 환경변수' 로 이동. '시스템 변수 - 새로만들기' 클릭변수 이름: GRADLE_HOME변수 값: 실제 경로'사용자 변수 - Path - 편집 - 새로만들기' 클릭%GRADLE_HOME%\bin 입력 [확인]> gradle -version------------------------------------------------------------Gradle 8.10.2-----------------------------------------------------..

개발환경 세팅 2024.11.09

정렬 알고리즘 정리

목차[선택 정렬]리스트에서 최소 값을 찾은 후 리스트의 맨 앞에 있는 값과 교환하는 방식부분 리스트에 대해 모든 원소를 순회할 때 까지 반복한다. - 시간복잡도: O(n^2) 정렬 방법초기상태. 아래값으로 초기 세팅이 진행된다.i = 0idx = ij = i+1arr[idx]와 arr[j]값을 비교하여 j의 값이 더 작은 경우 idx 값을 j로 변경한다.j를 전진시키면서 arr[idx]와 arr[j] 값을 비교한다. 이번에는 arr[j] 값이 더 크므로 idx를 유지한다.다음 비교를 진행하는데 마찬가지로 arr[j]값이 더 크므로 idx는 유지한다. 배열의 끝까지 비교를 진행한다. j가 끝까지 도착했을 때 idx와 i값을 교환해준다. 이렇게하면 순회 한 번이 끝난다. 다음 순회를 위해 i, idx, j값..

Algorithm 2024.10.13

컬렉션 프레임워크

목차데이터를 다룰 때 타입에 따라 2가지 특징이 있었다 원시형: 빠른 속도. 편리한 기능 부족참조형: 느린 속도. 편리한 기능그렇다면 복수 개의 값을 처리하려면 배열을 사용하는 것을 고려해볼 수 있을 것이다. 하지만 배열의 경우 크기를 마음대로 조절할 수 없는 등 불편한 점이 있다. 이런 부분에 신경쓰지 않으며 편리한 기능들을 부가적으로 제공하는 자료형에 대한 요구가 계속 있었는데, 자바 1.2 버전에서 컬렉션 프레임워크를 통해 언어 차원에서 공식적으로 이를 제공하기 시작하였다. [컬렉션 프레임워크 특징]일관성 있는 API: 동일한 기능은 동일한 API를 갖는다. (List, Set 모두 데이터를 삽입할 때 add()를 사용한다)개발 비용 절약: 필수 데이터 구조와 알고리즘을 제공하여 개발자가 일일이 알..

Java 2024.10.05

원시 자료형 (Primitive Type) 과 참조 자료형 (Reference Type)

목차자바에서는 자료형을 2가지로 구분할 수 있다. 원시 자료형 (Primitive Type)참조 자료형 (Reference Type) 원시 자료형 (Primitive Type)보통의 int, boolean, float 같은 타입이다.C나 자바 같은 전통적인 프로그래밍 언어들은 원시자료형을 제공한다. 특징객체가 아님: 객체가 아니기 때문에 메모리에서의 위치를 통해 값을 직접 다루며 이 때문에 참조형에 비해 더 효율적이다.자동 형변환/암시적 형변환: 원시 자료형끼리 자동 타입 변환이 지원된다. (int를 long에 할당할 수 있다. 하지만 반대로는 명시적인 형변환이 필요)기본값: 원시 자료형은 기본 값을 가진다. int는0 boolean은 false, char는 null일 가진다 참조 자료형 (Referen..

Java 2024.10.03

Java가 빌드되고 실행되는 과정

목차[자바 코드 작성 (.java 파일 생성)]개발자가 코드를 작성하면 .java 파일이 생성된다.public class Main { public static void main(String[] args) { System.out.println("Hello, World!"); }} 컴파일자바 컴파일러 (javac)에 의해 바이트 코드로 변환되고 결과물은 .class 확장자를 가진 파일에 저장된다.이 파일은 사람이 읽을 수 없는 기계어와 비슷한 중간 코드이다. 아래 커맨드를 입력하면 .class 파일이 생성되고 바이트 코드의 결과물이 생성된다.javac HelloWorld.java [클래스 로딩]OS별로 (윈도우, 리눅스, 맥) JRE (Java Runtime Environment)가 ..

Java 2024.10.03

함수형 인터페이스 (Functional Interface) 에 대해

Java 8에서 도입된 개념. "단 하나의 추상 메서드를 가지는 인터페이스" 함수형 인터페이스의 경우 람다식을 통해 객체를 생성하거나 제어할 수 있음. 함수형 인터페이스의 특징 단일 추상 메서드: 함수형 인터페이스는 하나의 추상 메서드를 정의해야 함.람다식 지원: 함수형 인터페이스를 통해 람다식 사용 가능@FunctionalInterface 어노테이션: 함수형 인터페이스라는 것을 명시적으로 나타내기 위해, @FunctionalInterface 어노테이션을 사용할 수 있음. 선택사항이나 인터페이스가 하나의 추상메서드만 가지도록 강제하는 역할@FunctionalInterfaceinterface MyFunctionalInterface { void myMethod();} public class Main {..

Java 2024.10.03

제네릭 (Generic) 에 대해

개념2004년에 Java 5 버전이 등장하면서 추가된 기능.제네릭을 통해 더 안전한 코드를 만들 수 있게 되었다. 제네릭이란 클래스나 메서드에서 사용할 자료형을 컴파일 타임에 미리 지정하는 방식.이를 통해 컴파일 시점에 타입 검사를 해서 객체의 타입 안정성을 더 높일 수 있게 되었다. 제네릭 전후// 전List names = new ArrayList();names.add("이름");names.add(123123); // 런타임 오류 발생// 후 List names = new ArrayList();names.add("이름");names.add(123123); // 컴파일 시점에 미리 알 수 있음 그리고 제네릭이 처음 등장했을 때 변수뿐만 아니라 객체에도 타입을 선언해야 했다고 한다.// Java 5Map ..

Java 2024.10.03

Java의 주요 특징

캡슐화 (Encapsulation)객체지향의 중요 원칙 중 하나로 데이터(필드)와 그 데이터에 접근하는 방법(메서드)을 객체 안에 묶어 관리하고 외부의 직접적인 접근을 제한하는 것.이를 통해 객체 내부의 상태를 보호하고 외부와의 상호작용은 제한된 방식으로만 가능하도록 함. 캡슐화의 핵심은 접근 제어자를 사용하는 것.private: 클래스 내부에서만 접근 가능.public: 누구나 접근 가능protected: 같은 패키지 또는 상속받은 클래스에서 접근 가능default (아무것도 명시하지 않았을 때): 같은 패키지 내에서만 접근 가능객체 내부의 속성에 직접 접근하거나 수정하는 것을 방지하고 객체 내부에서 제공하는 메서드를 통해 안전하게 데이터를 다룰 수 있게 유도하기 위함. (getter, setter를 ..

Java 2024.10.03