IT/java
Java를 이용한 실시간 채팅 코드 예시 server단 import java.io.*; import java.net.*; import java.util.*; public class ChatServer { ArrayList clientOutputStreams; public class ClientHandler implements Runnable { BufferedReader reader; Socket sock; public ClientHandler(Socket clientSocket) { try { sock = clientSocket; InputStreamReader isReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedR..
interface 클래스 설명 Java의 인터페이스(interface)는 클래스가 구현해야 할 추상 메소드와 상수들의 집합을 정의할 수 있는 특별한 종류의 타입이다. 인터페이스를 구현(implement)한 클래스는 인터페이스가 정의한 모든 추상 메소드를 구현해야 한다. 인터페이스는 다음과 같이 정의할 수 있다. interface InterfaceName { // 상수 정의 int CONSTANT_VARIABLE = 0; // 추상 메소드 정의 void abstractMethod(); } 인터페이스는 상수와 추상 메소드로만 구성될 수 있으며, 추가적인 구현을 포함할 수 없다. 인터페이스의 상수는 자동으로 public static final 접근 제한자가 적용된다. 추상 메소드는 자동으로 public abs..
array 설명 Java에서 array는 기본 자료형(primitive type)과 참조 자료형(reference type) 모두 사용이 가능합니다. array 생성과 사용의 예는 다음과 같습니다. // 기본 자료형인 int 타입의 array 생성 int[] intArray = new int[5]; // 참조 자료형인 String 타입의 array 생성 String[] strArray = new String[3]; // array 요소의 접근과 값 할당 intArray[0] = 10; intArray[1] = 20; strArray[0] = "Hello"; strArray[1] = "World"; // array의 길이 조회 System.out.println(intArray.length); // 출력: ..
String이란? Java에서 string은 문자열을 저장하기 위한 자료형입니다. Java에서는 자바 언어 자체적으로 string을 지원하지 않고, java.lang 패키지에 포함된 String 클래스를 사용하여 문자열을 저장합니다. String 클래스는 자바의 기본 자료형인 char배열을 이용하여 문자열을 저장하고 처리할 수 있는 기능을 제공합니다. // String 클래스의 생성 String str1 = new String("Hello World"); String str2 = "Hello World"; // String 클래스의 사용 System.out.println(str1.length()); // 출력: 11 System.out.println(str1.charAt(0)); // 출력: H Syst..
오류 확인 서버 작업을 하던 중 로그에 생각지 못한 오류가 떳다. 제목과 같이 NoSuchAlgorithmException이다. java 소스 내 데이터 복호화 알고리즘이 있었지만, 소스 수정이 없었기에 갑자기 오류가 뜨는 것에 대해 의문이 들었다. 소스 앞 뒤로 로그를 찍어보면 확인해봤지만, 역시나 소스에는 문제가 없었다. 원인 구글링을 하던 중 원인을 찾을 수 있었다. 자바 버전 변경으로 인한 jar파일 사용 불가가 그 원인이었던 것이다. (import org.bouncycastle.jce.provider.bouncycastleprovider) VM을 교체하면서 자바 버전이 바뀌는 지 몰랐기에 이에 대한 대처가 불가능했다. 기존 java 버전 1.7에서 1.8로 바뀌었다. 부랴부랴 java 버전에 맞..
아래 예시 코드를 참고하면 된다. Properties properties = new Properties(); CallableStatement cStmtSys = null; Connection connSys = null; String resultCode = null; String resultMsg = null; int resultCnt1 = 0 ; int resultCnt2 = 0 ; int resultCnt3 = 0 ; int resultCnt4 = 0 ; String BatchMessage = null; try { /* READ XML properties */ InputStream in = ClassLoader.getSystemResourceAsStream(config_xml); properties.l..
JVM(Java Virtual Machine) : 자바를 실행하기 위한 가상머신 - OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터이다. java 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지 못하므로 기계어로 컴파일을 해줘야한다. 하지만, Java는 이 JVM 이라는 가상머신을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode(*.class)로 변환된다. Java compiler 가 .java 파일을 .class 라는 Java bytecode로 변환한다. 변환된 bytecode는 기계어가 아니기 때문에 OS에서 바로 실행되지 않는다. 이 때, JVM이 OS가 byt..
JRE(Java Runtime Environment) : 자바 런타임 환경 - 자바 애플리케이션을 개발하고 실행하기 위한 자바 플랫폼의 3대 구성 요소 런타임 환경은 다른 소프트웨어를 실행하기 위해 고안되는 일종의 소프트웨어다. 운영체제마다 존재하는 여러 요구 사항들을 JRE가 처리해주며, 자바 프로그램이 거의 모든 운영체제에서 코드 수정 없이 실행될 수 있도록 한다는 것이다. 자바용 런타임 환경인 JRE에는 1. 자바 클래스 라이브러리(Java class libraries) 2. 자바 클래스 로더(Java class loader) 3. 자바 가상 머신(Java Virtual Machine)이 포함된다. 클래스 로더 - 올바르게 클래스를 로드해 코어 자바 클래스 라이브러리에 연결하는 역할을 한다. JVM..
JDK(Java Development Kit) : 자바 플랫폼의 등장 이래 지금까지 가장 널리 사용되고 있는 소프트웨어 개발 키트(SDK) - 즉, Java로 소프트웨어를 개발할 수 있도록 여러 기능들을 제공하는 패키지(키트) JDK 구성 1) apt : 어노테이션 툴 2) appletviewer : 웹브라우저 없이 자바 애플릿을 실행하고 디버깅하기 위한 툴 3) javac : 자바 컴파일러. 자바 소스파일을 바이트코드로 변환 4) java : javac가 만든 클래스 파일을 해석 및 실행 5) jar : 서로 관련있는 클래스 라이브러리들과 리소스를 하나의 파일로 묶어주는 툴 6) jdb : 자바 디버깅 툴 7) JRE(Java Runtime Enviroment) : Java가 동작하는데 필요한 JVM,..