Java基本语法注意事项

本文深入探讨Java的基础语法及高级特性,包括大小写敏感性、注释规范、布尔值处理、类型转换注意事项、字符串拼接行为、垃圾回收机制、异常处理、继承规则、抽象类与接口区别、多态应用等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.   以下是Java基本语法

2.   Java是大小写敏感的

3.   注释的写法问题

4.   布尔常量只能是true或者false

5.   null为常量,表示该变量的引用为空

6.   要特别注意在强制类型转换的数据精度丢失问题

7.   byteshortchar类型的变量赋值给int时会发生自动的类型转换;

8.   分析System.out.println(‘a’ + 1);和System.out.println(“” + ‘a’ + 1);第一条打印语句的结果是98,第二条打印语句的结果是a1;原因是第一条语句中字符型的变量和int类型的变量进行运算的结果是int类型的变量,运算时将char变量转换成了int类型;而第二条语句中是字符串的拼接;

9.   如何理解函数的返回值为void类型,如果我们没有写return语句,则系统会自动在函数的最后添加return语句;所以在想提前结束掉程序时可以使用return;语句

10. 特别注意在进行浮点数的比较时不能使用:f1 == 3.14这样的比较形式,因为浮点数有小数位所以要这样比较:f1> 3.14 && f1 < 3.15

11. 栈内存和堆内存的区别:栈中存放的是我们定义的函数和各种变量;而在堆内存中存放的是我们用new关键字创建的各种对象,在该对象作用域失效时Java的垃圾回收器就将该内存回收掉;在栈内存中定义对象的引用指向堆内存对象的地址;

12. 对象的比较:注意==进行的比较是比较的栈中的变量的内容是否相等,要想比较对象的内容即堆中的内容是否相等就要使用equals()方法;

13. 数组之间的比较使用Arrays.equals()方法进行比较;同时在Arrays类中也提供了数组的排序方法.sort();

14.this关键字的使用;必须使用this的情况:容器和组件的情况时创建组件时候要知道该组件属于哪个容器,所以要向组件中传递this关键字,使该组件属于当前容器;另外的一种使用情况是:在类中的一个构造函数中调用该类的另外一个构造函数,比如:


public Person(String name){
this.name = name;
}
public Person(String name,int age){
this.name = name;
this.age = age;
}

上面中有重复代码,所以可以在第二个构造函数中调用第一个构造函数:


public Person(String name,int age){
      this(name);
      this.age = age;
}

15.垃圾回收过程的分析

Java中的finalize()方法类似于C++中的析构函数;

Java中的System.gc()方法是建议垃圾回收器启动;在对象即将从内存中清除之前垃圾回收器调用finalize方法;

16.基本数据类型和对象的引用分别作为函数的参数进行传递时变量的值的改变情况;注意数组也是对象,传递数组名和传递对象是相同的;

17.static静态变量关键字的使用,在内存中的这部分数据是共享一份的,不用使用new关键字进行创建;属于类级别的内容;可以使用类名或者对象名访问该数据;静态方法中不能以任何方式引用thissuper关键字;在静态方法中可以引用该类其他的静态变量;不能在非静态方法中引用该类的其他静态变量;两者的原因是相同的,因为静态的变量和函数不用创建对象即可使用,而非静态的则不行;

18.静态代码块
static{

}

静态代码块的执行顺序:只有在使用到一个类的时候才对该类的静态代码块进行加载;

19.单态设计模式:利用static关键字

20.内部类

21.在类中直接定义的内部类),内部类可以引用外部类中的变量;而外部类则不能访问内部类中变量;内部类如何被外部类引用:只用先创建外部类才能在外部类中引用内部类;

在方法中定义内部类),如果在内部类中要访问该函数中的变量,该变量必须是final常量

22.继承:单继承,Java支持多重继承,但是子类不能继承父类的构造函数;所以要在子类中使用super进行调用父类的构造函数;顺序:首先调用父类中的显示初始化语句,然后调用父类构造函数中的语句,再到子类中调用子类的显示初始化语句,最后调用子类构造函数中的语句;

23.注意两点:thissuper的使用

1)       thissuper在一个构造函数中不能同时出现,因为this是调用重载的构造函数,super是调用父类的构造函数,如果同时出现则会造成多次初始化;

2)       thissuper只能出现在构造函数的第一行

24.final关键字:带final关键字的类和变量不能被子类继承,带final的方法只能继承不能重写;final定义的常量必须在定义时进行赋值之后便不能重新赋值,或者在构造函数中对final常量进行赋值;如果在构造函数中对final常量进行赋值则必须在所有的构造函数中都要进行相同的操作;如果是public staticfinal String s = aaa”;final之前有static关键字的时候只能在常量定义的时候进行初始化;

25.含有抽象方法的类是抽象类,抽象类不能被实例化,

26.所有的方法都是抽象的是接口;在接口中只能定义常量(public static final);在接口中默认的是publicextendsimplements之前;

27.继承中的问题:只能进行向上自动转型,要通过强制类型转换进行向下转型;强制类型转换只是告诉编译器变量的实际类型;利用instanceof关键字判断一个对象是不是某个类的实例;

28.面向对象的多态性:应用程序不必为每一个派生类编写功能调用,只需对抽象基类进行处理即可;派生类的功能可以被基类的引用变量引用实现向后兼容,提高程序的可扩展性;

29.Java异常的处理:


try{
}
catch(Exception e){
System.out.println(“error”);
}finally{
}

通过throws Exception向该代码的使用者抛出异常;注意必须在catch部分中编写异常处理代码,至少打印出错误信息;不能只是一味的向上抛出异常,因为这样没有实质处理异常,只是通过了编译器的检查;不管有没有异常finally中的代码都要执行,即使有return语句,除非有System.exit(0)

30.编写自己的异常类时要继承Exception,通过throw关键字抛出创建的自定义的异常对象;

31.注意catch语句的放置顺序

32.通过处理异常进行程序的跳转;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值