Java代码审计
1.Java 语言支持的数据类型分为两种:基本数据类型(Primitive Type)和引用数据类型(Reference Type);
2.基本数据类型及转换;
概述:Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型;
byte型:
byte 数据类型是8位、有符号的,以二进制补码表示的整数;取值范围-128127;即-2^72^7-1,默认值为 0;
short型:
short 数据类型是 16 位、有符号的以二进制补码表示的整数;取值范围 -32768~32767即-2^15-2^15 - 1;默认值为 0;
int型:
int 数据类型是32位、有符号的以二进制补码表示的整数;-2147483648~ 2147483647即-2^31~2^31 - 1;默认值为 0 ;整数通常是int型
long型:
long 数据类型是 64 位、有符号的以二进制补码表示的整数;最小值是 -92233720368547758089223372036854775807即-2^632^63 -1;默认值为0L;
float型:
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;默认值是 0.0f;
double型:
double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;浮点数的默认类型为 double 类型;默认值是 0.0d;
boolean型:
boolean数据类型表示一位的信息;只有两个取值:true 和 false;这种类型只作为一种标志来记录 true/false 情况;默认值是 false;
char型:
char 类型是一个单一的 16 位 Unicode 字符;最小值是 \u0000(十进制等效值为 0);最大值是 \uffff(即为 65535);char 数据类型可以储存任何字符;
3.类型转换;
(1)自动数据类型转换;
1 | 数据类型转换规则: |
(2)强制类型转换;
4.引用数据类型;
1 | 引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。另外,Java 语言中不支持 C++ 中的指针类型、结构类型、联合类型和枚举类型。 |
Math类
String类
StringBuffer和 StringBuilder
数组;
5.接口;
6.运算符;
(1)算数运算符;
(2)关系运算符;
(3)位运算符;
(4)逻辑运算符;
(5)赋值运算符;
(6)条件运算符;
1 | type x = (expression) ? valueA : valueB |
7.流程控制;
(1)条件结构;
if-else
switch
1 | switch(expression){ |
(2)循环结构;
8.Java 流(Stream)、文件(File)和IO
字节流
InputStream
OutputStream
字符和字节的转换流
InputStreamReader
OutputStreamWriter
字符流
Reader
Writer
BufferedReader br=new BuffferedReader(new InputStreamReader(System.in));
1 | public static void main(String[] args) throws Exception{ |
PrintStream继承了OutputStream(打印流)
import java.io.*;
//演示 System.out.write().
public class WriteDemo {
public static void main(String[] args) {
int b;
b = 'A';
System.out.write(b);
System.out.write('\n');
}
}
**注意:**write() 方法不经常使用,因为 print() 和 println() 方法用起来更为方便。
2.java的反射机制;
java反射机制是指在运行状态中,动态获取信息及动态调用对象方法的功能。
java反射有3个动态性质:
(1)运行时生成对象实例;
(2)运行期间调用方法;
(3)运行时更改属性;
java反射常用API;
Class
Constructor
3.java关键字;
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。左边的对象实例不能是基础数据类型; 左边的对象实例和右边的类需要在同一个继承树上;
1.Servlet详解;
2.JSP详解;
3.Cookie;
4.JSP作用域;
5.EL表达式;(侧重于展示数据)
Expression Language 表达式语⾔,替代 JSP ⻚⾯中数据访问时的复杂编码,可以⾮常便捷地取出域对
象(pageContext、request、session、application)中保存的数据,前提是⼀定要先 setAttribute,
EL 就相当于在简化 getAttribute,${变量名} 变量名就是 setAttribute 对应的 key 值。
6.JSTL;(侧重于逻辑处理)
核心标签库常用标签:set,out,remove,catch
set:向域对象中添加数据
out:输出域对象中的数据
remove:删除域对象中的数据
catch:捕获异常
7.过滤器Filter的使用;
1 | servletRequest.setCharacterEncoding("UTF-8"); |
8.文件上传;
9.文件下载;
10.异步请求AJAX;