자바 의 transient, volatile, strictfp 키워드
2313 단어 자바
http://www.iteye.com/topic/52957
자바 의 transient, volatile, strictfp 키워드
transient 로 인 스 턴 스 변 수 를 설명 하면 대상 이 저장 할 때 값 을 유지 할 필요 가 없습니다.예 를 들 면:
class T {
transient int a; //
int b; //
}
여기 서 T 류 의 한 대상 이 영구적 인 저장 영역 에 기록 하면 a 의 내용 은 저장 되 지 않 지만 b 의 내용 은 저 장 됩 니 다.
volatile 수식 자 는 컴 파일 러 가 volatile 에 의 해 수 식 된 변 수 는 프로그램의 다른 부분 에 의 해 변 경 될 수 있 음 을 알려 줍 니 다.다 중 스 레 드 프로그램 에 서 는 두 개 이상 의 스 레 드 가 같은 인 스 턴 스 변 수 를 공유 할 때 가 있 습 니 다.효율 문 제 를 고려 하여 모든 스 레 드 는 공유 변수의 개인 복사 본 을 스스로 저장 할 수 있 습 니 다.실제 변수 복사 본 은 synchronized 방법 에 들 어 갈 때 와 같이 서로 다른 때 에 업 데 이 트 됩 니 다.
strictfp 수식 류 나 방법 으로 부동 소수점 연산 (및 모든 절단) 이 초기 자바 버 전 처럼 정확 하도록 확보 할 수 있 습 니 다.일부 조작 에 만 영향 을 주 는 지 수 를 차단 하 다.하나의 클래스 가 strictfp 에 의 해 수 정 될 때 모든 방법 은 자동 으로 strictfp 에 의 해 수 정 됩 니 다.
strictfp 는 FP - strict, 즉 정확 한 부동 소수점 이라는 뜻 이다.자바 가상 컴퓨터 에서 부동 소수점 연산 을 할 때 strictfp 키 워드 를 지정 하지 않 았 을 때 자바 의 컴 파일 러 와 운영 환경 은 부동 소수점 연산 표현 식 에 대해 자기 멋대로 하 는 것 과 비슷 한 행동 으로 이 작업 을 완성 하여 얻 은 결 과 를 만족 시 키 지 못 합 니 다.한편, strictfp 를 사용 하여 클래스, 인터페이스 또는 방법 을 설명 할 때 설명 한 범위 내 자바 의 컴 파일 러 와 운영 환경 은 부동 소수점 규범 IEEE - 754 에 따라 실 행 됩 니 다.따라서 부동 소수점 연산 을 더욱 정확 하 게 하고 서로 다른 하드웨어 플랫폼 에서 실 행 된 결과 가 일치 하지 않 는 다 면 키워드 strictfp 를 사용 하 십시오.
클래스, 인터페이스 및 방법 을 strictfp 로 설명 할 수 있 지만 인터페이스 에 있 는 방법 과 구조 함수 에 대해 strictfp 키 워드 를 설명 할 수 없습니다. 예 를 들 어 아래 코드:
1. 합 법 적 인 키워드 strictfp 사용
자바 코드
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2. 잘못된 사용법
interface A {
strictfp void f();
}
public class FpDemo2 {
strictfp FpDemo2() {}
}
키워드 strictfp 를 사용 하여 특정한 종류, 인터페이스 또는 방법 을 설명 할 때 이 키워드 가 설명 하 는 범위 내 에서 모든 부동 소수점 연산 은 정확 하고 IEEE - 754 규범 에 부합 합 니 다.예 를 들 어 하나의 클래스 가 strictfp 로 밝 혀 지면 이 클래스 의 모든 방법 은 strictfp 입 니 다.
Keys: volatile
사용 대상: 필드
소개: 비동기 스 레 드 는 필드 에 접근 할 수 있 기 때문에 일부 최적화 작업 은 필드 에 작용 할 수 없습니다.가끔
synchronized 를 대체 할 수 있 습 니 다.
Keys:transient
사용 대상: 필드
소개: 필드 는 대상 의 지속 적 인 상태의 일부분 이 아니 므 로 필드 와 대상 을 함께 묶 어 서 는 안 됩 니 다.
[/size]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.