@Thilo: я спрашиваю о конструкторе без модификатора.

я есть несколько вопросов относительно конструкторов Java

Может ли конструктор быть приватным? Если да, то в каком состоянии?Конструктор - это метод или нет?Если конструктор ничего не возвращает, тогда почему мы получаем новый объект каждый раз, когда мы его вызываем?Какой модификатор доступа по умолчанию для конструктора, если мы не укажем.

редактировать

Ответы на 1 и 3 очень ясны. Я все еще не уверен насчет 2 и 4, так как я получаю разные ответы на них.

 Harry Joy13 янв. 2011 г., 05:27
@ Крис: Хорошо, сделаем это. Thnx
 Paul Sasik13 янв. 2011 г., 05:43
Для # 4 консенсус, кажется, пакет закрыт. Ответы, которые указывают на общедоступность, являются лишь частично правильными в том смысле, что общедоступность ограничена пакетом. # 2 тоже выглядит как консенсус: это метод. В объяснениях просто используются разные термины.
 Chris Thompson13 янв. 2011 г., 05:25
да. Я хотел бы предложить спросить часть о Tomcat наserverfault.com
 Harry Joy13 янв. 2011 г., 05:24
@Thilo: теперь все в порядке?
 hisdrewness13 янв. 2011 г., 07:11
для # 4 значение по умолчанию не является закрытым (то есть по умолчанию). Все классы расширяют java.lang.Object, который содержит открытый конструктор, и через наследование подкласс наследует этот открытый конструктор. Ответ, следовательно, публичный. Если есть сомнения, проверьте это.

Ответы на вопрос(8)

Да.Да.потому что конструктор вызываетсяnew, Что возвращает объектnewконструктор просто устанавливает внутреннее состояние.Public.
 Harry Joy13 янв. 2011 г., 05:30
@Thilo: я спрашиваю о конструкторе без модификатора.
 Thilo13 янв. 2011 г., 05:27
"4. Публичный"? Двусмысленный вопрос, наверное. Предполагаемый конструктор по умолчанию является открытым, но конструктор без модификаторов является закрытым для пакета.

Да. Там нет условий. Конечно, никто, кроме самого класса, не может вызвать его тогда.

Это на самом деле частая картина: естьstatic getInstance() и держите конструктор в тайне.

Также могут быть частные конструкторы, которые внутренние конструкторы вызывают внутри.

Конструктор это метод или нет?

Хм. Я говорю нет". По крайней мере, это «особый вид» метода. В каком именно контексте? Терминология менее важна, чем то, что вы пытаетесь сделать.

Если конструктор ничего не возвращает, то почему мы получаем новый объект каждый раз, когда мы его вызываем.

new Оператор возвращает что-то (новый экземпляр).

Какой модификатор доступа по умолчанию для конструктора.

То же, что и для методов. Пакет-частное.

Если вы не укажете конструктор, класс получит конструктор по умолчанию, который не принимает аргументов, ничего не делает, кроме вызова родительского конструктора и является открытым.

 Carlos Heuberger13 апр. 2011 г., 00:14
конструктор по умолчанию будет общедоступным, если класс общедоступен. От JLS: "В типе enum конструктор по умолчанию неявно закрыт, иначе класс если объявлен как public, тогда конструктор по умолчанию неявно получает модификатор доступа public; если класс объявлен защищенным, то конструктор по умолчанию неявно с учетом защищенного модификатора доступа; если класс объявлен закрытым, то конструктору по умолчанию неявно предоставляется закрытый модификатор доступа; в противном случае конструктор по умолчанию имеет доступ по умолчанию, подразумеваемый без модификатора доступа. "
Да, конструкторы могут быть частными. Это делается, когда вы хотите более жесткий или альтернативный контроль над созданием экземпляра, например, с помощью фабричных методов или с шаблоном, например Singleton.Это метод, но он не вызывается напрямую. Это специальный тип метода, который вызывается от вашего имени при создании нового объекта.Конструкторы ничего не возвращают, они создают новые объекты.По умолчанию используется пакет private. Так что общедоступен для любого класса в пакете, но не виден для кода вне пакета.

Мысли о производительности и масштабируемости Tomcat: Это очень изменчивая ситуация, основанная на оборудовании вашего сервера и типах запросов, и, конечно же, качестве, эффективности и занимаемой памяти кода, обслуживающего каждый запрос.

