源地址: GitHub || GitEE
一、基本类型
1、基本类型
声明不使用New创建且不是按引用传递的变量。 变量值直接放置在堆栈上,并且大小不会随运行环境而变化,因此很有效率。 使用new创建的引用对象存储在堆中。
2、基本信息
的基本类型如下。 字节、短、整数、长、浮点、双精度、布尔、字符。 通过相关的方法可以看到范围的大小。公共类inttype 01
publicstaticvoidmain (字符串[ ]数组) {
系统输出打印;
System.out.println (最小值: ' Integer.MIN_VALUE );
System.out.println (最大值(整数.最大值);
系统输出打印;
System.out.println (最小值: '双精度. min _ value );
System.out.println (最大值: '双精度.最大值_值);
}
}
二、案例用法
1、类型转换
自动转换:范围窄的数据类型可以自动转换为范围宽的数据类型。强制转换:将一种数据类型转换为另一种数据类型。
类型升级:表达式的运算有不同的数据类型,类型会自动升级为范围更广的类型。
公共类inttype 02
publicstaticvoidmain (字符串[ ]数组) {
//自动转换
int i=112;
长j=I;
system.out.println(j
//strong制切换
双精度d=13.14;
intf=(int ) d;
系统输出打印机(f;
//类型设定
长r=I * j;
系统输出打印机(r;
}
(注意)类型转换最值得注意的问题是范围大小问题。
2、包装器类型
基本数据类型不符合面向对象的思想,因此出现了包装器类型,为包装器添加了更多的属性和方法。 自动包装器功能可以将基本类型转换为包装器类型。 对于每个原始类型,Java都提供了包类,如Integer、Double、Long、Boolean和Byte。公共类别类型03
publicstaticvoidmain (字符串[ ]数组) {
整数1=空值;
杜比1=13.14;
长LON1=123 l;
}
{1}整数变量的默认值为空。 这表明Integer可以区分未来收入和值0的差异。 这有点像考试得了0分和没得0分的区别。
3、字符类型
字符类型变量用于存储包含汉字的Unicode编码字符。公共类别类型04
publicstaticvoidmain (字符串[ ]数组) {
char cha1='知';
系统输出(cha 1;
}
请注意,unicode代码字符集中可能不包含:特殊的生僻字。
4、赋值和运算
=和=的区别:短S1=1; s1=s1 1和短s1=s1 1; s1=1; 问题。公共类别类型05
publicstaticvoidmain (字符串[ ]数组) {
短S1=1;
//s1=s1 1; //变异错误: s1自动转换为int型
s1 =1;
system.out.println(S1;
}
==运算符由java语言规定,由编译器进行识别处理,因此可以正确编译。
5、布尔类型
2>两个逻辑值: true和false,通常用来表示关系运算的结果。
public class IntType06 { public static void main(String[] args) { // 存在精度损失问题:0.30000000000000004 System.out.println(3*0.1); // true System.out.println(0.3 == 0.3); // false System.out.println(3*0.1 == 0.3); } }三、Float和Dubble
1、基础概念
这两个类型可能大部分情况下都说不明白关系和区分,首先要理解几个基础概念。
浮点数:在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数乘以某个基数(计算机中通常是2)的整数次幂得到
单精度浮点数:单精度浮点数是用来表示带有小数部分的实数,一般用于科学计算。占用4个字节(32位)存储空间
双精度浮点数:双精度浮点数(double)是计算机使用的一种数据类型,使用64位(8字节)来存储一个浮点数。
2、对比分析
Float基本描述位数:32 最小值:1.4E-45 最大值:3.4028235E38Double基本描述位数:64 最小值:4.9E-324 最大值:1.7976931348623157E308案例描述float和double声明和转换相关演示案例。
public class IntType07 { public static void main(String[] args) { // float 声明 float f1 = 12.3f ; // double 声明 double d1 = 13.4 ; // 向下转型,需要强制转换 float f2 = (float) d1 ; System.out.println("f1="+f1+";d1="+d1+";f2="+f2); } }四、高精度类型
1、BigInteger
支持任意大小的整数运算,且不会再运算过程有任何丢失情况,没有对应的基本类型,运算也会变得相对复杂,运算速度自然也就会下降。
2、BigDecimal
支持任意精度的定点数,通常用来进行精确的货币计算,在公司的日常开发中,这里通常是硬性要求。
public class IntType08 { public static void main(String[] args) { BigDecimal dec1 = new BigDecimal(3.0) ; BigDecimal dec2 = new BigDecimal(2.11) ; // 精确加法运算 BigDecimal res1 = dec1.add(dec2) ; System.out.println(res1); // 精确减法运算,并截取结果 // HALF_UP:四舍五入 BigDecimal res2 = dec1.subtract(dec2); System.out.println(res2.setScale(1, RoundingMode.HALF_UP)); // 精确乘法运算 BigDecimal res3 = dec1.multiply(dec2) ; System.out.println(res3.doubleValue()); // 精确除法运算,并截取结果 // ROUND_DOWN:直接按保留位数截取 BigDecimal res4 = dec1.divide(dec2,2,BigDecimal.ROUND_DOWN); System.out.println(res4); } }<END>
Java并发编程 | 线程的创建方式,状态周期管理
JavaEE编程基础:监听器、过滤器、拦截器,应用详解
JavaEE编程基础:会话跟踪技术,Session和Cookie详解
JavaEE编程基础:Servlet核心API用法详解
JavaEE编程基础:Http请求说明,握手挥手机制详解