javaWeb的三大组件:Servlet 、Filter、Listener
服务器就像10086的客服一样,好多客服。服务器就是等值为客户端服务的,而客户端就是浏览器。
Servlet的功能:就是客户端有好多的Servlet,为浏览器发送过来的不同请求而处理的问题。需要:接收请求数据--处理请求--完成响应。例如客户端登录请求,或者注册请求,这些请求都应该有Servlet来完成处理!Servlet需要我们自己来填写,每个Servlet必须实现javax.servlet.Servlet接口。这个接口一共有五个方法,有三个生命周期方法。
servlet中的方法不由我们来调用,是由tomcat来调用,也就是由服务器来调用。
void init (ServletConfig):开启服务器第一次访问时调用,出生的时候
void servlet(ServletRequest,ServletResponse response):每次请求时都会被调用。
void destory():在关闭服务器之前,也就是临死之前。
线程:Thread
线程的控制:sleep(休眠)、join(加入)、yelid(礼让、屈服)、setDaemon(守护)、interrupt(中断)
线程同步(也就就是多个线程同时使用一个资源):synchronized(obj){要同步的代码块} obj就是一把锁。多有的线程都经过这一把锁。
多态中成员访问的特点:
A:成员变量
编译看左边,运行也看左边
B:构造方法:
创建子类对象是,因为访问的是父类的构造方法,所以还是对父类数数据进行初始化。
C:成员方法:
编译看左边,运行看右边
D:静态方法:
编译看左边,运行看左边
总结:因为成员方法存在方法重写,所以成员方法看右边。
多态的原理:
因为多态必须有继承,有继承也就是有两个类,所以每new一个对象,这个对象都有两个类型。而这两个类型,子类是这个对象独有的类型,父类则是这个对象共有的类型。这就是多态。利用的就是方法的重写特性。
final(最终的):final可以修饰类、方法、变量(基本变量、引用变量)
final修饰的类:该类不能被继承
final修饰的方法:该类不能被重写
final修饰的基本变量:该变量不能被重新赋值,其实就是常亮,被final修饰的变量就是常量。
final修饰的引用变量:引用变量(对象)的地址值不能变,但是对象里面的属性值可以变。
例子:Student ss = new Student();
ss = new Student();//这指重新分配内存空间
this和super的区别:
this:可以到表本类
super:可以代表父类
用法:
A:调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
B:调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类的构造方法
C:调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
注意:在继承中执行顺序:在执行子类的构造方法之前,是先执行父类的构造方法
开发的原则:低耦合、高内聚
低耦合:类与类的关系。
高内聚:就是自己完成某件事的能力
继承:其实就提高的代码的低耦合,所以说这是继承这一特征的弊端。
代码块:在java中,使用{}扩起来的称之为代码块
根据其位置和声明的分为:局部代码块、静态代码块、构造代码块。在创建一个对象之前,也就是调用构造方法之前,都会先调用代码块。调用顺序为局部代码块>静态代码块>构造代码块>构造方法。其中,创建多个方法的时候,静态代码块只会调用一次,其他的代码块每创建一个对象都会调用一次。
作用分别为:
局部代码块:在局部位置,用于限定生命周期。
静态代码块:在类中成员位置,用{}括起来,并用static修饰。
构造代码块:在类中成员位置,用{}括起来。
怎么写一个类的说明书:
为什么要文档注释:当真正做公司做事的时候,分工明确,每个人可能只要提交一个class文件和一个文档注释就OK了,根本就不要提供java文件。
用文档注释:即 /******/。文档注释里面加入
@param 表示参数是什么、@return 表示返回值是什么、@author 表示作者是谁、@version 表示类的版本
用工具解析文档注释:即javadoc工具。
格式为:javadoc -d 目录(自己写) -auther -version 类名.java
怎么从API里看一个方法:
A:看类的结构
成员变量 就是字段摘要
构造方法 就是构造方法摘要
成员方法 方法摘要
B:怎么学习构造方法
a:有构造方法的 就创建对象
b:没有构造方法的 成员可能就都是静态的
C:看成员变量
a:左边:是否静态,如果静态,可以通过类名调用。返回值类型是什么,人家返回什么,你就给什么
b:右边:看方法名,方法名不要写错。看参数列表,人家要什么就给什么,人家要几个,就给几个。
面向对象特性之一封装:
封装:隐藏对外的属性和实现细节,只提供操作的方法。(也就是说private修饰的属性只能在本类中访问,在外部访问不了。所以只能通过方式访问)这就是封装思想,private提供封装,封装保证了安全。
this关键字:哪个对象调用那个方法,this代表的就是那个对象。记住,把this作为对象来记。在内存图中,this指向的就是堆内存中的对象地址。(地址指向栈内存中的对象名,所以this也指向对象名,反正他们就是关联在一起的)
构造方法:其实就是一个在创建对象时就执行的方法,没什么特别。作用:一般是初始化成员变量
创建对象的顺序:先创建给成员变量赋初始值,再调用构造方法里面的代码块。记住!一定是先赋初始值,再调构造方法。
static关键字:
static:可以修饰成员变量、可以修饰成员方法。随着类的创建(java文件到class文件的过程)而存在,就是比对象先存在!
注意:
A.被static修饰过的变量或方法对该类的所有该对象共享。
B.可以通过类名调用
C.方法区里忙有一个静态区,所有的静态变量或者是方法都在静态区。而且静态只能访问静态(静态变量或者静态方法)。
匿名对象:没有名字的对象,也就是在栈内存里面没有对象名,只在堆内存里面new有对象,不往栈内存里指向地址值。例子:new Student()。
如果调用方法的话,那就是直接 new Student().show(); 没有对象名,直接调用方法
好处:匿名对象调用调用玩之后就是垃圾,直接回收。也就是说在栈内存中调用了方法就没了。效率很高。但是:调用多次的话,就不合适。
直接可以作为参数传递。(因为它就是一个引用类型的形参,虽然没有对象名)
扩展:多个匿名对象调用。例子:new StudentDemo().method(new Student());
形式参数的类型:
1.基本类型:基本数据类型。4大类8种
第一类(整型):Byte 1个字节
Short 2个字节
int 4个字节
long 8个字节
第二类(浮点型):float 4个字节
double 8个字节
第三类(字符型):char 2个字节
第四类(Boolean型):boolean 1个字节
2.引用类型:对象,数组等。
当参数是引用类型时,需要用类创建对象,然后将对象传入参数。
也就是说,形参要是个类名,那么要的就是一个对象。对象调用常亮时如果局部变量找不到,那就找全局变量。即局部找不到找全局。
怎么样才能面向思想?
A:有哪些类呢
B:类里面有哪些东西呢?
C:类与类直接的关系是什么呢?
方法:名词提取法。世间万物都是名词。
面向对象的开发,设计,特征
开发:就是不断地创建对象,使用对象,指挥对象做事情。
设计:其实就是管理和维护对象之间的关系
特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
对于数组:
注意(关于赋值):在栈内存里,可以有多个对象对应一个堆内存里的数组。在栈内存的这些对象中,不管哪一个对象操作堆内存的数据,都可以对这些数据进行操作。
注意(关于初始化):初始化一个数组不能同时用动态格式和静态格式。
动态格式:int【】 arr = new int【4】;(正确)。
静态格式:int【】 arr = {2,3, 4, 1};(正确)。
int【】 arr = new int【3】{5,6,7}(错误)。建议使用静态数组。
注意:arr = null后。arr数据将不再指向堆取的数组。
遍历数组:
int【】 arr = {1,2,,3,5,4,8,9,9,9,9,9,9,9,9,9,9,6,5,2,4,5,5,4,4,};
for(int x=0;x<arr.length;x++){
System.out.pringln(arr[x]);
}
软件:将数据和指令结合在一起的应用。分系统软件和应用软件。
开发:用开发工具和计算机语言进行操作的过程
软件开发:用开发工具和计算机语言来做出能将数据和指令结合在一起的对人有用的应用。
环境变量的作用:
环境变量path的作用就是:对执行的文件提供寻找的路径。
path和classpath的作用和区别:
path环境变量里面记录的是可执行文件,如.exe文件,对执行文件先在当前目录里找,如果找不到,就到path环境变量
classpath是java编译后的文件目录
windows操作系统键盘功能的快捷键
ctrl + a 全选;
ctrl + c 复制;
ctrl + x 剪切;
ctrl + v 粘贴;
ctrl + z 撤销;
ctrl + s 保存;
win + r 打开命令入口(命令操作符)
window命令入口的简单命令:
calc 打开计算器;
notepad 打开记事本;
mspaint 打开画图板;
cmd 进入dos窗口;
dos界面(操作电脑硬盘的界面)的简单命令:
d: 进入D盘(系统盘);
cd 记入文件夹(come + directory);
cd.. 返回上级文件夹;
md 创建文件夹(make + directory);
rd 删除文件夹(remove + directory);
del *.txt 删除以txt为后缀名的文件;
exit 退出dos界面;
linux:
ps -aux //当前系统所有的服务
ps -ef | grep xxx //查看含有当前xxx关键字的服务
chkconfig是一个改变开机启动项的命令
chkconfig --list //在ect/init.d目录下的所有自启动服务
chkconfig --add xxx //添加新的服务,同样–del是删除某服务
chkconfig xxx on //xxx服务开机自启动
增加用户
addusr xxx //增加新用户xxx
usr -u xxx //切换到用户xxx exit推出该用户
更改权限
chmod 777 路径 //修改路径权限为增删改查
choun -R sun:sunlei 路径 //修改路径下所有归sun组下sunlei用户所有
cd
ls ll
mkdir
mv
rm -rf 路径 //强制删除路径下所有内容 /* 为路径下所有
df -h 磁盘空间大小
vim 文件名 //编辑文件
i //进入编辑状体
esc //退出编辑状态
:wq //保存修改文件并推出
ctrl+insert //复制命令
shift+insert //粘贴命令
安装软件
1.自主软件直接到目录下运行 ./minglingwenjian
2.yum(yellowdog update manager) install 软件名 //在线的,yum在线安装已有的 软件名
3.rpm(redhat package manager) xxx.rpm //rpm安装应用
有安装包的解压 tar -zxvf 或 unzip 解压,C语言编译的一般还需要 make&make install
less命令的用法:
> 直接查看文件
less catalina.out
> 实时查看文档变动(实时滚动文档)
进入less模式后,键入F,即实时滚动文档
F 实时滚动文档
Ctrl + c 退出实时滚动模式
类似效果:
tail -f catalina.out
> 查找内容
查找关键字内容时,常用向下查找、向上查看。如在日志中查找,因日志一般是追加的,从下向上查找更为常用。
/keyword 向下查找
n 向下匹配下一处匹配文本
N 向上匹配下一处匹配文本
?keyword 向上查找
n 向上匹配下一处匹配文本
N 向下匹配下一处匹配文本
查看文件后,若文件过大,打通过以下命令滚动文件:
j 下一行
k 上一行
f 向下滚动一屏幕
b 向上滚动一屏幕
g 定位到文档头部
G 定位到文档最尾部