일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- DBMS
- mssql
- 자바
- 책
- MariaDB
- 명령어
- SQL
- 티스토리챌린지
- git
- java
- 독서
- spring
- 책추천
- oracle
- Linux
- 네트워크
- Javascript
- docker
- mysql
- 웹
- IntelliJ
- AI
- PostgreSQL
- react
- Python
- 후기
- pandas
- 리눅스
- 개발
- 오블완
- Today
- Total
목록JAVA (68)
hanker
Java 프로그래밍에서 종종 보이는 불변 객체란 대체 뭘까? 특히 문자열(String)이나 날짜/시간 관련 클래스(LocalDate, LocalDateTime)를 다룰 때 불변성은 매우 중요한 개념인데, 이번 글에서는 이 불변 객체가 뭘 뜻하는 건지 알아보자. 불변 객체란? 객체가 한 번 생성되면 그 상태(값)가 절대 변하지 않는 객체이다.즉, 객체를 만들고 나면 내부 필드 값을 변경할 수 없다.만약 값이 변경되는 것처럼 보이더라도 사실은 새로운 객체가 생성되는 것이다. 불변 객체 예시 StringString str = "Hello";str = str + " World";System.out.println(str); // Hello World- 위 코드에서 Hello 문자열이 수정된 것처럼 보이지만, ..
지난 글에서 StringBuilder에 대해서 알아봤는데,이번 글에서는 멀티스레드 환경에서 강력한 기능을 발휘하는 StringBuffer에 대해서 알아보자. StringBuffer란? 가변(Mutable) 객체: 문자열을 자유롭게 수정, 추가, 삭제 가능동기화(Synchronized) 지원: 여러 스레드가 동시에 접근해도 안전하게 동작멀티스레드 환경에 적합 StringBuilder와 거의 같은 기능을 제공하지만, 차이점은 동기화 여부에 있다. StringBuffer 주요 메서드 // 객체 생성StringBuffer sb = new StringBuffer("Hello");// 문자열 추가 (append)sb.append(" World");System.out.println(sb); // Hello ..
Java에서 문자열을 다룰 때 가장 먼저 떠오르는 클래스는 String이다.하지만 String은 불변(immutable) 객체이기 때문에 문자열을 자주 수정하는 작업에서는 성능상 비효율이 발생할 수 있는데,이런 문제를 해결하기 위해 Java에서는 StringBuilder와 StringBuffer를 제공한다.이번 글에서는 더 가볍고 빠른 StringBuilder를 알아보자. String vs StringBuilder String불변(Immutable) 객체문자열을 수정하면 새로운 객체가 생성됨문자열 변경이 잦을 경우 성능 저하 발생StringBuilder가변(Mutable) 객체내부 버퍼(buffer)에 문자열을 저장하고 수정 가능문자열 연결, 삭제, 삽입 등이 빈번할 때 성능 우수즉, 문자열 수정이 ..
Java 16부터 정식으로 도입된 Record는 클래스를 만들어 데이터를 담을 때마다 반복되는 코드 작성이 지겨움을 없애준다. public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String name() { return name; } public int age() { return age; } @Override public boolean equals(Object o) { ... } @Override public..

Java 프로젝트에서 종종 final 로 선언된 변수나 메서드, 클래스들이 보인다. 이게 대체 뭘까? 이번 글에서는 final 키워드에 대해서 알아보자 final 이란? final은 Java에서 "변경할 수 없음"을 나타내는 키워드이다.변수, 메서드, 클래스에 사용할 수 있으며, 각각 다른 의미를 가지게 된다. 1. final 변수 final 변수는 한 번 초기화되면 재할당할 수 없는 변수이다.public class Main { public static void main(String[] args) throws Exception { // 선언과 동시에 초기화 final int constantValue = 100; final String message = "Hel..
Collectors는 Java 8에서 도입된 Stream API 중 하나로,스트림의 요소들을 수집(collect)하여 다양한 형태의 결과로 변환하는 기능을 제공하는 유틸리티 클래스이다. collect() 메서드와 함께 사용되어 다음과 같은 작업을 수행한다.수집(Collection): 스트림 요소들을 컬렉션으로 변환집계(Aggregation): 요소들을 하나의 값으로 축약그룹핑(Grouping): 특정 기준으로 요소들을 분류변환(Transformation): 요소들을 다른 형태로 변환// 기본 구조Stream stream = ...;R result = stream.collect(collector);// 예시List names = Arrays.asList("Alice", "Bob", "Charlie");Li..

Java, Python에서 제공되는 split 함수가 C언어에서는 strtok() 함수로 지원된다. strtok() 함수 strtok 함수 기본 사용법#include char *strtok(char *str, const char *delim); 매개변수str: 분할할 문자열 (첫 번째 호출 시), NULL (이후 호출 시)delim: 구분자 문자열 >#include #include int main() { char str[] = "apple,banana,orange,grape"; char *token; // 첫 번째 토큰 추출 token = strtok(str, ","); // 모든 토큰 출력 while (token != NULL) { printf..

Java 8에서 도입된 Java Stream의 filter 기능에 대해서 알아보자. filter() 메서드는 주어진 조건을 만족하는 요소들만 통과시키는 중간 연산자이다. 1. filter() 기본 사용법public class Main { public static void main(String[] args) throws Exception { List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 짝수만 필터링 List evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors...

Java에서 배열안에 데이터를 정렬하는 방법에 대해서 알아보자. 1. Arrays.sort() 가장 간단하면서 일반적인 방법인 Arrays.sort() 메서드를 알아보자. 기본 타입 배열 정렬public class Main { public static void main(String[] args) throws Exception { // 정수 배열 정렬 int[] numbers = {5, 2, 8, 1, 9, 3}; Arrays.sort(numbers); System.out.println("정렬된 정수 배열: " + Arrays.toString(numbers)); // 문자열 배열 정렬 String[] names = {"A"..
쿠키(Cookie)는 사용자의 웹 브라우저에 저장되는 작은 데이터다.주로 로그인 상태 유지, 사용자 식별, 맞춤 설정 등을 위해 사용된다.Java Servlet 환경에서는 (javax.servlet.http.Cookie / jakarta.servlet.http.Cookie) 클래스를 사용해 쿠키를 생성하거나 삭제할 수 있다. 이번 글에서는 Java Servlet을 이용한 쿠키 추가 및 삭제 방법을 알아보자 1. Cookie 추가public void doGet(HttpServletRequest request, HttpServletResponse response) { Cookie userCookie = new Cookie("username", "john_doe"); userCookie.setMax..