赞
踩
面向过程:性能比面向对象高,没有面向对象容易维护、复用、拓展
面向对象:性能比面向过程低,易于维护,复用,拓展
ps:面向过程也需要分配内存,Java性能差的原因是Java是半编译语言,最终的执行代码并不是可以直接被CPU使用的二进制机械码
运行Java字节码的虚拟机
JVM可以理解的代码就是字节码(即扩展名为.class的文件),只面向虚拟机,解决传统语言效率低,保留编程可移植
ps:.class这一步会比较慢,因为是解释器边解释边执行
JVM是运行字节码的虚拟机,JVM针对不同系统特定实现,目的是使用相同的字节码,都会返回相同的结果
JDK(Java Development Kit(成套工具)),功能齐全的Java SDK,有JRE的一切,还有编辑器(javac)和工具(javadoc)
JRE是Java运行时环境,包括JVM,JAVA类库
1.形式上:字符单引号’’,字符串双引号""
2.含义上:字符常量相当于一个整型值(ASCII值),字符串常量代表一个地址值(字符串在地址里面的位置 )
3.内存大小:字符:两字节,字符串:若干字节
父类私有属性和构造方法不可被继承,所以Constructor不可被重写,但是可以overload
封装把一个对象私有化,同时提供一下外界可以访问属性的方法
继承是使用已存在的类的定义作为基础建立新类的技术,新类可以添加新的数据或新的功能,也可以用父类的功能,继承方便我们复用代码
1.子类拥有父类所有的属性和方法(包含私有方法和私有属性),但是父类的这些子类无法访问,只是拥有
2.子类可以有自己的属性和方法
3.子类可以以自己的方式实现父类
所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定
引用变量引出的方法到底是哪个类实现的方法,必须程序运行期间决定
实现多态:
String用final修饰,是不可变的
StringBuffer和Builder继承与AbstractStringBuilder类 没有被final修饰
1.少量数据:String
2.单线程大量:StringBuilder
3.多线程大量:StringBuffer
静态方法不通过对象调用,所以静态方法不能调用非静态变量
Java在执行子类构造方法前,如果没有用super()调用父类特定构造方法,则会调用父类"无参构造",如果只有有参构造,则没有super调用的无参构造,编译会出错
原来导入的是Java包,后来javax成为JavaAPI一部分,所以,实际上没有区别
1.接口默认public,不能有实现(Java8可以),抽象类可以有非抽象方法
2.接口只能有static,final变量,抽象类不一定
3.一个类可以实现多个接口,只能实现一个抽象类,接口extends拓展多个接口
成员变量:属于类,可以被public,private,static修饰
局部变量: 方法定义的变量或者方法的参数,不能被访问修饰符和static修饰
都可以被final修饰
static修饰成员变量属于类,不修饰是属于实例,对象存在于堆内存,局部变量存在于栈内存
成员变量随对象创建存在,局部变量随方法调用消失
成员变量如果没有赋值会自动赋值,局部不会
new进行创建,对象在堆内存,对象实例在栈内存
值得是我们获取方法体代码执行后产生的结果,作用:接收结果,便于其他操作
一个类的构造方法的作用是什么? 若一个类没有声明构造方法,该程序能正确执行吗? 为什么?
完成对类对象的初始化,可以执行,会自动调无参构造
1.调用静态方法,可以用类名.方法名,也可以对象名.方法名,实例方法只有后者,调用静态方法无需创建对象
2.静态方法访问本类成员,只访问(静态成员变量和静态方法),实例方法无限制
对象的相等——内存存放内容是否相等
引用相等——内存地址是否相等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。