Что такое контекст в Java? [дубликат]
этот вопрос уже есть ответ здесь:
Что такое "контекст" на Android?
30 ответов
я погуглил это и прочитал документацию Java, но я немного запутался. Может кто-нибудь, пожалуйста, объясните, что такое Context Это на простом английском языке?
4 ответов:
в терминах программирования, это большая окружающая часть, которая может иметь любой влияние на поведение текущей единицы работы. Например, используемая среда выполнения, переменные среды, переменные экземпляра, локальные переменные, состояние других классов, состояние текущей среды и т. д.
в некоторых API вы видите это имя обратно в интерфейс / класс, например сервлет
ServletContext, JSFFacesContext, весныApplicationContext,Context, JNDIInitialContextи т. д. Они все часто следуют Фасад Шаблон который абстрагирует детали окружающей среды, о которых конечному пользователю не нужно знать в одном интерфейсе/классе.
контекст представляет вашу среду. Он представляет состояние, в котором вы находитесь в своей системе.
например, в веб-программировании на Java, у вас есть запрос, и ответ. Они передаются в метод Service сервлета.
свойством сервлета является ServletConfig, а внутри него-ServletContext.
ServletContext используется, чтобы сообщить сервлету о контейнере, в котором находится сервлет.
Так, ServletContext представляет среду сервлетов в своем контейнере.
аналогично, в Java EE у вас есть EBJContexts, которые элементы (например, сеансовые бобы) могут получить доступ к работе со своими контейнерами.
Это два примера контекстов, используемых в Java сегодня.
изменить --
вы упомянули Android.
смотрите сюда:http://developer.android.com/reference/android/content/Context.html
вы можете увидеть, как этот контекст дает вам всевозможную информацию о том, где развернуто приложение Android и что доступно для него.
просто говоря, контекст Java означает Java
nativeметоды все вместе.в следующем Java-коде две строки кода нуждаются в контексте:
// (1)и// (2)import java.io.*; public class Runner{ public static void main(String[] args) throws IOException { // (1) File file = new File("D:/text.txt"); String text = ""; BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null){ // (2) text += line; } System.out.println(text); } }(1) нужен контекст, потому что вызывается Java native method
private native void java.lang.Thread.start0();(2)
reader.readLine()нужен контекст, потому что вызывает Java native methodpublic static native void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);PS.
это то, что BalusC sayed о фасаде картины больше строго.
так как вы заглавными буквами слово, я предполагаю, что вы имеете в виду интерфейс
javax.naming.Context. Несколько классов реализуют этот интерфейс, и при его простейшем описании он (в общем случае) представляет собой набор пар имя/объект.
Comments