赞
踩
文章作者:Raybye
Java是一门面向对象的计算机编程语言,吸收了C语言的各种优点,具有功能强大和简单易用两个特征。Java语言是最典型的静态面向对象编程语言的代表,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可用于编写桌面应用程序、Web应用程序、分布式系统,嵌入式系统应用程序和Android移动平台等 。
但目前在企业中主流还是用于Web应用程序和Android移动平台,到目前为止Java在web应用模块框架发展的也是相当成熟,本篇文章简单的对上篇《Java代码审计入门指南》中Java语言基础的部分进行大致的总结,并对Java代码审计中用到的方法等进行重点标注。Java 语言支持的数据类型分为两种:基本数据类型(Primitive Type)和引用数据类型(Reference Type)。
图 Java数据类型结构图
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
图 java八种基本数据类型
byte型:
byte 数据类型是8位、有符号的,以二进制补码表示的整数;取值范围-128~127;即-2^7~2^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 位、有符号的以二进制补码表示的整数;最小值是 -9223372036854775808~9223372036854775807即-2^63~2^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 数据类型可以储存任何字符;
自动类型转换
运算中,不同类型的数据先转化为同一类型之后才能进行运算。转换从低级到高级。
数据类型转换规则:
不能对boolean类型进行类型转换。
不能把对象类型转换成不相关类的对象。
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
转换过程中可能导致溢出或损失精度
常见转换:byte—>short—> int —> long
float —> double
强制类型转换
条件:转换的数据类型必须是兼容的。
格式:(type)value type是要强制类型转换后的数据类型
引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。另外,Java 语言中不支持 C++ 中的指针类型、结构类型、联合类型和枚举类型。
类是包括是用户自定义的和Java内置封装的类,下面主要对Java内置的几个类进行简单介绍,包括math类,Character 类,String 类,StringBuffer 和StringBuilder 类
Math类
Java 的 Math 包含了用于执行基本数学运算的属性和方法,下表是math类常用的方法,其中标红的是代码审计工作中最常见的方法。
序号 |
方法 |
描述 |
1 |
xxxValue() |
将 Number 对象转换为xxx数据类型的值并返回 |
2 |
compareTo() |
将number对象与参数比较 |
3 |
equals() |
判断number对象是否与参数相等 |
4 |
valueOf() |
返回一个 Number 对象指定的内置数据类型 |
5 |
toString() |
以字符串形式返回值 |
6 |
parseInt() |
将字符串解析为int类型 |
7 |
abs() |
返回参数的绝对值 |
8 |
ceil() |
返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型 |
9 |
floor() |
返回小于等于(<=)给定参数的最大整数 |
10 |
rint() |
返回与参数最接近的整数。返回类型为double。 |
11 |
round() |
它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11 |
12 |
min() |
返回两个参数中的最小值 |
13 |
max() |
返回两个参数中的最大值 |
14 |
exp() |
返回自然数底数e的参数次方 |
15 |
log() |
返回参数的自然数底数的对数值 |
16 |
pow() |
返回第一个参数的第二个参数次方 |
17 |
sqrt() |
求参数的算术平方根 |
18 |
sin() |
求指定double类型参数的正弦值 |
19 |
cos() |
求指定double类型参数的余弦值 |
20 |
tan() |
求指定double类型参数的正切值 |
21 |
asin() |
求指定double类型参数的反正弦值 |
22 |
acos() |
求指定double类型参数的反余弦值 |
23 |
atan() |
求指定double类型参数的反正切值 |
24 |
atan2() |
将笛卡尔坐标转换为极坐标,并返回极坐标的角度值 |
25 |
toDegrees() |
将参数转化为角度 |
26 |
toRadians() |
将角度转换为弧度 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。