>  기사  >  Java  >  자바에서 io와 nio의 차이점은 무엇입니까?

자바에서 io와 nio의 차이점은 무엇입니까?

PHPz
PHPz앞으로
2023-05-13 15:04:062714검색

1. Java IO와 NIO의 첫 번째 차이점은 IO는 스트림 지향이고 NIO는 버퍼 지향이라는 것입니다.

Java IO는 스트림 지향적입니다. 즉, 스트림에서 한 번에 하나 이상의 바이트를 읽을 수 있습니다. 스트림에서 읽을 바이트 수는 전적으로 프로그래머에게 달려 있습니다. 이러한 바이트는 어디에도 캐시될 수 없습니다. 즉, 데이터를 스트림에서 앞뒤로 이동할 수 없습니다. 정말로 데이터를 이동해야 하는 경우 먼저 버퍼에 데이터를 캐시해야 합니다.

Java NIO는 버퍼를 약간 다르게 봅니다. 데이터를 버퍼로 읽어오면 버퍼는 나중에 처리됩니다. 필요한 경우 버퍼에서 데이터를 이동할 수 있습니다. 이렇게 하면 프로그래머가 처리할 때 더 많은 유연성을 얻을 수 있습니다. 그러나 버퍼에 처리해야 하는 모든 데이터가 포함되어 있는지 확인해야 합니다. 또한 읽은 데이터가 버퍼에 도착하면 처리되지 않은 데이터를 덮어쓸 수 없도록 해야 합니다.

차단 및 비차단 IO

2. Java IO의 다양한 스트림이 차단됩니다. Java NIO는 스레드가 채널에서 데이터를 읽어야 하는지 확인하는 비차단 모드입니다.

Java IO의 다양한 스트림이 차단됩니다. 즉, read() 메서드와 write() 메서드가 호출되면 데이터를 읽거나 완전히 쓸 때까지 스레드가 차단됩니다. 이 시간 동안 스트림을 처리하는 스레드는 완료될 수 없습니다.

Java NIO 비차단 모드는 스레드가 채널에서 데이터 읽기를 요청하도록 보장합니다. 이때까지 채널을 사용할 수 없으며, 현재 사용 가능한 데이터가 없으면 아무 작업도 수행되지 않습니다. 데이터를 읽을 수 있을 때까지 블록을 유지하는 대신 여기서 스레드는 다른 작업을 수행할 수 있습니다.

Java의 기본 데이터 유형은 무엇입니까?

Java의 기본 데이터 유형은 다음과 같이 구분됩니다.

1 정수 유형은 정수의 데이터 유형을 나타내는 데 사용됩니다.

2. 부동 소수점 유형, 소수를 나타내는 데 사용되는 데이터 유형입니다.

3. 문자 유형의 키워드는 "char"입니다.

4. 불리언형은 논리값을 표현하는 기본 데이터형입니다.

위 내용은 자바에서 io와 nio의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제