분류 전체보기

개발일지/Java

Java 스레드 동기화

싱글 스레드 프로세스 : 데이터에 단 하나의 스레드만 접근하기 때문에 상관없음 멀티 스레드 프로세스 : 두 스레드가 동일한 데이터를 공유하게 되어 문제 발생 가능성 존재함 하나의 계좌에서 현금을 출금한다고 가정한다 더보기 package 스레드; public class Main { public static void main(String[] args) { Runnable threadTask = new ThreadTask(); Thread thread1 = new Thread(threadTask); Thread thread2 = new Thread(threadTask); thread1.setName("김이룸"); thread2.setName("이자바"); thread1.start(); thread2.start..

개발일지/Java

Java 스레드 이름 조회 및 설정

메인 스레드는 main이라는 이름을 가지며, 그 외에 추가적으로 생성한 스레드는 "Thread-n"이라는 이름을 갖는다 스레드 이름 조회하기 .getName() public class Main { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { public void run() { System.out.println("Get Thread Name"); } }); thread.start(); System.out.println("thread.getName() = " + thread.getName()); } } // 출력 Get Thread Name thread.getName()=Thread-0 스레드 이름 설..

개발일지/Java

Java 스레드 (Thread)

애플리케이션을 실행하면 운영체제로부터 실행에 필요한 만큼의 메모리를 할당받아 프로세스가 된다 프로세스는 데이터, 컴퓨터 자원, 그리고 스레드로 구성된다 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행한다 스레드는 하나의 코드 실행 흐름이다 메인 스레드 (Main thread) 자바 앱을 실행하면 가장 먼저 실행되는 메서드는 main이다. 메인 스레드가 main 메서드를 실행시켜준다 멀티 스레드 (Multi-Thread) 하나의 프로세스는 여러 개의 스레드를 가질 수 있다 여러개의 스레드를 가진다는 것은 여러 스레드가 동시에 작업을 수행할 수 있음을 의미한다 멀티 태스킹을 구현하는데 핵심적인 역할을 한다 작업 스레드 생성과 실행 별도의 작업 스레드를 활용하려면 작업 스레드가 수행할..

개발일지/Java

Java File

자바에서는 File 클래스로 파일과 디렉터리에 접근할 수 있다 import java.io.*; public class Main { public static void main(String args[]) throws IOException { File file = new File("./eroom.txt"); System.out.println(file.getPath()); System.out.println(file.getParent()); System.out.println(file.getCanonicalPath()); System.out.println(file.canWrite()); } } getPath : 추상 경로를 문자열로 반환 getParent : 상위 경로를 문자열로 반환. 경로 이름이 상위 디렉터리의..

개발일지/Java

Java FileReader, FileWriter

문자 기반 스트림 문자 데이터를 다룰 때 사용 여러 종류의 인코딩과 자바에서 사용하는 유니코드 간의 변환을 자동으로 처리 FileReader : 인코딩 -> 유니코드 FileWriter : 유니코드 -> 인코딩 FileWriter 바로 사용법을 알아보자 import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String args[]) { try { String fileName = "eroomFileWriter.txt"; FileWriter writer = new FileWriter(fileName); String str = "이룸 File Writer 테스트!"; writer.writ..

개발일지/Java

Java InputStream, OutputStream

바이트 기반 스트림 ( 입출력 단위가 1byte) FileOutputStream 파일 생성 import java.io.FileOutputStream; public class Main { public static void main(String[] args) { try { FileOutputStream fileOutput = new FileOutputStream("eroom.txt"); String word = "E-room"; byte b[] = word.getBytes(); fileOutput.write(b); fileOutput.close(); } catch (Exception e) { System.out.println(e); } } } FileInputStream 파일을 읽어올 때 사용 FileOut..

개발일지/Java

Java Optional<T>

모든 타입의 객체를 담을 수 있는 Wrapper 클래스 Optional NullPointerException(NPE : null 값으로 인해 에러가 발생하는 현상)을 객체 차원에서 효율적으로 방지하고자 도입 public final class Optional { private final T value; // T타입의 참조변수 } of(), ofNullable() Optional opt1 = Optional.ofNullable(null); // null일 가능성이 있다면 사용 Optional opt2 = Optional.ofNullable("123"); System.out.println(opt1.isPresent()); //Optional 객체의 값이 null인지 여부를 리턴 System.out.printl..

개발일지/Java

Java 스트림 생성, 중간 연산, 최종 연산

스트림 생성 스트림 사용 시 주의할 점 데이터 소스로부터 데이터를 읽기만 하고 변경은 하지 않는다 스트림은 일회용이다. -> 한번 사용 시 닫히므로 필요시 다시 만들어야 됨 Collection 인터페이스에는 stream()이 정의되어 있다 -> Collection을 구현한 객체들(List, Set 등)은 모두 stream()을 이용해 스트림을 생성할 수 있다 .stream() // List로부터 스트림을 생성 List list = Arrays.asList("a", "b", "c"); // List생성 Stream listStream = list.stream(); // List로 Stream을 생성 listStream.forEach(System.out::prinln); //스트림의 모든 요소를 출력. 배열..

개발일지/Java

Java 스트림(Stream)

배열, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자 스트림의 특징 1. 선언형 프로그래밍 "어떻게" 수행하는지보다는 "무엇을" 수행하는지에 관심을 두는 프로그래밍 패러다임 -> 가독성이 높다 일반적인 방법 // List에 있는 숫자들 중에서 4보다 큰 짝수의 합계 구하기 List numbers = List.of(1, 3, 6, 7, 8, 11); int sum = 0; for (int number : numbers) { if (number > 4 && (number % 2 == 0)) { sum += number; } } System.out.println("# 명령형 프로그래밍 : " + sum); stream을 이용한 방법 // List에 있는 숫자들 중에서 4보다 ..

E-room
'분류 전체보기' 카테고리의 글 목록 (14 Page)