您的位置:首页 > 编程语言 > Java开发

java笔记1

2015-09-30 10:15 225 查看
IDE  Integrated Development Environment  集成开发环境

自动补全 Alt+/   

sysout    main 等等

java不允许多继承,每个类最多只有一个直接父类。

如果定义一个java类时未显示指定这个类的直接父类,则默认扩展java.lang.Object类,因此,java.lang.Object类是所有类的父类,要么是其直接父类,要么是其间接父类。

switch()语句后面的数据类型为byte、short、char、int四个整数类型和枚举类型  

Java7增强了switch语句的功能 允许switch语句的控制表达式是java.lang.String类型的变量或表达式-不能是StringBuff或StringBuilder类型

在for循环里定义的变量,其作用域仅在该循环内有效,for循环终止以后,这些变量将不可访问。

Java允许对象的一个成员直接调用另一个成员,可以省略this前缀。

static修饰的方法中不能使用this引用,即static修饰的方法不能访问不使用static修饰的普通成员,因此:静态成员不能直接访问费静态成员。

Java里方法的参数传递方式只有一种:值传递。所谓值传递,就是将实际参数值的副本传入方法内,而参数本身不收任何影响。

变量的作用域范围扩大的害处:1增大了变量的生存时间,这将导致更大的内存开销。2扩大了变量的作用域,这不利于内存的内聚性。

在程序中使用局部变量,应尽可能地缩小局部变量的作用范围,局部变量的作用范围越小,它在内存里停留的时间就越短,程序运行性能就越好。

Java的包机制需要两个方面保证:1源文件里使用package语句指定包名;2class文件必须放在对应的路径下

this和super关键字对应实例方法  类名对应类方法

一旦程序员提供了自定义的构造器,系统就不再提供默认的构造器

对象的方法存在多态,但对象的Field不具备多态性。通过引用变量来访问其包含的实例Field时,系统总是试图访问它编译时类型所定义的Field,而不是他运行时类型所定义的Field。

引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法。因此,编写java代码时,引用变量只能调用声明该变量时所用类里包含的方法。

强制类型转换:基本类型之间的转换只能在数值类型之间进行,数值类型(整数型、字符型、浮点型)和布尔类型之间不能进行类型转换。

引用类型之间的转换只能在具有继承关系的两个类型之间进行,如果是两个没有任何继承关系的类型,则无法进行类型转换,否则会出现编译错误。如果试图把一个父类实例转换成子类类型,则这个对象必须实际上是子类实例才行(即编译时类型为父类类型,而运行时类型时子类类型),否则将在运行时引发ClassCastException异常。

对于两个引用类型的变量,它们必须指向同一个对象时,==判断才会才会true。==不可用于比较类型上没有父子关系的两个对象。

Object默认提供的equals()只是比较对象的地址,即Object类的equals方法比较的结果与==运算符比较的结果完全相同。因此,在实际应用中常常需要重写equals方法。

String已经重写了Object的equals()方法,String的equals()判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,通过equals()比较将返回true,否则将返回false。

final修饰的方法不可被重写,如果不希望子类重写父类某个方法,则可以使用final修饰该方法。

final修饰的类不可以有子类。

抽象方法使用abstract来修饰,抽象方法不能有方法体。

抽象类使用abstract来修饰,抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。

抽象类可以包含Field、方法、构造器、初始化块、内部类、枚举类6种成分。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: