java数据类型
时间:2023-05-07 17:37:01
Java是一种强型语言。这意味着每个变量都必须声明一种类型。在Java有8种基本类型(primitive type),有4种整形,2种浮点类型,1种用于表示Unicode编码字符单元的字符类型char和1用于表示真实值boolean类型。 注释:Java有一个算术包可以表示任何精度,通常被称为大值(bignumber)。虽然它被称为大值,但它不是一种新的Java类型,但一个Java对象。
1.整型
长整形值有后缀L或l(如4000000000L)。十六进制值前缀0x或0X(如0xCAFE)。八进制有一个前缀0,例如,010对应八进制中的8。加上前缀0b或0B可以写二进制数。例如,0b1001就是9。同样是从Java 从7开始,数字面量也可以加下划线,比如1_000_00(0或0b1111_0100_0010_0100_一万)表示一百万。
注意,Java没有无符号(unsigned)形式的int、long、short或byte类型。
2.浮点类型
常量Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY和Double.NaN(以及相应的Float类型常量)分别表示这三个特殊值。正无限大,负无限大,NaN(不是一个数字)。
3.char数据类型
char类型是单一的 16 位 Unicode 字符;
最小值是 \u0000(即为 0);
最大值是 \uffff(即为 65535);
char 任何字符都可以存储在数据类型中;
例子:char letter = ‘A’;。
4.boolean类
boolean数据类型表示一个信息;
只有两个值:true 和 false;
这种类型只作为标志记录 true/false 情况;
默认值是 false;
例子:boolean one = true。
5.常量
在Java使用关键字final指示常量。
关键字final这意味着变量只能赋值一次。一旦赋值,就不能再改变了。习惯上,常量名使用全大写。在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。关键用关键字static final设置类常量。需要注意的是,类常量的定义位于main外部方法。因此,这种常量也可以用于同一类别的其他方法。而且,如果一个常量被声明为public,这种常量也可以用于其他方法。
6.Number和Math类
1 x.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()
将角度转换为弧度。
27 random()
返回一个随机数。
7.字符串
7.1 String
字符串可以像python一样用 拼接号。同时,也可以使用join进行拼接。
String all = String.join("/","S","M","L"); //"S/M/L"
String类型字符串不能修改。如果必须修改,可以将不变的字符串取出,与变更修改部分拼接。
s.equals(t) //判断字符串s与t是否相等
如果测试两个字符串是否相等,而不区分大小写,可以使用equalsIgnoreCase方法。
“Hello”.equalslgnoreCase(“hello”)
String greeting = "Hello"; int n = greeting.length(); //length = 5 char a = greeting.charAt(0); //is "H"
7.2 StringBuilder 类
StringBuilder builder = new StringBuilder();
每次需要添加部分内容时,都会调用append方法。
builder.append(ch);
需要构建字符串时调用toString方法,可以得到一个String构建器中的字符序列包括对象。
String completedString = builder.toString();
8.读取输入
8.1 输入
我们可以通过 Scanner 获取用户输入的类别。
Scanner scan = new Scanner(System.in);
可以利用Scanner 类的 next() 与 nextLine() 在阅读之前,我们通常需要使用方法来获取输入的字符串 hasNext 与 hasNextLine 判断是否有输入数据。
if (scan.hasNext()) { String str1 = scan.next(); System.out.println("输入数据为:" str1); }
if (scan.hasNextLine()) { String str2 = scan.nextLine(); System.out.println("输入数据为:" str2); }
next() 与 nextLine() 区别
next():
输入必须在读取有效字符后才能结束。
2.输入有效字符前遇到的空白,next() 该方法将自动去除。
3.只有在输入有效字符后,才能将后输入的空白作为分隔符或结束符。
next() 拿不到带空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()返回方法是输入返回车辆前的所有字符。
2获得空白。
如果要输入 int 或 float 类型数据,在 Scanner 也有支持,但最好在输入前使用 hasNextXxx() 验证方法,然后使用 nextXxx() 来读取。
8.2输出
System.out.printf("%8.2f", x);
打印输出一个空格和7个字符,在小数点后保留两个小数字
8.3文件输入输出
如果你想读取文件,你需要使用它File构造一个对象Scanner对象,如下所示:
Scanner in = new Scanner(Paths.get(“myfile.txt”), “UTF-8”);
如果文件名称中包含反斜杠符号,请记住在每个反斜杠之前添加额外的反斜杠:c:\mydirectory\myfile.txt”
如果你想写文件,你需要构建一个PrintWriter对象。构造器中只需提供文件名:
PrintWriter out =new PrintWriter(“myfile.txt”, “UTF-8”);
9.大数值
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
使用静态的valueOf方法可以将普通的数值转换为大数值:
BigInteger a = BigInteger.valueOf(100);
该数据类型不能使用算术运算符(如:+和*)处理大数值。而需要使用大数值类中的add和multiply方法。
BigInteger c = a.add(b); //c=a+b
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other)
返回这个大整数和另一个大整数other的和、差、积、商以及余数。