Ваша нижняя граница для одновременных запросов была 500. Учтите, что вы, вероятно, захотите создать поток для каждого запроса и получить 1 МБ стека на поток, который вы ищете. 5 ГБ только для пространства стека потоков. И это до кучи памяти и производительности, выделяющей столько потоков. Я думаю, что если вам нужно обрабатывать столько запросов одновременно, вы можете рассмотреть более мощный сервер, такой как JBoss.

 Harry Joy13 янв. 2011 г., 06:18
+1 за ваш ответ на кот. Thnx.
Да - синглтоны экземпляра фабрики часто используют этот шаблон, чтобы заставить пользователей инициировать свой класс с помощью статического метода фабрики.Да, это методПотому что это то, что делает конструктор - он конструирует. (предполагается, что результат строительства будет возвращен)так же, как методы

то это зависит от того, какая версия Tomcat, какая модель ввода-вывода используется (например, NIO или модули ввода-вывода в истории) и ваша конфигурация. Один Tomcat может обрабатывать сотни запросов одновременно, хотя параллелизм настраивается (каждый запрос будет обрабатываться отдельным потоком или потоком из пула).

Конструктор может быть объявлен закрытым для любого класса.Конструктор - это специальный метод, который возвращает экземпляр класса, к которому он принадлежит, поэтому вам не нужно указывать тип возвращаемого конструкторами.Пакет private является правильным ответом, как указано ниже.
 Carlos Heuberger13 апр. 2011 г., 00:28
На самом деле конструктор ничего не возвращает, этоnew Оператор, который создает экземпляр и вызывает конструктор / на этом экземпляре (поэтому мы можем использоватьthis в ктор).
 Amir Afghani13 янв. 2011 г., 05:27
Ваш правильный ответ, который я имел в виду Тило.
 Thilo13 янв. 2011 г., 05:23
«Для метода нет модификатора доступа по умолчанию». Если вы ничего не указали, он является закрытым для пакета.
Решение Вопроса
Да, в любом случае. Однако, если все конструкторы для класса являются частными, это означает, что класс не может быть непосредственно создан. Вам нужно будет использовать что-то вродеФабричный образец создавать экземпляры объекта.Да, конструктор - это метод.Лучший способ думать об этом - то, чтоnew Оператор возвращает объект и в процессе создания объекта вызывает конструктор. Другой способ думать об этом (хотя это только способ думать об этом, это не технически правильно) - просто то, что тип возвращаемого значения подразумевается соглашением. Хорошее место, чтобы узнать больше об этом, это прочитать оnew вконтекст C ++, Роль конструктора состоит не в создании объекта, а в инициализации памяти, содержащейся в объекте.Доступ по умолчанию для конструктора в Java является закрытым пакетом, как и любой другой метод. (Один из таких источников:http://www.javabeginner.com/learn-java/introduction-to-java-access-modifiers и изо рта лошади:http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
 hisdrewness13 янв. 2011 г., 07:06
Доступ по умолчанию - по умолчанию, который отличается от частного или защищенного. Методы по умолчанию могут быть доступны для классов в одном пакете. Доступ к защищенным методам может быть получен из реализаций (классов, расширяющих метод) или из одного пакета. Приватный может быть вызван только внутри самого класса или внутренних классов. Доступ по умолчанию к объекту является общедоступным, поскольку все классы расширяют объект Object, который содержит открытый конструктор Object () {}. Шаблон построения - это еще один шаблон создания, который использует частные конструкторы.
 Harry Joy13 янв. 2011 г., 05:44
если конструктор является методом, то почему он ничего не возвращает? Потому что согласно java-методу он должен что-то возвращать или использование может также аннулировать но что-то должно быть в возвращаемом типе метода ???
 Chris Thompson13 янв. 2011 г., 05:47
Ах да, ты прав. Изучая эту тему, вы также обнаружите, что в отличие от других методов конструктор не может быть унаследован. Это метод, это просто особый тип метода.
 Chris Thompson13 янв. 2011 г., 17:29
@hisdrewness Вы абсолютно правы, с моей стороны это была полная тупица. Я обновил свой ответ, чтобы устранить эту неточность.
Конструктор может быть создан как приватный в любом случае.Конструктор - это особый типметод который может быть вызван автоматически, когда мы создаем объект для соответствующего класса.Конструктор не содержит никаких возвращаемых значений. Это просто создание новых объектов. Не должен предоставлять какой-либо тип возвращаемого значения для конструктора.Спецификатор доступа по умолчанию для конструктораобщественности

IER. Если класс является общедоступным, то модификатор доступа для конструктора является общедоступным. Если класс по умолчанию, то конструктор также по умолчанию.

Ваш ответ на вопрос