어디에서 자바 원시 메소드 소스 코드를 다운로드 할 수 있습니까? 예를 들어 System.arraycopy()
의 소스 코드를 알고 싶지만 찾을 수 없습니다.자바 원시 메소드 소스 코드
16
A
답변
25
OpenJdk 소스 코드 here을 다운로드 할 수 있습니다.
jdk\src\share
폴더에서 소스 코드를 얻을 수 있습니다.
jdk\src\share\native
은 c 및 C++의 소스 코드 작성 방법입니다.
jdk\src\linux
Linux 용 소스.jdk\src\windows
windows 용 소스.jdk\src\solaris
souce for solaris.jd\src\share
일반적인 출처
예 : System.arrayCopy();
INT 파일 hotspot\src\share\vm\oops\objArrayKlass.cpp
라인 168 :
void objArrayKlass::copy_array(arrayOop s, int src_pos, arrayOop d,
int dst_pos, int length, TRAPS) {
assert(s->is_objArray(), "must be obj array");
if (!d->is_objArray()) {
THROW(vmSymbols::java_lang_ArrayStoreException());
}
// Check is all offsets and lengths are non negative
if (src_pos < 0 || dst_pos < 0 || length < 0) {
THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException());
}
// Check if the ranges are valid
if ((((unsigned int) length + (unsigned int) src_pos) > (unsigned int) s->length())
|| (((unsigned int) length + (unsigned int) dst_pos) > (unsigned int) d->length())) {
THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException());
}
// Special case. Boundary cases must be checked first
// This allows the following call: copy_array(s, s.length(), d.length(), 0).
// This is correct, since the position is supposed to be an 'in between point', i.e., s.length(),
// points to the right of the last element.
if (length==0) {
return;
}
if (UseCompressedOops) {
narrowOop* const src = objArrayOop(s)->obj_at_addr<narrowOop>(src_pos);
narrowOop* const dst = objArrayOop(d)->obj_at_addr<narrowOop>(dst_pos);
do_copy<narrowOop>(s, src, d, dst, length, CHECK);
} else {
oop* const src = objArrayOop(s)->obj_at_addr<oop>(src_pos);
oop* const dst = objArrayOop(d)->obj_at_addr<oop>(dst_pos);
do_copy<oop> (s, src, d, dst, length, CHECK);
}
}
0
네이티브 메서드 및 사용중인 가상 컴퓨터에 따라 다르게 구현됩니다. 이 방법의 구현은 없으며 사실 다른 아키텍처 나 VM에서 다른 코드가 실행될 수 있습니다.
관련 문제
- 1. 안드로이드의 원시 메소드 소스 코드를 얻는 방법
- 2. 자바 소스 코드 변경
- 3. Ruby의 repeated_permutation 메소드 소스 코드 이해
- 4. 자바 소스 코드 분석 도구
- 5. 자바 스크립트, 캘린더 소스 코드
- 6. 자바 스크립트 소스 코드 재사용
- 7. 자바 스크립트 소스 코드 찾기
- 8. 원시 데이터 소스
- 9. 안드로이드 네이티브 코드 호출 자바 메소드 성공,하지만 실패한 메소드
- 10. HelloJni의 원시 코드 디버깅
- 11. WRobotPeer 네이티브 소스 코드
- 12. 런타임에 지정된 원시 코드 호출
- 13. 원시 코드 검사
- 14. 하늘빛과 원시 코드
- 15. 원시 프로세스에 코드 삽입
- 16. Azure에서 원시 코드 실행
- 17. Java 원시 코드 프리미티브
- 18. C#의 원시 코드?
- 19. LLVM 원시 코드 생성
- 20. 원시 C# 소스 코드를 난독화할 수 있습니까?
- 21. 자바 스크립트로 실제 소스 코드 가져 오기?
- 22. 전략/롤 플레잉 소스 코드 안드로이드/자바
- 23. 리팩토링 자동으로 소스 자바 코드 NOT jar
- 24. 코드 완성을 지원하는 오픈 소스 자바 IDE들
- 25. 웹 페이지에서 자바 스크립트 소스 코드
- 26. 에서 appengine 자바 개발 서버 소스 코드
- 27. 자바 원시 상호 작용 디버깅
- 28. ExpressionEngine의 원시 코드 가져 오기
- 29. Libc Java에서 원시 메소드 호출시 SIGSEGV
- 30. 최신 dom 소스 코드
기본 방법과 사용중인 가상 머신에 의해 다르게 구현. 이 방법의 구현은 없으며 사실 다른 아키텍처 나 VM에서 다른 코드가 실행될 수 있습니다. – epsalon
@epsalon 나는 이것에 대한 대답으로 자격이 있다고 생각한다. :) – eis
Open-JDK에이 소스 코드가있을 수 있습니까?이 원시 코드를보고 싶습니다. C/C++이어야한다고 생각합니다. 소스 코드, 감사합니다 – Jack