Java的构造器有哪些特点?

```java public class Test { String str; public Test(String str) { this.str = str; } } ``` 1.如果没有自定义构造器,系统会提供一个默认的无参数构造器。如果提供了自定义的构造器,系统就不会提供默认的无参数构造器。(也就是不能直接调用new Test()来创建一个对象了,除非自己自定义一个无参数构造器)。 2.在上面的代码中,其实在构造器Test(String str)调用之前,系统已经分配好空间,创建一个对象,然后执行构造器Test(String str)方法对对象进行初始化,然后返回。 3.构造器一般使用public修饰符修饰,也可以使用protected,private来限制访问。 4.构造器重载,指的是一个类可以有多个构造器,多个构造器的参数列表不同。