Java一些语法注意(2)

1:构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法。

Java 构造方法有以下特点:

  • 方法名必须与类名相同
  • 可以有 0 个、1 个或多个参数
  • 没有任何返回值,包括 void
  • 默认返回类型就是对象类型本身
  • 只能与 new 运算符结合使用


    值得注意的是,如果为构造方法定义了返回值类型或使用 void 声明构造方法没有返回值,编译时不会出错,但 Java 会把这个所谓的构造方法当成普通方法来处理。
    构造方法不能被 static、final、synchronized、abstract 和 native(类似于 abstract)修饰。构造方法用于初始化一个新对象,所以用 static 修饰没有意义。构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义。多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要

2:long=012(正确) 解释:在整型文字常量前面加一个0,该值将被解释成一个八进制数。

     float=-415(正确) 解释:在负数的时候可以直接赋值给float后面不加 ” f “ 但是正数的浮点数的时候要加 “ f ” 在数字后面。 double后面也可以加负数,但是double正数负数都不用加特殊字母。

    double=0x12345678  解释:0x....代表十六进制数。

 3:java语言规定构造方法只能通过new自动调用(错误)

解释:

1> 在类的其他构造方法中可以用this()的方式调用其他构造方法;

2> 在类的子类中则可以通过super调用父类中指定的构造方法;

3> 在反射中可以使用newInstance()的方式调用。

4:Math.round()向上取整 负数正数都是向上取整,例如-11.5 取整为-11 ,11.5取整为12。

5:在同一个类里面,如果有private修饰的变量可以直接调用,所以如果在main方法的类里面调用该main方法的类的private变量可以,换做别的类不行。

static修饰的变量,可以通过实例化的对象进行修改,也可以直接通过类进行修改,二者共享一个变量,因为static类型变量属于类,被static修饰的成员属于类,不属于对象,会被该类的所有对象所共享

6:Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入

Scanner类不继承Object类。

7:Java中内存回收程序负责释放无用内存。

8:try finally中如果try里面return了 数值,那么这个try-catch-finally代码块的返回值就是return的值,但是finally里面的语句一定会执行。

9:如果类B继承类A,并重写了A类的里面一个方法。如果在B类里面的一个方法调用super()的构造方法传入一个值,此时在super方法里面调用被B类重写的方法,此时调用的都是B类重写的方法而不是A类的方法,虽然在A类里面。同理,在B类方法里面调用了A类的方法,如果调用this关键字访问的是B类的方法,可以通过在A类里面调用super关键字访问回A类的方法(很坑)

10: 数组拷贝:System.arraycopy > clone() > Arrays.copyOf() > for  .

11:  ((Test)null).fun()  null指针变成Test类型。

12:Integer a=new Integer(0);

调用a.equals(0),就等于a这个包装类里面的内容和 0进行比较。(拆包)。

”==“也会拆包,将Integer包装类拆包成0

13:普通方法存放在栈区,里面的变量存储在栈区,随着方法结束被销毁,但是类的成员和类一样存放在堆区,故类里面的成员存放在堆区。

14:try-catch捕获到异常以后只会继续执行finally的语句,后面的就不执行了。

15:final修饰的变量,在进行 “ + ”等运算符的时候 ,不会发生类型提升,但是普通类型,在进行运算符运算的时候会发生提升,例如byte进行加法会进行提升成int,赋值给byte的时候会编译不通过。除非进行(int)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值