java

    Near Algoritm - 근사값 알고리즘

    Near Algoritm - 근사값 알고리즘 근삿값 알고리즘: 차이값의 절대값의 최소값 = 근사값 차이값 = (데이터 - 대상값(target)) package nearAlgoritm; //근삿값 알고리즘: 차이값의 절대값의 최소값. //[?] 원본 데이터중에서 대상 데이터와 가장 가까운 값을 구한다 public class NearAlgoritm { //[0] 절댓값 구하기 로컬 함수 // number가 음수면(참) 양수로 변환하고, 양수면(거짓) 양수 그대로 나오는 메서드 public static int Abs(int number) { return (number < 0 ) ? -number : number; } public static void main(String[] args) { //[1] Initi..

    JAVA Basic) 자바 입출력

    목차 대부분의 프로그램은 자료를 입력받는 기능과 저장하거나 쓰는 출력 기능을 구현한다. 음악, 동영상 파일을 재생하는 것도 입출력 기능에 해당되며, 채팅을 하고 SNS에 글, 사진을 피드하는 것도 입출력 기능으로 구현된다. 입출력은 프로그램의 가장 기본 기능이지만, 외부 저장 장치나 네트워크와 연동해야 하기 때문에 장치에 따라 다르게 구현해야 한다. 자바는 장치에 따라 독립적이고 효율적인 입출력 기능을 제공한다. 스트림이란? 자바에서 모든 입출력은 스트림(Stream)을 통해 이루어진다. 자료 흐름이 물의 흐름과 같다는 의미에서 사용되었다. 입출력 장치는 매우 다양하여 장치에 따라 입출력 부분을 일일이 다르게 구현하면 프로그램 호환성이 떨어질 수 밖에 없다. 이런 문제를 해결하기 위해 자바는 입출력 장치..

    JAVA Basic) 예외 처리

    목차 소프트웨어를 사용하다 보면 여러 상황의 오류를 마주하게 된다. 잘 접속되던 사이트가 접속이 안된다거나, 스마트폰 앱이 갑자기 종료되는 경우가 그런 경우. 아무리 잘 만든 소프트웨어라도 이런 상황은 언제든 발생할 수 있는데, 이런 오류가 발생해도 갑자기 종료되는 상황이 일어나지 않도록 '예외 처리' 방법에 대해 알아보자. 오류란? 프로그램에서 오류가 발생하는 상황은 두 가지다. 프로그램 코드 작성 중 실수로 발생하는 '컴파일 오류(compile error)' 실행 중인 프로그램이 의도하지 않은 동작을 하거나, 프로그램이 중지되는 '실행 오류(runtime error)' 실행 오류 중 프로그램을 잘못 구현하여 의도한 바와 다르게 실행되어 생기는 오류를 '버그(bug)'라고 한다. '컴파일 오류'는 개발..

    JAVA Basic) 내부 클래스 - 연습문제

    목차 Q1. 지역 내부 클래스에서 외부 클래스 메서드의 지역 변수를 사용할 수 있지만, 그 값을 변경하면 오류가 발생한다. 이때 사용하는 지역 변수는 [ ]변수가 되기 때문이다. Q2. 내부 클래스 중 클래스 이름 없이 인터페이스나 추상 클래스 자료형에 직접 대입하여 생성하는 클래스를 [ ]라고 한다. Q3. 자바에서 제공하는 함수형 프로그래밍 방식으로 인터페이스의 메서드를 직접 구현하는 코드를 [ ]이라고 한다. Q4. 람다식으로 구현할 수 있는 인터페이스는 메서드를 하나만 가져야 한다. 이러한 인터페이스를 [ ]라고 한다. Q5. 다음과 같이 두 정수를 매개변수로 하는 메서드가 인터페이스에 정의되어 있다. 두 정수의 합을 반환하는 람다식을 구현하고 호출해보자. package lambda; public..

    JAVA Basic) 내부 클래스 - 람다식

    먼저 내부 클래스에 대한 이해가 필요한 내용입니다. JAVA basic) 내부 클래스 목차 '내부 클래스(inner class)'는 말 그대로 '클래스 내부에 선언한 클래스'다. 내부에 클래스를 선언하는 이유는 대개 이 클래스와 외부 클래스가 밀접한 관련이 있기 montoo.tistory.com 목차 자바는 객체를 기반으로 프로그램을 구현한다. 만약 어떤 기능이 필요하다면 클래스를 먼저 만들고, 클래스 안에 기능을 구현한 메서드를 만든 후 그 메서드를 호출해야 한다. 다시 말해 클래스가 없다면 메서드를 사용 할 수 없다. 그런데 프로그래밍 언어 중에는 함수의 구현과 호출만으로 프로그램을 만들 수 있는 프로그래밍 방식이 있다. 이를 '함수형 프로그래밍(Functional Programming : FP)'이..

    JAVA Basic) 내부 클래스

    목차 '내부 클래스(inner class)'는 말 그대로 '클래스 내부에 선언한 클래스'다. 내부에 클래스를 선언하는 이유는 대개 이 클래스와 외부 클래스가 밀접한 관련이 있기 때문. 또한 그 밖의 다른 클래스와 협력할 일이 없는 경우에 내부 클래스로 선언해서 사용한다. 내부 클래스를 간단히 표현하면 아래 그림과 같다. 내부 클래스는 선언하는 위치나 예약어에 따라 크게 네가지 유형으로 나누어진다. 인스턴스 내부 클래스 정적(static) 내부 클래스 지역(local) 내부 클래스 먼저 위 세 가지는 클래스 내부에 선언하는 변수의 유형(인스턴스, 저억, 지역 변수)과 유사하다. 마지막으로 클래스 이름 없이 선언하고 바로 생성하여 사용할 수 있는 익명(anonymous) 내부 클래스 가 있다. 그럼 변수 유..

    JAVA Basic) 컬렉션 프레임워크 - Set 인터페이스

    이해가 되지 않을 경우 이전 포스팅을 참고하세요. 2021.10.05 - [Programming/JAVA 기초] - JAVA Basic) 컬렉션 프레임워크 JAVA Basic) 컬렉션 프레임워크 목차 흔히 프로그래밍을 건축에 비유를 한다. 원하는 건물을 지으려면 구조를 잘 잡아야하듯, 프로그램 개발도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요하기 montoo.tistory.com 2021.10.06 - [Programming/JAVA 기초] - JAVA Basic) 컬렉션 프레임워크 - List 인터페이스 JAVA Basic) 컬렉션 프레임워크 - List 인터페이스 '컬렉션 프레임워크'가 뭔지 모른다면, 아래 포스트부터 확인할 것 흔히 프로그래밍을 건축에 비유를 한다. 원하는 건물을 지으려면 구..

    JAVA Basic) 컬렉션 프레임워크

    목차 흔히 프로그래밍을 건축에 비유를 한다. 원하는 건물을 지으려면 구조를 잘 잡아야하듯, 프로그램 개발도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요하기 때문이다. 그래야 프로그램의 기능을 효과적으로 구현할 수 있기 때문! 이때 사용하는 것이 '자료 구조(data structure)' '자료 구조'는 프로그램 실행 중 메모리에 자료를 유지·관리하기 위해 사용한다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에 제공하고 있는데, 이를 '컬렉션 프레임워크(collection framework)'라고 한다. 자료 구조는 개발자가 필요할 때 직접 만들어 사용할 수도 있다. 하지만 자바 '컬렉션 프레임워크'를 사용하면 직접 개발하는 수고를 덜 수 있을 뿐만 아니라 잘 만들어진 자료..

    JAVA Basic) 제네릭(Generic)

    목차 프로그램에서 변수를 선언할 때, 메서드에서 매개 변수를 사용할 때도 모든 변수는 자료형이 있다. 대부분은 하나의 자료형으로 구현하지만, 변수나 메서드의 자료형을 필요에 따라 여러 자료형으로 바꿀 수 있다면 프로그램이 훨씬 더 유연해질 것이다. 이처럼 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍하는 것을 '제네릭(Generic)프로그래밍'이라고 한다. '제네릭 프로그램'은 참조 자료형이 변환될 때 컴파일러가 검증을 해 꽤 안정적이다. '컬렉션 프레임워크'의 많은 부분이 이 '제네릭'으로 구현되어있다. 예제로 제네릭에 대해 이해해보자. 3D프린터는 재료를 가지고 입체 모형을 만드는 일을 한다. 재료는 파우더나 플라스틱을 사용한다. 먼저 파우더를 재료로 쓰는 3D..

    JAVA Basic) 자료 구조

    책에는 정리되어있지 않지만, 컬렉션 프레임워크에 들어가기 전에 알아두면 좋을 내용. 목차 프로그래밍에서 데이터를 구조적으로 표현하는 방식과 이를 구현하는 데 필요한 알고리즘에 대해 논하는 기초이론, 혹은 과목. 컴퓨터과학에서 알고리즘과 함께 가장 중요한 기초이론. 같은 형의 데이터 타입을 메모리에 저장하는 선형적 자료구조. 논리적 구조와 물리적 구조가 동일하다. 배열의 특징 fixed length : 배열의 길이가 정해져 있음. 인덱스(index)연산 : 배열의 길이가 정해져 있기 때문에 요소를 찾기 수월함. in/out, insert/delete가 n개(요소의 개수)에 종속 : 연산의 횟수가 n개(요소의 개수)에 종속되어있다. JDK ArrayList : 알고리즘에 최적화 Vector : 자바 1.2부..

    JAVA Basic) Class 클래스

    목차 자바의 모든 클래스와 인터페이스는 컴파일되고 나면 class파일로 생성된다. 예를 들어 a.java 파일이 컴파일 되면 a.class파일이 생성되고. 이 class파일에는 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등 정보가 들어있다. 'Class 클래스'는 컴파일 된 class 파일에 저장된 클래스나 인터페이스 정보를 가져오는데 사용된다. 지금까지 변수를 선언할 때 자료형을 미리 파악하고 그 자료형에 따라 변수를 선언했다. 그리고 클래스를 사용할 때도 이미 그 클래스 정보(메서드, 변수 등)를 알고 있는 상황에서 프로그램을 만들었다. 그런데 어떤 경우에는 여러 클래스 중에 상황에 따라 다른 클래스를 사용해야 할 때도 있고, 반환받는 클래스가 정확히 어떤 자료형인지 모를 때도 있다. 이렇게 ..

    JAVA Basic) 인터페이스 - 연습 문제

    목차 Q1 클래스가 인터페이스를 구현하기 위해 사용하는 예약어는 [ ]이다. Q2 클래스가 인터페이스를 구현할 때 인터페이스에 선언한 메서드를 모두 구현하지 않으면 그 클래스는 [ ]가 된다. Q3 인터페이스에 선언한 변수는 컴파일할 때 [ ]로 변환된다. Q4 한 인터페이스를 여러 클래스가 다양한 방식으로 구현한 경우에 프로그램에서 인터페이스에 선언된 메서드를 사용할 때 각 클래스의 구현 내용과 상관없이 도잉ㄹ한 방식으로 사용할 수 있다. 이렇게 같은 코드가 여러 구현 내용으로 실행되는 객체 지향 특성을 [ ]이라고 한다. Q5 인터페이스에서 구현한 코드를 제공하는 메서드는 [ ] 와 [ ]이다. Q6 한 클래스에서 여러 인터페이스를 구현할 수 있다. [ 예 / 아니오 ] Q7 숫자 정렬 알고리즘에는 ..