关于Java中构造函数的问题
关于Java构造函数我几乎没有问题
- 构造函数可以是私有的吗? 如果是,那么在哪种情况下?
- 构造函数是否是方法?
- 如果构造函数没有返回任何内容,那么为什么每次调用它时我们都会得到一个新的Object?
- 如果我们不指定,那么构造函数的默认访问修饰符是什么。
编辑
1和3的答案非常清楚。 我仍然不确定2和4因为我得到了不同的答案。
- 是的,无论如何。 但是,如果类的所有构造函数都是私有的,则意味着无法直接实例化该类。 您将需要使用工厂模式之类的东西来创建对象的实例。
- 是的,构造函数是一种方法。
- 考虑它的更好方法是
new
运算符返回对象,并在创建对象的过程中调用构造函数。 考虑它的另一种方式(虽然这只是一种思考它的方法,但从技术上来说并不正确)只是返回类型是通过约定隐含的。 阅读更多关于此内容的一个好地方是阅读C ++上下文中的new
。 构造函数的作用不是创建对象,而是初始化对象中包含的内存。 - Java中构造函数的默认访问权限就像其他任何方法一样私有。 (一个这样的来源: http : //www.javabeginner.com/learn-java/introduction-to-java-access-modifiers并从马的口中: http : //download.oracle.com/javase/tutorial/java/ javaOO / accesscontrol.html )
构造函数可以是私有的吗? 如果是,那么在哪种情况下?
是。 没有条件。 当然,除了class级本身之外没有人可以称之为。
这实际上是一种常见模式:拥有static getInstance()
并将构造函数保持为私有。
公共构造函数内部也可以调用私有构造函数。
构造函数是一种方法还是不是?
嗯。 我拒绝”。 至少,它是一种“非常特殊的”方法。 在什么情况下呢? 术语不如您尝试的那么重要。
如果构造函数没有返回任何内容,那么为什么每次调用它时我们都会得到一个新的Object。
new
运算符返回一些东西(新实例)。
什么是构造函数的默认访问修饰符。
与方法相同。 包装和私营部门。
如果你没有指定任何构造函数,那么该类将获得一个默认构造函数,它不带任何参数,除了调用父构造函数之外什么都不做,并且是公共的。
- 是的,构造函数可以是私有的。 当您希望对实例创建进行更严格或替代控制时(例如使用工厂方法或使用Singleton等模式),即可完成此操作。
- 这是一种方法,但不直接调用。 这是在您创建新对象时代表您调用的特殊类型的方法。
- 构造函数不返回任何内容,它们创建新对象。
- 包的默认值是包私有。 因此对包中的任何类都公开,但对包外的代码不可见。
关于Tomcat性能和可伸缩性的思考:这是一个基于服务器硬件和请求类型的高度可变情况,当然还有服务于每个请求的代码的质量,效率和内存占用。
并发请求的下限是500.考虑到您可能想为每个请求创建一个线程,并为每个线程提供1MB堆栈.5 GB仅用于线程堆栈空间。 这是在堆内存和分配那么multithreading的性能开销之前。 我认为如果需要一次处理那么多请求,你可能需要考虑像JBoss这样的更重要的服务器。
- 可以将构造函数声明为任何类的私有。
- 构造函数是一种特殊方法,它返回它所属的类的实例,因此您不需要指定构造函数返回类型。
- 如下所述,包私有是正确的答案。
- 是的 – 工厂实例单例经常使用这种模式,强制用户通过静态工厂方法初始化他们的类。
- 是的,这是一种方法
- 因为这是构造函数的作用 – 它构造。 (假设将返回施工结果)
- 与方法相同
关于您的Tomcat问题,它取决于Tomcat的哪个版本,它使用的IO模型(例如,NIO与历史网络IO模块)以及您的配置。 单个Tomcat可以一次处理数百个请求,尽管并发是可调的(每个请求将由来自池的不同线程或线程处理)。
构造函数的默认访问修饰符是CLASS ACCESS MODIFIER,如果类是public,则构造函数的访问修饰符是public。 如果该类是默认的,那么构造函数也是默认的。
- 在任何情况下,构造函数都可以创建为私有。
- 构造函数是一种特殊类型的方法 ,可以在为相应的类创建对象时自动调用。
- 构造函数不包含任何返回值。 它只是创建新对象。 不应该为构造函数提供任何返回类型。
- 构造函数的默认访问说明符是public
- 是。
- 是。
- 因为构造函数是由
new
调用的。 返回对象的是new
,构造函数只是设置内部状态。 - 上市。