概述
常量
定义:指一个固定的值。在java语言中,主要是利用关键字final来定义常量,常量一旦被初始化后不能更改它的值。
package text;
/**
* 测试常量
* 常量通常是用大写字母和下划线组成,使用驼峰原则
* @author
*
*/
public class text01 {
public static void main(String[] args) {
int age=233;//age是变量,233是字面常量
final String name="goal";//name是变量,双引号里面的是常量
//name="laog";
//报错:The final local variable name cannot be assigned. It must be blank and not using a compound assignment
//解释为无法分配最终的局部变量名。它必须是空的,不能使用复合赋值
final double PI=3.14;
//PI=233;
//编译错误,不能再被赋值
}
}
数据类型
数据类型分为基本数据类型和引用数据类型。
数值型为:
byte(1字节),short(2字节),int(4字节),long(8字节);
float(4字节),double (8字节)
字符型占2个字节,而布尔型占1个比特
引用数据类型指向对象,占4个字节
这篇主要讲基本数据类型,引用数据类型会放到后面和对象进行结合
1.整数类型
byte是一个字节,可以表示正负数,所以是-128~+127.
package text;
/**
* 测试基本数据类型
* @author
*
*/
public class text02 {
public static void main(String[] args) {
//测试整型变量
int a=10;
int b=010;//以0开头的是八进制
int c=0x10;//以0x开头是十六进制
int d=0b1111;//二进制
System.out.println(b);//8
System.out.println(c);//16
System.out.println(d);//15
}
}
package text;
/**
* 测试基本数据类型
* @author
*
*/
public class text03 {
public static void main(String[] args) {
//测试整型变量
int a=10;
int b=010;//以0开头的是八进制
int c=0x10;//以0x开头是十六进制
int d=0b1111;//二进制
System.out.println(b);//8
System.out.println(c);//16
System.out.println(d);//15
byte sum=30;
short s=200000000;
int ss=22222;//整型常量默认是int类型
long sss=1000000L;//长整型的常量
//不加L就会出现编译错误,表示超过int表示的范围
System.out.println(sum);
}
}
2.浮点类型及BigDecimal的使用
- 浮点类型常量有两种表示形式:
1.十进制数形式
2.科学记数法形式 - float是单精度类型,尾数可以精确到7位有效数字,而double的数值精度约是float类型的两倍,被叫做双精度类型。
- 浮点型常量的默认类型是double
- 使用科学记数法给浮点型变量赋值
package text;
/**
* 测试基本数据类型
* @author
*
*/
public class text04 {
public static void main(String[] args) {
double dd=314e2;
System.out.println(dd);//31400.0
}
}
- 浮点型常量默认是double,如果要写成float类型,需要显示的加f
package text;
/**
* 测试基本数据类型
* @author
*
*/
public class text05 {
public static void main(String[] args) {
//float a=3.14;
//类型不匹配:不能从double转换为float
}
}
- 浮点数是不精确的————一定不要用于比较
package text;
/**
* 测试基本数据类型
* @author
*
*/
public class text06 {
public static void main(String[] args) {
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);
//结果是false
float dd=123456789f;
float ddd=dd+1;
if(dd==ddd) {
System.out.println("dd==ddd");//打印这个到屏幕上
}
else
System.out.println("dd!=ddd");
}
}
原因:浮点数能够表示的数是有限的,也就是离散的。存在舍入误差,很多数字不能精确表示。
有两个类可以处理任意长度的数值:BigInteger和BigDecimal(在java.math包下)
BigInteger实现了任意精度的整数运算
BigDecimal实现了任意精度的浮点运算
package text;
import java.math.BigDecimal;
/**
* 测试基本数据类型
* @author
*
*/
public class text07 {
public static void main(String[] args) {
BigDecimal d=BigDecimal.valueOf(1.0);
d=d.subtract(BigDecimal.valueOf(0.000000000000000000001));
d=d.subtract(BigDecimal.valueOf(0.000000000000000000001));
d=d.subtract(BigDecimal.valueOf(0.000000000000000000001));
d=d.subtract(BigDecimal.valueOf(0.000000000000000000001));
System.out.println(d);
//0.9999999999999999999960
}
}
以下是声明java.math.BigDecimal.subtract()方法:
public BigDecimal subtract(BigDecimal subtrahend)
参数:subtrahend - 此BigDecimal要减去的值
返回值:此方法返回BigDecimal对象的值减去与减数后的值
3.字符型变量及转义字符
- char类型用来表示在Unicode编码表中的字符。可允许有65536个字符
通常从’u0000’到’uFFFF’之间的十六进制值来表示——前缀u表示Unicode编码。
此外,java允许使用转义字符’'来将其后的字符转变为其他的含义:
转义符 | 含义 |
---|---|
b | 退格 |
n | 换行 |
r | 回车 |
t | 制表符 |
‘’ | 双引号 |
’ | 单引号 |
反斜杠 |
注:" ’ \ 这三个内部是连续的
package text;
import java.math.BigDecimal;
/**
* 测试基本数据类型
* @author
*
*/
public class text08 {
public static void main(String[] args) {
char a='a';
char b='是';
//java中char类型占2个字节,不论是英文字符还是中文字符都可以用char表示
char c='u0061';
System.out.println('\');
System.out.println(c);
//转义字符
System.out.println(""+'a'+'b');
//字符串__string类就是字符序列
System.out.println('a'+'b');
}
}
4.布尔型及条件语句If
布尔类型在内存中占一位,不是一个字节
尽量不要写成if(flag==true),容易写错为flag=true
最后
以上就是微笑鼠标为你收集整理的Java基础_03常量及数据类型常量数据类型的全部内容,希望文章能够帮你解决Java基础_03常量及数据类型常量数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复