1.java是什么?
java是一种语言,可以用来编写程序;
java是一种环境,可以在该环境中编写程序运行程序;
2.java语言的特点?
面向对象:关注的是解决文件的参与者
跨平台:java语言被编译为 字节码文件,可以被各个平台上的jvm解析
半编译半解析:ava语言先被编译为字节码,后被jvm解析为本地机器码,后操作硬件
简单:来自C,语法简单,抛弃了指针\内存管理,还提供大量的类库方便操作
分布式:就是通过 tcp/ip 网络协议 把多个功能分散在不同的设备中运行,通过网络进行链接
健壮:提供垃圾回收和异常处理
安全:不能直接操作底层,对字节码进行各种验证
多线程:在一个程序中同时可以完成多个任务,大大提高资源的利用
3.JRE和JDK
JRE(Java Runtime Enviroment)
java运行环境,提供了运行java程序的支持
jre=jvm+需要的类库 是运行java程序的最小配置
JDK(Java Development Kit)又称SDK
java开发工具包(软件开发工具包),提供了编译执行java程序的各种工具和jre
jdk=jre+工具
4.java中运算符的优先级
1--------(),++i,--i,!
2--------算数运算符:+,-,*,/,%
3--------比较运算符:>,<,>=,<=,!=,==
4--------逻辑运算符:&,^,||,&&,|
5--------赋值运算符:=,+=,-=
6--------i++,i--
5.面向对象的三大特点:
封装:对外隐藏细节的方式,把属性私有(使用private修饰)
继承:一个类继承另一个类,自动拥有该类中的所有属性和行为(满足 is a 的关系)
多态:又叫动态绑定,一个父类表现为多个子类的能力
必须具备:1.要有继承 2.要有方法重写 3.父类引用指向子类类型的对象
6.类和对象
类:具有相同属性和行为的一组事物的抽象概念
对象:客观存在的实例
类和对象的关系:1.类是抽象的,对象是具体的
2.类是程序中构建对象的模板
3.对象是类的实例
4.每一个类都有0或多个对象,一个对象总是属于一个类
对象创建的几种方法:
1.使用new关键字
2.使用clone方法
3.反射机制
4.反序列化
以上四种都可以产生java对象
1,3都会明确的显式的调用构造函数
2是在内存上对已有对象的影印 所以不会调用构造函数
4是从文件中还原类的对象 也不会调用构造函数
7.Override和Overload
Overload:方法重载----java中的静态多态(编译时多态)
在Java中通过在类中写多个方法,这类方法的方法名相同,方法的参数列表不同,即同名不同参。
重载规则:
1.方法名必须相同
2.方法参数必须不同 --i)参数个数不同
ii)参数类型不同
iii)参数类型顺序不同
3.返回值类型可相同可不同(与返回值类型,修饰符无关)
Override:方法重写
子类的方法和父类中继承下来的方法具有完全相同的方法名,返回值类型,方法的参数以及参数类型
子类重写父类的方法后,在实例化子类的时候则调用的是子类中的方法,父类的方法就如同被覆盖了一样。如果在子类中需要调用父类的方法,则在子类方法中使用super关键字调用父类的方法
重写规则:
1.方法名相同
2.返回值类型相同
3.参数列表相同(个数,类型,类型顺序)
4.访问修饰符权限大于等于父类
5.如果父类中被重写的方法抛出异常,则子类中的方法也要抛出异常。但是抛出的异常也有一定的约束--->子类不能抛出比父类更多的异 常,只能抛出比父类更小的异常,或者不抛出异常。例如:父类方法抛出Exception,那么子类就只能抛出IOException或者抛出比Exception 小的异常或者不抛出异常。
区别:
区别点 | 重载 | 重写(覆写) |
英文 | Overloading | Overiding |
定义 | 方法名称相同,参数的类型或个数不同 | 方法名称、参数类型、返回值类型全部相同 |
对权限没有要求 | 被重写的方法不能拥有更严格的权限 | |
范围 | 发生在一个类中 | 发生在继承类中 |