В первой статье обсуждаются объектно-ориентированные программирование и его функции, общие вопросы о Java и ее функциях, классах коллекции Java, коллекционеров мусора, в этой главе в основном обсуждаются обработка исключений, Java Applets, Swing, JDBC, удаленные вызовы методов (RMI), сервлеты и JSP.
Обработка исключений
Java applet (applet)
Качать
JDBC
Удаленный метод вызов (RMI)
Сервис
JSP
Обработка исключений
43. Каковы два типа исключений в Java? В чем разница между ними?
В Java есть два типа исключений: проверенное исключение и неконтролируемое исключение. Исключение, которое не проверяется, не должно быть объявлено на методе или конструкторе. Даже если выполнение метода или конструктора может добавить такое исключение, и исключение, которое не проверено, может быть распространено вне метода или конструктора. Напротив, проверенное исключение должно быть объявлено на методе или конструкторе, используя оператор Throws. Вот несколько советов по обработке исключений Java.
44. В чем разница между исключением и ошибкой в Java?
Исключение и ошибка - оба подклассы броски. Исключение используется для исключений, которые могут быть пойманы пользовательской программой. Ошибка определяет исключение, которое не будет поймано пользовательской программой.
45. В чем разница между броском и бросками?
Ключевое слово Throw используется для явного броска исключений в программе. Напротив, оператор бросков используется для обозначения исключений, которые метод не может обрабатывать. Каждый метод должен указать, какие исключения не могут быть обработаны, поэтому вызывающий абонент метода может убедиться, что возможные исключения обрабатываются, а несколько исключений разделяются запятыми.
45. При обработке исключений, какова важность окончательно кодовых блоков? (Примечание переводчика: номер заголовка автора неверен)
Независимо от того, брошено ли исключение или нет, наконец, блок кода всегда будет выполнен. Даже если нет оператора по уловку, и исключение брошено, наконец -то кодовый блок все еще будет выполнен. Наконец, я хочу сказать, что, наконец, кодовые блоки в основном используются для бесплатных ресурсов, таких как: буферы ввода -вывода, подключения к базе данных.
46. Какие изменения произойдут с объектом исключения после завершения обработки исключений?
Объект исключения будет переработана во время следующего процесса сбора мусора.
47. В чем разница между кодовым блоком и методом завершения ()?
Независимо от того, будет ли исключено исключение или нет, будет выполнен кодовый блок, который в основном используется для освобождения ресурсов, занятых приложением. Метод infintize () является защищенным методом класса объекта. Это называется виртуальной машиной Java до того, как объект будет собран мусором.
Java applet (applet)
48. Что такое апплет?
Апплет Java - это программа, которая может быть включена в HTML -страницу и может быть выполнена клиентским браузером с включенной Java. Апплет в основном используется для создания динамических интерактивных веб -приложений.
49. Объясните жизненный цикл апплета
Апплет может испытать следующее состояние:
50. Что происходит при загрузке апплета?
Сначала создайте экземпляр класса управления апплетом, затем инициализируйте апплет и, наконец, начните работать.
51. В чем разница между апплетом и обычными приложениями Java?
Applet-это браузер с поддержкой Java, а Java-приложения являются независимыми программами Java, которые могут работать за пределами браузера. Тем не менее, все они должны иметь виртуальные машины Java.
Кроме того, приложения Java требуют основной функции с конкретной подписью метода для запуска выполнения. Java Applets не нуждаются в таких функциях, чтобы начать выполнение.
Наконец, Java Applets обычно используют очень строгие политики безопасности, в то время как Java -приложения обычно используют относительно свободные политики безопасности.
52. Каковы ограничения Java Applet?
Главным образом по соображениям безопасности, на апплеты налагаются следующие ограничения:
53. Что такое недоверенный апплет?
Недоверенные апплеты - это Java Applets, которые не могут получить доступ или выполнять локальные системные файлы. По умолчанию все загруженные апплеты не наделены.
54. В чем разница между апплетом, загруженным в сеть, и апплетом, загруженным из локальной файловой системы?
Когда апплет загружается из сети, апплет загружается загрузчиком класса Applet, который ограничен менеджером Applet Security.
Когда апплет загружается с локального диска клиента, апплет загружается погрузчиком файловой системы.
Апплетты, загруженные из файловой системы, позволяют читать, записать, загружать библиотеки классов на стороне клиента, а также разрешать выполнение других программ, но они не могут пройти проверку байт -кода.
55. Что такое загрузчик класса апплета? Какую работу это делает?
Когда апплет загружается из сети, он загружается загрузчиком класса апплета. Класс -загрузчик имеет свою собственную иерархию пространства имен Java. Загрузчик класса гарантирует, что классы из файловой системы имеют уникальное пространство имен, а классы из сетевых ресурсов имеют уникальное пространство имен.
Когда браузер загружает апплет через сеть, класс апплета помещается в частное пространство имен, связанное с источником апплета. Затем классы, загруженные загрузчиком класса, все подтверждаются валидатором. Валидатор проверит, соответствует ли формат файла класса с спецификациями языка Java, чтобы убедиться, что не существует переполнения стека или недостаточного потока. Параметры, передаваемые к инструкции по байт -коду, являются правильными.
56. Что такое менеджер по безопасности апплета? Какую работу это делает?
Диспетчер безопасности апплета - это механизм для навязывания ограничений на апплеты. В браузере может быть только один менеджер безопасности. Менеджер безопасности создается при запуске и не может быть заменен или расширен впоследствии.
Качать
57. В чем разница между меню выбора всплывающего окна (выбор) и списком (список)
Выбор представлен в компактной форме и требует раскрытия, чтобы увидеть все варианты. Только один вариант может быть выбран за раз в выборе. Список может иметь несколько элементов, видимые одновременно, и он поддерживает выбор одного или нескольких элементов.
58. Что такое менеджер макета?
Менеджер макетов используется для организации компонентов в контейнерах.
59. В чем разница между прокруткой и панелью свитков (JScrollpane)?
Прокрутка - это компонент, а не контейнер. И Scrollpane - это контейнер. Прокрутка прокручивает события прокрутки сами по себе.
60. Какие методы качания безопасны для нити?
Существует только 3 метода защиты от потока: Repaint (), Revalidate () и Invalidate ().
61. Назовите три компонента, которые поддерживают перераспределение.
Кернат, кадр, панель и апплетная поддержка перераспределяется.
62. Что такое обрезка?
Разберите операцию чертежа, которая ограничена данной областью или формой.
63. В чем разница между Menuitem и Checkboxmenuitem?
Класс FaceboxMenuitem наследует от класса Menuitem и поддерживает параметры меню, которые могут быть выбраны или не выбраны.
64. Как изложены элементы в краю (Borderlayout)?
Элементы в Borderlayout расположены в соответствии с восточным, западом, юг, севером и серединой контейнера.
65. Как изложены элементы в сетке сетки (Gridbaglayout)?
Элементы в Gridbaglayout изложены в соответствии с сеткой. Элементы разных размеров могут занимать более 1 строки или столбца сетки. Следовательно, количество строк и столбцов может иметь разные размеры.
66. В чем разница между окном и кадром?
Класс фрейма наследует класс окна, который определяет основное окно применения, которое может иметь строку меню.
67. Какова связь между обрезкой и перекрашением?
Когда окно перерисовано нитью awt redraw, оно устанавливает площадь обрезки в область окна, которую необходимо перерисовать.
68. Каковы отношения между интерфейсом слушателя событий и адаптером событий?
Интерфейс слушателя событий определяет методы, которые процессор событий должен реализовать для конкретного события. Адаптер событий предоставляет реализацию по умолчанию для интерфейса прослушивания событий.
69. Как компонент графического интерфейса обрабатывает свои собственные события?
Компонент графического интерфейса может обрабатывать свои собственные события, если он реализует соответствующий интерфейс слушателя событий и считает себя слушателем событий.
70. Каковы преимущества менеджера макета Java по сравнению с традиционными оконными системами?
Java использует диспетчер макетов для размещения компонентов на всех оконных платформах постоянно. Поскольку менеджеры макетов не связаны с абсолютным размером и положением компонентов, они способны адаптироваться к различиям между конкретными платформами по оконным системам.
71. Какой шаблон дизайна использует компоненты качания Java?
Компонент свинга в Java использует дизайн дизайна MVC (View-Model-Controller).
JDBC
72. Что такое JDBC?
JDBC - это уровень абстракции, который позволяет пользователям выбирать между различными базами данных. JDBC позволяет разработчикам писать приложения базы данных в Java, не заботясь о деталях базовой базы данных.
73. Объясните роль драйвера (драйвера) в JDBC.
Драйвер JDBC обеспечивает реализацию класса интерфейса JDBC API конкретным производителем. Драйвер должен предоставить следующие классы пакета Java.SQL: подключение, оператор, подготовка, CallableStatement, ResultSet и Driver.
74. Какова функция метода class.forname ()?
Этот метод используется для загрузки драйверов, которые устанавливают соединения с базой данных.
75. Каковы преимущества подготовки к заявлению?
Подготовленные предварительные задания предварительно считываются, поэтому производительность будет лучше. В то же время, подготовленное предприятие может быть повторно использовано для разных значений параметров запроса.
76. Когда использовать CallableStatement? Какой метод используется для подготовки CallableStatement?
CallableStatement используется для выполнения хранимых процедур. Хранилированные процедуры хранятся и предоставляются базой данных. Хранящаяся процедура может принимать входные параметры или возвращать результаты. Использование хранимых процедур очень рекомендуется, потому что оно обеспечивает безопасность и модульность. Метод подготовки CallableStatement - это:
Callablestament.preparecall ();
77. Что означает пул соединений с базой данных?
Взаимодействие с базой данных, такими как открытие и закрытие подключения к базе данных, может быть трудоемким, особенно когда число клиентов увеличивается, оно потребляет много ресурсов и очень дорого. Многие подключения базы данных могут быть установлены и поддерживаться в пуле при запуске сервера приложений. Запрос на подключение предоставляется подключением в пуле. После использования соединения верните соединение в пул, чтобы удовлетворить больше будущих запросов.
Удаленный метод вызов (RMI)
78. Что такое RMI?
Java Remote Method Call (Java RMI) является объектно-ориентированной эквивалентной формой, предоставленной Java API для удаленных вызовов процедур (RPC). Он поддерживает прямую передачу сериализованных объектов Java и распределенного сбора мусора. Удаленный вызов метода может рассматриваться как шаг для активации метода на удаленном запущенном объекте. RMI позиционно прозрачна для вызывающего абонента, потому что вызывающий вызывающий способ выполняется метод на объекте, работающем локально. Взгляните на некоторые меры предосторожности для RMI.
79. Каковы основные принципы архитектуры RMI?
Архитектура RMI основана на очень важном принципе разделения определения поведения и поведенческой реализации. RMI позволяет отделить код, который определяет поведение от кода, который реализует поведение и работает на разных JVM.
80. Каковы слои архитектуры RMI?
Архитектура RMI разделена на следующие слои:
Заглушка и скелетный слой: этот слой прозрачен для программистов. В основном он отвечает за перехват запросов вызовов метода, выданные клиентом, а затем перенаправление запроса в удаленную службу RMI.
Удаленный эталонный уровень: Второй уровень архитектуры RMI используется для разрешения клиентских ссылок на удаленные объекты на стороне сервера. Этот уровень анализирует и управляет клиентскими ссылками на удаленные объекты на стороне сервера. Соединение является точкой-точкой.
Транспортный слой: этот слой отвечает за подключение двух JVM, участвующих в службе. Этот слой построен на соединении TCP/IP между машинами в сети. Он предоставляет базовые услуги подключения, а также некоторые политики проникновения брандмауэра.
81. Какую роль играет удаленный интерфейс (удаленный интерфейс) в RMI?
Удаленные интерфейсы используются для определения того, какие методы представляют собой интерфейсы, которые могут быть вызваны нелокальными виртуальными машинами. Удаленные объекты должны прямо или косвенно реализовать удаленные интерфейсы. Класс, который реализует удаленный интерфейс, должен объявить реализованный удаленный интерфейс, определить конструктор для каждого удаленного объекта и предоставить реализацию для всех методов удаленного интерфейса.
82. Какую роль играет класс java.rmi.naming?
Класс java.rmi.naming используется для хранения и получения ссылок на удаленные объекты в реестре удаленных объектов. Каждый метод класса именования получает строковый объект, форматированный URL в качестве его параметра.
83. Что означает связывание RMI?
Привязка - это процесс связывания удаленных объектов или регистрации имен после регистрации, чтобы запросить и найти удаленные объекты. Удаленные объекты могут быть связаны с именами с использованием метода Bind () или Repind () класса именования.
84. В чем разница между методами Bind () и Repind () класса именования?
Метод Bind () отвечает за привязку указанного имени с удаленным объектом, и метод Repind () отвечает за повторное представление указанного имени в новый удаленный объект. Если это имя было связано, предыдущая привязка будет заменена.
85. Каковы шаги, позволяющие программе RMI работать правильно?
Для того, чтобы программа RMI работала правильно, должны быть включены следующие шаги:
86. Какую роль играет заглушка RMI?
Заглушка удаленного объекта играет роль репрезентативного или прокси -сервера удаленного объекта. Вызывающий звонок вызывает метод на локальном заглушке, который отвечает за выполнение метода на удаленном объекте. Когда будет вызван метод заглушки, будут проведены следующие шаги:
87. Что такое распределенная коллекция мусора (DGC)? Как это работает?
DGC называется распределенной коллекцией мусора. RMI использует DGC для автоматической сбора мусора. Поскольку RMI содержит ссылки на удаленные объекты в виртуальных машинах, сборы мусора сложны. DGC использует алгоритмы подсчета ссылок для обеспечения автоматического управления памятью для удаленных объектов.
88. Какова цель использования RMI Security Manager (RmiscurityManager) в RMI?
RmiSecurityManager использует загруженный код для предоставления менеджера безопасности, который может использоваться приложениями RMI. Без менеджера безопасности, загрузчик класса RMI не будет загружать каких -либо классов от удаленного.
89. Объясните Marshalling и Demarshalling.
Когда приложение хочет передать объекты памяти по всей сети на другой хост или сохранять хранилище, оно должно преобразовать представление объекта в памяти в подходящий формат. Этот процесс называется Marshalling, в противном случае он Demarshalling.
90. Объясните сериализацию и десериализацию.
Java обеспечивает механизм, называемый сериализацией объекта. Он представляет объект как серию байтов, включая данные объекта, информацию о типе объекта, данные внутри объекта и так далее. Следовательно, сериализация можно рассматривать как способ сгладить объект для хранения или прочтения его на диске и восстановления его. Десериализация - это противоположный этап преобразования объекта из плоского состояния в живой объект.
Сервис
91. Что такое сервлет?
Servlet - это класс Java, используемый для обработки запросов клиентов и генерации динамического веб -контента. Сервлет в основном используются для обработки или хранения данных, представленных HTML -формами, генерирования динамического содержания и управления информацией о состоянии в соответствии с протоколом HTTP без сохранения.
92. Давайте поговорим об архитектуре сервлета.
Основным интерфейсом, который должны реализовать все сервлеты, является javax.servlet.servlet. Каждый сервлет должен прямо или косвенно реализовать этот интерфейс или наследовать javax.servlet.genericservlet или javax.servlet.http.httpservlet. Наконец, сервлеты могут обслуживать несколько запросов параллельно, используя несколько потоков.
93. В чем разница между апплетом и сервлетом?
Applet - это клиентская Java -программа, работающая в браузере хоста клиента. Servlet является компонентом сервера, работающего на веб -сервере. Крафты могут использовать классы пользовательского интерфейса, в то время как сервлеты не имеют пользовательских интерфейсов. Вместо этого сервлеты ждут HTTP -запроса клиента, а затем генерируют ответ на запрос.
94. В чем разница между genericservlet и httpservlet?
Genericservlet-это общий протокол, независимый от сервлета, который реализует интерфейсы сервлета и сервискона. Сервлет, унаследованные от Genericservlet, должны переопределить метод Service (). Наконец, для разработки сервлета, который можно использовать на веб -странице для обслуживания HTTP -запросов, ваш сервлет должен быть унаследован от httpservlet. Вот примеры сервлетов.
95. Объясните жизненный цикл сервлета.
Для каждого запроса клиента двигатель сервлета загружает сервлет, вызывает метод init () и завершает инициализацию сервлета. Затем объект Сервлета обрабатывает все последующие запросы от клиента, вызывая метод Service () индивидуально для каждого запроса. Наконец, метод Destry () Сервлета называется (примечание переводчика: это должен быть сервлет вместо сервера) для удаления сервлета.
96. В чем разница между методом Doget () и методом Dopost ()?
Doget: Метод GET добавляет пару значений имени после запрошенного URL. Поскольку URL ограничивает количество символов, количество значений параметров, используемых в запросе клиента, ограничено. И значения параметров в запросе видны, поэтому конфиденциальная информация не может быть передана таким образом.
DoPost: метод POST преодолевает ограничения метода GET, размещая значение параметра запроса в корпус запроса, поэтому нет ограничений на количество параметров, которые могут быть отправлены. Наконец, конфиденциальная информация, передаваемая через запросы POST, невидима для внешних клиентов.
97. Что такое веб -приложение?
Веб -приложения являются динамическими расширениями для веб -сервера или сервера приложений. Существует два типа веб-приложений: ориентированные на презентация и ориентированные на обслуживание. Веб-приложения, ориентированные на производительность, производят веб-страницы, которые содержат интерактивные взаимодействия во многих языках разметки и динамического контента в качестве ответов на запросы. Служба, ориентированные на веб-приложения, реализуют конечную точку веб-службы. Вообще говоря, веб -приложение может рассматриваться как набор сервлетов, установленных под определенным подмножествами пространства имен URL сервера.
98. Что на стороне сервера включает?
Включение на стороне сервера (SSI)-это простой интерпретированный язык сценариев на стороне сервера, который в основном используется только в Интернете и встроен в него с тегами сервлета. Наиболее часто используемый сценарий в SSI включает в себя один или несколько файлов в веб -страницу веб -сервера. Когда браузер обращается к веб -странице, веб -сервер заменит тег Сервлета на веб -странице текстом, сгенерированным соответствующим сервлетом.
99. Что такое цепочка сервлетов?
Цепочка сервлета - это метод, который отправляет вывод одного сервлета в другой сервлет. Вывод второго сервлета можно отправить в третий сервлет и так далее. Последний сервлет в цепочке отвечает за отправку ответа клиенту.
100. Как узнать, какая клиентская машина запрашивает ваш сервлет?
Класс ServletRequest может найти IP -адрес или имя хоста клиентской машины. Метод getRemoteAddr () получает IP -адрес хоста клиента, GetReMoteHost () может получить имя хоста. Взгляните на пример здесь.
101. Какова структура ответа HTTP?
HTTP -ответ состоит из трех частей:
Код статуса: описывает статус ответа. Можно использовать для проверки, был ли запрос успешно завершен. В случае сбоя запроса код состояния может быть использован для выяснения причины сбоя. Если сервлет не возвращает код состояния, успешный код состояния httpservletresponse.sc_ok будет возвращен по умолчанию.
Заголовки HTTP: они содержат больше информации о ответе. Например: заголовок может указать дату истечения срока действия, когда ответ считается истечением или указать формат кодирования, используемый для безопасной передачи контента объекта пользователю. Как получить заголовок HTTP в Серлете, посмотрите здесь.
Тело: он содержит содержание ответа. Он может содержать HTML -код, картинки и так далее. Тело состоит из байтов данных, которые передаются сразу после заголовка в HTTP -сообщении.
102. Что такое печенье? В чем разница между сеансом и файлами cookie?
Cookie - это часть информации, отправленной в браузер на веб -сервере. Браузер будет хранить файлы cookie для каждого веб -сервера в локальном файле. В будущем, когда браузер отправит запрос на конкретный веб -сервер, он также отправит все файлы cookie, хранящиеся для сервера. В следующем перечислены разница между сеансом и файлами cookie:
Независимо от того, какие настройки делают клиент -браузер, сеанс должен работать нормально. Клиент может выбрать отключение файлов cookie, но сеанс по -прежнему работает, потому что клиент не может отключить сеанс сервера.
Сеанс и файлы cookie также различаются с точки зрения количества хранимых данных. Сеанс может хранить любой объект Java, а cookie может хранить только объекты типа строки.
103. Какой протокол использует браузер и сервлет для общения?
Браузер и общение сервлета используют протокол HTTP.
104. Что такое HTTP -туннель?
HTTP Tunneling - это технология, которая использует HTTP или HTTPS для инкапсуляции нескольких сетевых протоколов для связи. Следовательно, протокол HTTP играет роль обертки, которая открывает трубопроводы для сетевых протоколов для связи. Запрос, который охватывает запросы из других протоколов в HTTP, является туннелем HTTP.
105. В чем разница между методами sendredirect () и forward ()?
Метод SendRieRect () создает новый запрос, в то время как метод forward () просто пересылает запрос на новую цель. После перенаправления объекты в рамках предыдущего запроса будут недействительными, поскольку будет сгенерирован новый запрос. После пересылки объекты в рамках предыдущего запроса все еще будут доступны. Обычно считается, что SendRieRect () медленнее, чем вперед ().
106. Что такое URL -кодирование и декодирование URL?
Кодирование URL отвечает за замену пространств и других специальных символов в URL -адресу соответствующим шестнадцатеричным представлением, в противном случае оно декодирует.
JSP
107. Что такое страница JSP?
Страница JSP - это текстовый документ, который содержит два типа текста: статические данные и элементы JSP. Статические данные могут быть представлены в любом текстовом формате, таком как HTML или XML. JSP - это технология, которая смешивает статический и динамически сгенерированный контент. Вот пример JSP.
108. Как обрабатываются запросы JSP?
Сначала браузер должен запросить страницу, заканчивающуюся расширением .JSP, инициирует запрос JSP, а затем веб -сервер считывает запрос и преобразует страницу JSP в класс сервлета с помощью компилятора JSP. Следует отметить, что файл JSP будет составлен только при изменении первой страницы запроса или файла JSP, и сервер вызывает класс Сервлета для обработки запроса браузера. Как только выполнение запроса будет завершено, сервлет отправит ответ клиенту. Здесь мы видим, как получить параметры запроса в JSP.
109. Каковы преимущества JSP?
Преимущества использования JSP перечислены ниже:
110. Что такое директива JSP? Каковы различные типы директив в JSP?
Директива - это инструкция, которую необходимо обрабатывать двигатель JSP, когда страница JSP собирается в сервлет. Директива используется для установки инструкций на уровне страницы, вставить данные из внешних файлов и указать пользовательскую библиотеку тегов. Директива определяется между < %@ и %>. Ниже приведены различные типы директив:
Включите директиву: используется для включения файлов и содержимого файла слияния на текущую страницу.
Директива страницы: используется для определения конкретных свойств на страницах JSP, таких как страницы ошибок и буферы.
Директива Taglib: используется для объявления пользовательской библиотеки тегов, используемой на странице.
111. Что такое действия JSP?
Действия JSP контролируют поведение двигателя сервлета со структурой синтаксиса XML. Когда страница JSP будет запрошена, действие JSP будет выполнено. Они могут быть динамически вставлены в файлы, повторно использовать компоненты Javabean, перенаправленные пользователей на другие страницы или сгенерированный HTML-код для подключаемых видов Java. Доступные действия перечислены ниже:
112. Что такое сценарии?
В технологии JSP сценарии представляют собой часть кода Java, встроенный в страницу JSP. Скриплет - это все, что находится внутри тега. Между тегом пользователь может добавить любой действительный скриплет.
113. Где декларация (декаларация)?
Объявление очень похоже на объявления переменных в Java, и она используется для объявления переменных, которые будут использоваться выражениями или скриплетками. Добавленный оператор должен быть обернут с помощью тегов начала и конечного.
114. Что такое выражение?
[Список очень длинный и может быть опубликован на верхних, средних и нижних уровнях]
Выражения JSP - это веб -сервер, преобразующий значение выражения языка скрипта в строковый объект и вставляя его в поток данных, возвращаемый клиенту. Выражение определяется между двумя тегами < %= и %>.
115. Что означает неявный объект? Какие скрытые объекты?
Неявные объекты JSP являются некоторыми объектами Java на странице, а контейнер JSP позволяет использовать эти объекты Java использовать разработчиками. Разработчики могут использовать их напрямую без явных деклараций. Неявные объекты JSP также называются предопределенными переменными. В следующем перечислены неявные объекты на странице JSP:
Выше приведено сборник информации о вопросах на интервью Java. Спасибо за вашу поддержку на этом сайте!