cuốn sách gpt4 ai đã làm

java — Vòng đời đối tượng của chuỗi jstring trong JNI là gì?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 19:00:51 30 4
mua khóa gpt4 Nike

我对JNIÍt được biết đến và cách nó được xử lý nội bộ JNImôi trường. Tôi có một câu hỏi đơn giản.

tôi ở đây Java Có một cuộc gọi phương thức JNIphương pháp và vượt qua một Stringtrong các tham số. JNIphương pháp này là chuỗi ký tự chấp nhận đối tượng chuỗi và lưu trữ nó trong vectơ tĩnh 中.

Câu hỏi của tôi: Có an toàn khi sử dụng vectơ này trong suốt vòng đời của ứng dụng Java không? tôi cần suy nghĩ về GC ? Có thể di chuyểnStringhiện hữu Javamôi trường? Điều này có gây ra vấn đề gì trong trường hợp này không? Nếu có, cách tiếp cận đúng là gì?

câu trả lời hay nhất

Có thể có hoặc không, về cơ bản, VM hầu như không đưa ra lời hứa nào về điều gì sẽ xảy ra với bộ nhớ được sử dụng bởi các chuỗi sau lệnh gọi JNI

Gần như trực tiếp từ nguồn: http://java.sun.com/docs/books/jni/html/objtypes.html

JNI chuyển các đối tượng tới các phương thức gốc dưới dạng tham chiếu mờ. Tham chiếu mờ là loại con trỏ C tham chiếu đến cấu trúc dữ liệu nội bộ trong máy ảo Java. Tuy nhiên, bố cục chính xác của cấu trúc dữ liệu bên trong bị ẩn khỏi lập trình viên. Mã gốc phải thao tác đối tượng cơ bản thông qua các hàm JNI thích hợp, có sẵn thông qua con trỏ giao diện JNIEnv. Ví dụ: loại JNI tương ứng của java.lang.String là jstring. Giá trị chính xác được tham chiếu bởi jstring không liên quan gì đến mã gốc. Mã gốc gọi các hàm JNI như GetStringUTFChars(§3.2.1) để truy cập nội dung của chuỗi.

Nói tóm lại, dù sao thì bạn cũng không nên truy cập trực tiếp vào giá trị của chuỗi jstring, vì vậy không có lý do gì để lưu trữ chuỗi jstring, hãy sử dụng các phương pháp thích hợp để chuyển đổi chúng thành chuỗi gốc và lưu trữ chúng theo cách đó.

Giới thiệu về java - Vòng đời đối tượng của jstring trong JNI là gì? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/7089403/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress