Java知识点笔记

一、类的初始化顺序

初始化过程是这样的: 

1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 

2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 

3.其次,初始化父类的普通成员变量和代码块,再执行父类的构造方法;

4.最后,初始化子类的普通成员变量和代码块,再执行子类的构造方法; 

二、运算符优先级

单目 >运算(加减乘除)>移位>比较>按位>逻辑>三目 >赋值 ,其中只有单目、三目、赋值是从右到左的

三、instanceof关键字

instanceof用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。

四、抽象类和最终类

抽象类和最终类(final修饰的类)都可以被声明使用。
这里只是说“声明”,并没有说“实例化”;如果只是声明是可以的,最常见的使用方式就是:
1、父类类型的引用指向子类的对象;
2、接口类型的引用指向该接口的实现类的对象;

以上两种使用方式也就是所谓的“向上转型”。

五、中间件

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

(简单来说,中间件一般只是负责网络信息的分发处理)

六、内部类

静态内部类才可以声明静态方法


七、继承类与实现接口的顺序

先继承后实现,只能继承一个类,可以实现多个接口

八、类修饰符

1、类只能用public、abstract、final修饰。 

2、内部类和成员变量一样可以用所有访问权限修饰符修饰。也可以用static和final修饰 

3、局部内部类和局部变量一样不能用访问权限修饰符修饰。

九、不同数据类型的自动转换

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下: 
低 ---------------------------------------------> 高 

byte,short,char-> int -> long -> float -> double

long类型是八个字节,float是四个字节,但是底层实现方式不一样,所以还是long自动转型为float

十、线程安全的集合类

喂,SHE
喂:Vector
S; Stack
H: Hashtable(emmm,应该要加上concurrentHashMap)
E: enumeration

十一、Java中的包

java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统

十二、Object类含有的方法

Object类含有如下方法:

getClass(), hashCode(), equals(), clone(), toString(), notify(), notifyAll(),  wait(), finalize()

十三、方法重写

方法的重写(override)两同两小一大原则
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。

十四、构造函数能否继承

子类不可以继承父类的构造方法,只可以调用父类的构造方法。如果父类中有无参构造函数,则子类的构造函数会自动调用父类的无参构造函数;如果父类中没有无参构造函数,则在子类构造函数中必须使用super显式的调用父类的有参构造函数。并且super必须在子类构造函数的第一行。

十五、面向对象的五个原则

五个基本原则: 
单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 
开放封闭原则(Open-Closed Principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。 
Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 
依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。 
接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口

十六、常量的赋值方式

final修饰的成员变量在赋值时可以有三种方式:

1、在声明时直接赋值。

2、在构造器中赋值。

3、在初始代码块中进行赋值。

十七、修饰符范围


十八、JSP九个内置对象

JSP内置对象有:
1.request对象
    客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象
    response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
    session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.out对象
    out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象
    page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6.application对象
    application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象
    exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
8.pageContext对象
    pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
9.config对象

    config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

十九、Java的数据类型

java支持的语言类型分为:基本类型和引用类型。
基本类型包括boolean类型和数值类型,数值类型分为整型和浮点类型,整型包括:byte、short、int、long、char,浮点类型包括float和double。
引用类型包括类、接口和数组
Byte和Float等属于基本类型的包装类型,属于引用类型。

二十、Java导包

导包只可以导到当前层,不能导入包里面的包中的类

二十一、Java标识符规则

Java 标识符有如下命名规则: 
    由26个英文字母大小写,数字:0-9 符号:_ $ 组成
    标识符应以字母、_ 、$开头。
    标识符不能是关键字。
Java中严格区分大小写

二十二、多态

java多态有两种情况:重载和覆写
在覆写中,运用的是动态单分配,是根据new的类型确定对象,从而确定调用的方法;
在重载中,运用的是静态多分派,即根据静态类型确定对象,因此不是根据new的类型确定调用的方法
多态==晚绑定或动态绑定
不要把函数重载理解为多态,因为多态是一种运行期行为,不是编译器行为。
多态:父类的引用指向子类的实例。
比如 Parent p = new Child()
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;
如果有,再去调用子类的同名方法。
静态方法特殊,静态方法只能继承,不能覆盖,如果子类有和父类相同的静态方法,只是起到隐藏父类方法的作用。这时候,谁的引用就调用谁的方法。


更新中。。。

猜你喜欢

转载自blog.csdn.net/karute/article/details/80346297