Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
При использовании Tomcat это - 30 минут. Можно читать больше об этом здесь .
Можно также установить это в коде для определенной сессии с помощью HttpSession
setMaxInactiveInterval API:
Определяет время, в секундах, между клиентскими запросами, прежде чем контейнер сервлета будет делать недействительным эту сессию. Отрицательное время указывает, что сессия никогда не должна тайм-аут.
я упоминаю это в случае, если Вы видите тайм-ауты, которые не составляют 30 минут, но Вы не определили другое значение (например, другой разработчик на проекте использовал этот API).
Другой объект для замечания является этим тайм-аутом, может не включить точную секунду, сессия имеет право истечь. Сервер EE Java может иметь поток опроса, который проверяет на сессии с истекшим сроком каждую минуту. Я не имею ссылки для этого, но видел это поведение в эру WebSphere 5.1.
Я уверен, что это зависит от Вашего контейнера. Tomcat составляет 30 минут.
Тайм-аут сеанса, который мы можем указать для этого конкретного контекста в файле web.xml, как указано ниже. 60
Тайм-аут сеанса по умолчанию составляет 30 минут