JAVA 50

중첩 클래스, 내부 클래스 2

지역 클래스 - 시작 지역 클래스 (Local class)는 내부 클래스의 특별한 종류의 하나이다. 따라서 내부 클래스의 특징을 그대로 가진다. 예를 들어서 지역 클래스도 내부 클래스이므로 바깥 클래스의 인스턴스 멤버에 접근할 수 있다. 지역 클래스 예class Outer { public void process() { //지역 변수 int localVar = 0; //지역 클래스 class Local {...} Local local = new Local(); } } 지역 클래스의 특징지역 클래스는 지역 변수처럼 코드 블록 안에 클래스를 선언한다.지역 클래스는 지역 변수에 접근할 수 있다.package nested.local;publ..

JAVA 2024.12.24

중첩 클래스, 내부 클래스 1

중첩 클래스, 내부 클래스란? for (...) { //중첩 for문for (...) { } }다음과 같이 for 문 안에 for 문을 중첩하는 것을 중첩 (Nested) for 문이라 한다.  class Outer { ... //중첩 클래스 class Nested { ... } }다음과 같이 클래스 안에 클래스를 중첩해서 정의할 수 있는데, 이것을 중첩 클래스라 한다.중첩 클래스는 클래스를 정의하는 위치에 따라 다음과 같이 분류한다. 중첩 클래스의 분류     중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스내부 클래스내부 클래스지역 클래스익명 클래스 중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다. 변수의 선언 위치정적 변수 (클..

JAVA 2024.12.23

자바 정규식 Reqular Expression

만약 숫자로만 이루어져 있는지, 대문자, 소문자를 포함하고 있는지 검사하고 싶다면 요소 하나하나를 비교하는 방법도 있지만 정규식을 이용하며 간단하게 확인할 수 있다.   정규식 문법 기호 모음 정규식 기본 기호기호설명예제.임의의 문자 1개를 의미 ^시작을 의미한다[] 괄호 안에 있다면 일치하지 않는 부정의 의미로로 쓰인다^a : a로 시작하는 단어[^a] : a가 아닌 철자인 문자 1개$$앞의 문자열로 문자가 끝나는지를 의미한다a$ : a로 끝나는 단어[][] 괄호 안의 문자가 있는지를 확인한다[ab][cd] : a,b중 한 문자와 c,d중 한 문자→ ac ad bc bd [^][] 대괄호 안에 ^ 문자가 있으면, 제외를 뜻함- 대괄호 안에 ^ 가 쓰이면 제외의 뜻- 대괄호 밖에 ^ 가 쓰이면 시작점의 ..

JAVA 2024.12.23

[JAVA] 자원 정리 (try-catch , try-with-resources) 2

네트워크 프로그램 4 - 자원 정리 1 자원정리를 네트워크 프로그램에 도입해서, 네트워크 프로그램이 안전하게 자원을 정리하도록 개발해 보다.먼저 ` finally ` 를 사용해서 자원을 정리해 보고, 이후에 참 ` try-with-resources ` ` 를 도입해 보자.try-with-resources  항상 사용할 수 있는 것은 아니고 finally에서 직접 자원을 정리하는 경우가 많이 있다.  우선 소켓과 스트림을 종료하기 위해 간단한 유틸리티 클래스를 생성하자package thread.control.network.tcp;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.So..

JAVA 2024.11.26

[JAVA] 자원 정리 (try-catch , try-with-resources)

자원 정리 1 자원 정리를 이해하기 위해 간단한 예제 코드를 만들어보자package thread.control.network.tcp.autocloseable;public class CallException extends Exception{ public CallException(String message) { super(message); }} package thread.control.network.tcp.autocloseable;public class CloseException extends Exception{ public CloseException(String message) { super(message); }} package thread.control.ne..

JAVA 2024.11.26

[JAVA] 싱글톤 구현 방식

싱글톤의 여러가지 구현 방식과 주의점을 알아보자. 싱글톤 패턴이란?인스턴스를 오직 한 개만 제공하는 클래스입니다. 시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러 개 일 때 문제가 생길 수 있는 경우가 있다. 인스턴스를 오직 한개만 만들어 제공하는 클래스가 필요하다. 싱글톤 구현 방식 1. private 생성자 및 static 메서드 사용public class Settings { private static Settings instance; // 클래스 밖에서 인스턴스 생성 방지 private Settings(){} public static Settings getInstance(){ if(instance == null) { return in..

JAVA 2024.11.21

[JAVA] iterator 순회 중 만난 ConcurrentModificationException

collection 순회하는 loop 내에서 원본 collection에 변화를 주면 어떤 일이 발생할까? 다음 코드를 실행해보자!package generic.ex1;import java.util.*;import java.util.concurrent.CopyOnWriteArrayList;public class RawTypeMain { public static void main(String[] args) { // List list2 = new CopyOnWriteArrayList(); List list2 = new ArrayList(); list2.add("A"); list2.add("B"); list2.add("C"); list2...

JAVA 2024.11.20

유니코드, UTF-8, 직렬화

1. 유니코드 (Unicode):유니코드는 전 세계의 문자에 대해 고유한 숫자 코드(코드 포인트)를 할당하는 문자 집합입니다.예를 들어, 한글 "가"는 U+AC00이라는 코드 포인트를 가지고 있습니다.유니코드는 문자와 코드 포인트를 1:1로 매핑한 코드표입니다. 즉, 유니코드는 "문자"를 숫자로 표현하는 시스템입니다.public class UnicodeExample { public static void main(String[] args) throws Exception { String text = "가"; // "가"의 유니코드 값 확인 int unicodeValue = text.codePointAt(0); System.out.print..

JAVA 2024.11.18