반응형

자바 54

자바 컬렉션 프레임워크 - ArrayList

배열의 특징 1- 배열과 인덱스배열과 같이 여러 데이터(자료)를 구조화 해서 다루는 것을 자료 구조라한다.자바는 배열 뿐만 아니라, 컬렉션 프레임워크라는 이름으로 다양한 자료 구조를 제공한다.컬렉션 프레임워크와 자료 구조를 설명하기 전에 먼저 자료 구조의 가장 기본이 되는 배열의 특징을 알아보자.public class ArrayMain1 { public static void main(String[] args) { int[] arr = new int[5]; //index 입력 : O(1) System.out.println("==index 입력: O(1)=="); arr[0] = 1; arr[1] = 2; arr[2] = 3; ..

공부/Java 2024.09.25

자바 제네릭(Generic) 2편

저번에 이어서 자바 제네릭을 계속 알아보자. 제네릭이 아직 뭔지 모르겠다면, 이전 포스팅을 참고하도록 하자.https://surrealcode.tistory.com/74 자바 제네릭(Generic) 1편제네릭을 배우기에 앞서 다음과 같은 코드를 살펴보자혹시라도 래퍼 클래스에 대해 잘 모른다면 이전 글을 참고하는게 좋다.https://surrealcode.tistory.com/59 자바 래퍼 클래스(wrapper class)기본형의surrealcode.tistory.com  타입 매개변수 제한이번에는 동물 병원을 만들어 본다고 가정한다. 요구사항은 다음과 같다요구사항: 개 병원은 개만 받을 수 있고, 고양이 병원은 고양이만 받을 수 있어야 한다.import generic.animal.Dog;public c..

공부/Java 2024.09.24

자바 제네릭(Generic) 1편

제네릭을 배우기에 앞서 다음과 같은 코드를 살펴보자혹시라도 래퍼 클래스에 대해 잘 모른다면 이전 글을 참고하는게 좋다.https://surrealcode.tistory.com/59 자바 래퍼 클래스(wrapper class)기본형의 한계 1자바는 객체 지향 언어이다. 그런데 바자 안에 객체가 아닌 것이 있다. 바로 int, double 같은 기본형(Primitive Type)이다. 기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.1.surrealcode.tistory.compublic class IntegerBox { private Integer value; public void set(Integer value){ this.value = value; } publi..

공부/Java 2024.09.23

자바 예외처리 복습하기

예외처리가 필요한 이유를 알아보기 위해 다음과 같은 간단한 예제 프로그램을 만들었다. 이 코드는 사용자의 입력을 받고, 입력 받은 문자를 외부 서버에 전송하는 프로그램이다.(실제 통신을 하고있다고 가정한다) NetworkClient : 외부 서버와 연결하고, 데이터를 전송하고, 연결을 종료하는 기능을 제공한다.NetworkService : NetworkClient를 사용해서 데이터를 전송한다. NetworkClient를 사용하려면, 연결, 전송, 연결 종료와 같은 복잡한 흐름을 제어해야 하는데, 이런 부분을 NetworkService가 담당한다.Main : 사용자의 입력을 받는다. --> 전체 흐름 : Main을 통해 사용자의 입력을 받으면, 사용자의 입력을 NetworkService에 전달한다. Net..

공부/Java 2024.09.22

자바 지역클래스 복습하기

지역클래스(Local class)는 내부 클래스의 특별한 종류의 하나이다. 따라서 내부 클래스의 특징을 그대로 가진다. 지역클래스도 내부 클래스이므로 바깥 클래스의 인스턴스 멤버에 접근할 수 있다. 지역 클래스 특징1. 지역 클래스는 지역 변수처럼 코드 블럭(메서드) 안에 클래스를 선언한다.2. 지역 클래스는 지역 변수에 접근할 수 있다. 다음과 같은 코드를 보자public class LocalOuterV1 { private int outInstanceVar = 3; public void process(int paramVar){ int localVar = 1; class LocalPrinter{ int value = 0; publ..

공부/Java 2024.09.21

자바 중첩 클래스, 내부 클래스 복습하기

중첩 클래스, 내부 클래스란?다음과 같이 for 문 안에 for문을 중첩하는 것을 중첩(Nested) for문이라고 한다for(){    for(){    }} 클래스도 마찬가지로 클래스 안에 클래스를 중첩해서 정의할 수 있는데, 이것을 중첩 클래스(Nested Class)라 한다.class Outer{    class Nested{    }} 중첩 클래스는 정의하는 위치에 따라 다음과 같이 분류한다. 중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스내부클래스 : 내부 클래스, 지역 클래스, 익명 클래스 변수 선언 위치1. 정적 변수(클래스 변수) -> 정적 변수와 같은 위치2. 인스턴스 변수 -> 인스턴스 변수와 같은 위치3. 지역 변수 -> 지역 변수와 같이 코드 블럭..

공부/Java 2024.09.20

자바 불변 객체 복습하기

불변객체  기본형과 참조형의 공유자바의 데이터 타입을 크게 보면 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다.기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않는다.참조형 : 하나의 객체를 참조값을 통해 여러 변수에서 공유할 수 있다.public class PrimitiveMain { public static void main(String[] args) { int a = 10; int b = a; System.out.println("a = " + a); System.out.println("b = " + b); b = 20; System.out.println("a = " + ..

공부/Java 2024.09.18

자바 Object 클래스 복습하기

java.lang자바가 기본으로 제공하는 라이브러리 중에 가장 기본이 되는 것이 java.lang이다.자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻한다. java.lang 패키지의 대표적인 클래스들Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼타입, 기본형 데이터 타입을 객체로  만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공 여기 나열한 클래스들은 자바 언어의 기본을 이루기 때문에 반드시 잘 알아야한다. +java.lang 패키지는 모든 자바 애플리케이션에 자동으로 import되기 때문에 import를 하지 않아도 된다.import java.lang.System;public..

공부/Java 2024.09.18

자바 예외처리 1

예외처리는 정상 흐름과 예외 흐름을 명확하게 분리하여 가독성을 높이는 데 있다.  우선 다음의 예제를 살펴보자. 이 예제는 서버와 통신(을 한다고 가정한다)하여 메세지를 보내는 예제이다.public class NetworkClientV0 { private final String address; public NetworkClientV0(String address) { this.address = address; } public String connect(){ System.out.println(address + " 서버 연결 성공"); return "success"; } public String send(String data){ ..

공부/Java 2024.09.15

자바 날짜와 시간

날짜와 시간을 계산하는 것은 단순하게 생각하면 아주 쉬워보이지만, 실제로는 매우 어렵고 복잡하다.왜 그런지 이유를 알아보자 1. 날짜와 시간 차이 계산특정 날짜에서 다른 날짜까지의 정확한 일수를 계산하는 것은 생각보다 복잡하다. 유년ㄴ, 각 달의 일수 등을 모두 고려해야하며, 간단한 뺄셈 연산으로는 결과를 정확하게 얻기 어렵다. 2. 윤년 계산지구가 태양을 한 바퀴 도는 데 걸리는 평균 시간은 대략 365.2425일, 즉 365일 5시간 48분 45초정도 이다. 우리가 사용하는 그레고리력은 1년이 365일로 설정되어 있기 때문에 둘의 시간이 정확히 맞지 않아 윤년(4년마다 하루를 추가하는 달력)이 도입되었다.윤년 계산은 간단해보이지만 실제로는 매우 복잡하다. 윤년은 보통 4년마다 한번씩 발생하지만, 10..

공부/Java 2024.09.12
반응형