Request的方法和数组
Posted yhgn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Request的方法和数组相关的知识,希望对你有一定的参考价值。
req.getHeader("referer") [取得发送请求页面对应的浏览器地址栏信息,可以使用这种方法实现防盗链等操作] String name=new String(request.getparameter("username").getbytes("GBK"),"utf-8"); system.out.println("解决中乱码":+name);
数组
1.数组的概念:数组属于引用类型,数组的本质就是一个容器,存放一组相同数据类型变量的数据容器
2.数组的格式:数据类型[ ] 数组名; java
数据类型 数组名[ ]; C语言
特点:1.数组的本质就是一个引用类型的变量,既然是变量就必须满足先声明在赋值再使用
2.数组的初始化:a.声明 b.赋值 c.使用
3.数组的内存分配
数据类型[ ]数组名=new 数据类型 [长度];
4.访问数组的元素
arr[下标/索引]
java.lang.nullpointerexception
异常名称:空指针异常
产生原因:对象没有new就访问了对象的成员
解决办法:new
java.lang.arrayindexoutofboundsexception
异常名称:数组越界
产生原因:访问了不在数组定义范围内的索引
解决办法:检查索引是否超出了数组定义的范围
3.数组的初始化:
静态初始化:数据类型[ ]数组名=new 数据类型[ ]{元素1,元素2,元素3.....}; 用作匿名对象
数据类型[ ]数组名={元素1,元素2,元素3.....}; 用作初始化
动态初始化:数据类型[ ]数组名=new 数据类型[长度];
二者区别:静态初始化在初始化的同时会给每一个元素赋值,不需要指定数组的长度,
不需要指定数组的长度,系统会自动根据元素的个数去动态计算数组的长度。
动态初始化在初始化的同时由系统分配默认值,但是必须指定数组的长度
4.值传递和引用传递
1.值传递的本质传递的是数值本身,引用传递的本质传递的是地址
2.如果传递的是地址,那么通过地址改变了堆区空间的数值,将会影响到所有指向该堆区的引用
5.数组的查找
基本查找:针对所有的数组都可以
二分法查找:针对有序的数组效率可以提高非常多
6.数组的排序
八大排序算法:冒泡 选择 插入 快速 希尔 堆 归并 基数
冒泡 规律:1.相邻两个数进行比较,大的数冒泡,交换两个数的位置
2.一共比较了arr.length-1趟
3.每一趟比上一躺少比较一次
选择 规律:1.每一趟初始比较的位置是上一躺位置+1
2.前面的元素依次和后面每一个元素进行比较,小的往前放
foreach遍历数组
集合和数组专属遍历方式,底层还是使用普通for遍历
格式:
for(数据类型 变量名:数组名/集合名){
}
普通for和foreach的区别:
1.简化了遍历 2.没有索引
7.为什么需要可变参数?
针对参数类型相同但是参数的个数不同的情况下非常方便
可变参数:是一种形参类型
格式:数据类型...参数名
注意事项:1.可变参数的本质是数组
2.可变参数的...可以放在参数类型和变量名中间的任意位置
3.可变参数必须出现在参数列表的最后面
以上是关于Request的方法和数组的主要内容,如果未能解决你的问题,请参考以下文章