关于Java构造函数我几乎没有问题
修改
1&的答案3非常清楚。我还不确定2&因为我得到了不同的答案。
答案 0 :(得分:3)
构造函数可以是私有的吗?如果是,那么在哪种情况下?
是。没有条件。当然,除了班级本身之外没有人可以称之为。
这实际上是一种常见模式:拥有static getInstance()
并保持构造函数为私有。
公共构造函数也可以在内部调用私有构造函数。
构造函数是否是一种方法?
嗯。我拒绝”。至少,它是一种“非常特殊的”方法。在什么情况下呢?术语不如您尝试的那么重要。
如果构造函数没有返回任何内容,那么为什么每次调用它时都会得到一个新的Object。
new
运算符返回一些内容(新实例)。
什么是构造函数的默认访问修饰符。
与方法相同。包专用。
如果你没有指定任何构造函数,那么该类将获得一个默认构造函数,它不带任何参数,除了调用父构造函数之外什么都不做,并且是公共的。
答案 1 :(得分:2)
new
运算符返回对象,并在创建对象的过程中调用构造函数。考虑它的另一种方式(虽然这只是一种思考它的方法,但从技术上来说并不正确)只是返回类型是由惯例隐含的。阅读更多相关信息的好地方是阅读context of C++中的new
。构造函数的作用不是创建对象,而是初始化对象中包含的内存。答案 2 :(得分:1)
关于Tomcat性能和可伸缩性的思考:这是一个高度可变的情况,基于您的服务器硬件和请求类型,当然还有服务于每个请求的代码的质量,效率和内存占用。< / p>
并发请求的下限是500.考虑到你可能想为每个请求创建一个线程,并为每个线程提供1MB堆栈.5 GB仅用于线程堆栈空间。这是在堆内存和分配那么多线程的性能开销之前。我认为如果需要一次处理那么多请求,你可能需要考虑像JBoss这样的更重型服务器。
答案 3 :(得分:0)
答案 4 :(得分:0)
关于您的Tomcat问题,它取决于Tomcat的哪个版本,它使用的IO模型(例如,NIO与历史网络IO模块)以及您的配置。单个Tomcat可以一次处理数百个请求,尽管并发是可调的(每个请求将由来自池的不同线程或线程处理)。
答案 5 :(得分:0)
构造函数的默认访问修饰符是CLASS ACCESS MODIFIER, 如果一个类是公共的,那么构造函数的访问修饰符是公共的。如果该类是默认的,那么构造函数也是默认的。
答案 6 :(得分:0)
答案 7 :(得分:-1)
new
调用了构造函数。返回对象的是new
,构造函数只是设置内部状态。