Java Category/Java80 [Java] Optional<T> 자바에서 Optional 클래스는 null이 될 수 있는 객체를 감싸는 래퍼 클래스이다. java.util.Optional는 자바 8에서 도입되었으며, NullPointerException을 방지하고, 명시적으로 변수가 null 값을 가질 수 있음을 표현할 수 있는 방법을 제공한다. 이를 통해 개발자는 보다 깔끔하고 의도가 명확한 코드를 작성할 수 있다. 기본 사용법 Optional 객체를 생성하는 기본적인 방법은 Optional.of(value), Optional.ofNullable(value), 그리고 Optional.empty() 세 가지가 있다. Optional.of(value): null이 아닌 명시적인 값을 가지는 Optional 객체를 반환한다. 만약 인자로 넘긴 값이 null이라면, 즉시 .. Java Category/Java 2024. 3. 15. [Java] static import static import는 클래스의 정적 멤버(메서드와 필드)를 클래스 이름 없이 직접 사용할 수 있도록 해준다. 이를 통해 코드의 가독성을 높일 수 있지만, 과도하게 사용할 경우 어느 클래스에서 메서드나 필드가 정의되었는지 혼란을 줄 수 있다. 예를들어, static import를 사용하지 않는 경우, 예를 들어 Math 클래스의 sqrt 메서드를 사용하려면 클래스 이름을 명시해야 한다. double result = Math.sqrt(25); // Math 클래스의 sqrt 메서드 사용 static import를 사용하면, 메서드를 클래스 이름 없이 직접 호출할 수 있다 import static java.lang.Math.sqrt; ... double result = sqrt(25); // Math.s.. Java Category/Java 2024. 1. 23. [Java] Arrays.sort(), Collections.sort() Comparator, Comparable Arrays.sort()와 Collections.sort() Arrays.sort()와 Collections.sort()는 Java에서 배열과 컬렉션을 정렬하는 메서드이다. Arrays.sort() Arrays 클래스에 속한 정적 메서드로, 배열을 정렬할 때 사용한다. 주로 기본 타입 배열(int, double)을 정렬하는 데 사용된다. 정렬 알고리즘으로는 기본적으로 퀵 소트(QuickSort)가 사용되지만, Java 7 이후로는 퀵 소트와 병합 소트(MergeSort)가 혼합된 팀소트(TimSort)가 사용된다. Arrays.sort()는 인자로 넘겨받은 배열을 직접 수정하며, 반환값은 void이다. int[] arr = {5, 2, 9, 1, 5}; Arrays.sort(arr); Collection.. Java Category/Java 2024. 1. 15. [Java] char 타입을 정수 타입으로 변환 char num = '1'; int tmp = num; //자동 타입 변환 System.out.print(tmp); char num = '1'; System.out.print((int) num); //강제 타입 변환하여 출력 이렇게 문자 '1'을 자동 타입 변환을 하거나 강제 형 변환을 해서 출력을 하게되면 1이 출력이 되는것이 아니라 49가 출력이되어서 나온다. 위에서 49가 출력된 이유는 '1'은 아스키코드로 49이기 때문이다. 즉, 문자 '1'이 정수로 타입 변환이 될 때 아스키코드 49로 변환된 것이다. 이런 문제는 charAt()메소드를 사용할 때도 나타난다. String num = "12345"; for(int i = 0; i < num.length(); ++i) { int tmp = num... Java Category/Java 2023. 11. 26. [Java] next()와 nextLine()의 차이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int number; String string; System.out.print("숫자 입력 : "); number = sc.nextInt(); System.out.println("문자열 입력 : "); string = sc.nextLine(); System.out.println("숫자 입력 결과 : " + number); System.out.println("문자열 입력 결과 : " + string); } } /* 숫자 입력 : 6546201 문자열 입력 : 숫자 입력 결과 : 65462.. Java Category/Java 2023. 8. 22. [Java] DB와 연동한 게시판 구현 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. USER 테이블 Oracle MySQL BOARDS 테이블 Oracle MySQL 구현 Oracle Board.java import java.util.Date; public class Board { private int bno; private String btitle; private String bcontent; private String bwriter; private Date bdate; public int getBno() { return bno; } public void setBno(int bno) { this.bno = bno; } public String getBtitle() .. Java Category/Java 2023. 8. 21. [Java] DB 트랜잭션 처리 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 트랜잭션 트랜잭션(transaction)은 기능 처리의 최소 단위를 말한다. 하나의 기능은 여러가지 소작업들로 구성된다. 최소 단위라는 것은 이 소작업들을 분리할 수 없으며, 전체를 하나로 본다는 개념이다. 트랜잭션은 소작업들이 모두 성공하거나 실패해야 한다. 예를 들어 계좌 이체는 출금과 입금으로 구성된 트랜잭션이다. 출금과 입금 작업 중 하나만 성공할 수 없으며, 모두 성공하거나 모두 실패해야 한다. 계좌 이체는 DB 입장에서 보면 두 개의 계좌 금액을 수정하는 작업이다. 출금 계좌에서 금액을 감소시키고, 입금 계좌에서 금액을 증가시킨다. 따라서 아래와 같이 두 개의 UPDATE .. Java Category/Java 2023. 8. 20. [Java] DB 프로시저와 함수 호출 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 프로시저와 함수 이 글에서는 Oracle DB에 적용되는 프로시저와 함수를 다룬다. 클라이언트 프로그램(DB가 서버이고, DB를 이용하는 프로그램이 클라이언트)에서 매개값과 함께 프로시저 또는 함수를 호출하면 DB 내부에서 일련의 SQL문을 실행하고, 실행 결과를 클라이언트 프로그램으로 돌려주는 역할을 한다. 즉, 프로그램 내부에서 SQL문의 작업내용이 처리되지 않고 DB에서 처리가 된다. 클라이언트에서 처리하기 부담스러운 처리를 서버로 돌릴 수 있게 된다. 프로시저 : 리턴하는 값이 있지만, 주로 리턴하지 않고 작업 처리를 할 때 사용 예를 들어, 데이터 삽입, 삭제, 데이터 확인 .. Java Category/Java 2023. 8. 19. [Java] 데이터베이스에 저장(쓰기, 수정, 삭제) 및 읽기 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 데이터 베이스 구성 Account Table Boards Users 데이터 저장 데이터 쓰기(INSERT문) User 테이블 users 테이블에 새로운 사용자 정보를 저장하는 INSERT 문은 아래와 같다. INSERT INTO users (userid, username, userpassword, userage, useremail) VALUES ('winter', '한겨울', '12345', '25', 'winter@mycompany.com') 값을 ?로 대체한 매개변수화된 INSERT 문으로 변경하면 아래와 같다. INSERT INTO users (userid, username, u.. Java Category/Java 2023. 8. 18. [Java] JDBC 개요 및 DB 연결하기 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. JDBC 자바는 데이터베이스와 연결해서 데이터 입출력 작업을 할 수 있도록 JDBC(Java Database Connectivity) 라이브러리 (java.sql 패키지)를 제공한다. JDBC는 데이터베이스 관리시스템(DBMS)의 종류와 상관없이 동일하게 사용할 수 있는 클래스와 인터페이스로 구성되어 있다. JDBC는 인터페이스다. 즉 구현 객체가 있어야 사용할 수 있다. 구현 객체는 JDBC Driver인데, 해당 구현 객체는 DBMS 제조사가 제공한다. JDBC Driver는 DBMS 마다 별도로 다운로드받아 사용해야 한다. 위 그림은 상속 관계를 나타낸 그림이 아니다. Drive.. Java Category/Java 2023. 8. 17. [Java] TCP 채팅 프로그램 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. TCP 채팅 프로그램 작동 원리 클래스 용도 ChatServer -채팅 서버 실행 클래스 -ServerSocket을 생성하고 50001 포트에 바인딩 -ChatClient 연결 수락 후 SocketClient 생성 SocketClient -ChatClient와 1:1로 통신 ChatClient -채팅 클라이언트 실행 클래스 -ChatServer에 연결 요청 -SocketClient와 1:1로 통신 ChatServer 클래스에는 ServerSocket 객체가 50001번 포트로 들어오는 클라이언트 연결 요청을 수락한다. SocketClient 객체는 연결 요청한 클라이언트 수만큼 생성된.. Java Category/Java 2023. 8. 16. [Java] JSON 데이터 형식 이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. JSON - Java 다운로드 https://github.com/stleary/JSON-java GitHub - stleary/JSON-java: A reference implementation of a JSON package in Java. A reference implementation of a JSON package in Java. - GitHub - stleary/JSON-java: A reference implementation of a JSON package in Java. github.com 위 사이트에 접속해서 JAR 파일을 다운받는다. 이후 프로젝트에 해당 JAR 파일.. Java Category/Java 2023. 8. 15. 이전 1 2 3 4 ··· 7 다음