Java数据类型

数据类型

Java是强类型语言,这意味着必须为每一个变量声明一种类型,共有8中数据类型:

整型

表示没有小数部分的值,如1,2,3等

Java共有4种整型:

类型存储需求取值范围
int4字节-2 147 483 648 ~ 2 147 483 647
short2字节-32 768 ~ 32 767
long8字节-9 223 372 036 854 775 808 ~ -9 223 372 036 854 775 807
byte1字节-128 ~ 127

通常情况下int最常用

浮点类型

Java中由2中浮点类型

类型存储需求取值范围
float4字节大约±3.402 823 47E + 38 F(有效位数为6~7位)
double8字节大约 ± 1.797 693 134 862 315 70E+308 (有效位数为 15 位>

double 表示这种类型的数值精度是 float 类型的两倍(有人称之为双精度数值)。绝大部 分应用程序都采用 double 类型。在很多情况下,float 类型的精度很难满足需求。实际上,只 有很少的情况适合使用 float 类型,

float 类型的数值有一个后缀 F 或 f (例如,3.14F。) 没有后缀 F 的浮点数值(如 3.14 ) 默 认为 double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D) 。

char类型

char 类型原本用于表示单个字符。如今,有些 Unicode 字符可以用一个 char值描述,另外一些 Unicode 字符则需要两个 char 值。

char 类型的字面量值要用单引号括起来。

特殊字符的转义序列

转义序列名称Unicode 值
\b退格\u0008
\t制表\u0009
\n换行\u000a
\r回车\u000d
\ "双引号u0022
单引号\u0027
\反斜杠u005c

Unicode 转义序列会在解析代码之前得到处理。

Unicode 和 char类型

Unicode是一种编码类型与ASCII,utf-8编码类似

Unicode 编码的目的:

  1. 任意给定的代码值,在不同的编码方案下对应相同的字母
  2. 采用大字符集的语言使其编码长度相同

强烈建议不要在程序中使用 char 类型,除非确实需要处理 UTF-16 代码单元。

boolean类型

boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件 整型值和布尔值之间 不能进行相互转换。

变量

在 Java 中,每个变量都有一个类型( type)。在声明变量时,变量的类型位于变量名之前。

比如:

int a;
double b;

每个声明以分号结束

变量名命名规范:

  1. 必须以字母开头
  2. 可使用数字和下划线等
  3. 变量名不能是Java关键字
  4. 大小写敏感,区分大小写
变量初始化

声明一个变量之后,必须用赋值语句对变量进行显式初始化, 千万不要使用未初始化的 变量。

int a = 12;

或
    
int a;
a = 12;

以上两种初始化方式都正确

变量的声明尽可能地靠近变量第一次使用的地方

常量

在 Java 中, 利用关键字 final 指示常量

如:

final int A = 12;

关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上, 常量名使用全大写。

在 Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为 类常量。可以使用关键字 static final 设置一个类常量。

如:

public class HelloWorld {
    static final double NUM_MAX = 12;
    public static void main(String[] args) {
       double a =  NUM_MAX + 1;
        System.out.println(a);
    }
}

类常量的定义位于 main方法的外部

如果一个常量被声明为 public,那么其他类的方法也可以使用这个常量

运算符

算术运算符:

+、-、 * 、/ 表示加、减、 乘、除运算

数学函数与常量

在 Math类中,包含了各种各样的数学函数。

如:

  • 求一个数值的平方根

    int b = 20;
    Math.sqrt(b);
    
  • 幂运算,x的a次方幂

    int a = 20;
    //表示a的3次幂
    Math.pow(a,3);
    
  • 三角函数

    Math.sin(2);
    Math.cos(2);
    Math.tan(2);
    
  • 指数函数

    //e的2次幂
    Math.exp(2);
    
  • 对数函数

    //自然对数
    Math.log(5);
    //以10为底的对数
    Math.log10(100);
    
  • Π和 e 常量的近似值

    double pi = Math.PI;
    double e = Math.E;
    
数值类型之间的转换

经常需要将一种数值类型转换为另一种数值类型。

数据类型之间合法转换图:

image-20201214203336590

实心箭头:表示无信息丢失的转换

虚箭头: 表示可能有精度 损失的转换。

在不同类型的数据进行运算时,可以将两种数据转换为同种类型之后再进行计算。

强制类型转换

int类型可以自动的转换为double类型,但是double类型转int类型需要进行强制类型转换

转换方式:

double a = 15.35;
int b = (int) a;

当然这种方式会丢失一些信息,double转int就会截断小数部分。

如果希望小数部分再转换时四舍五入,使用下述方式:

double a = 15.65;
int b = (int) Math.round(a);
结合赋值和运算符

可以在赋值中使用二元运算符。如:

int a = 0;
a += 3;

表示:a = a + 3;

相应的还有:

a -= 3;
a *= 3;
a /= 3;
a %= 3;
自增和自减运算符

程序中加1、减1是数值变量最常见的操作

自增有两种形式:

int a = 0;
//a++和++a都会使a的数值加1
//a++在等式中,先赋值后加1
int b = a++;
System.out.println(b);
//++a先+1再赋值
int c = ++a;
System.out.println(c);

输出结果分别是:0 和 2

关系运算符、逻辑运算符和boolean运算符

与:&&,表示同真,并且

或:|| ,只要满足一个条件就成立

非:!,表示否定

相等: ==,表示数值相等

不等:!= 表示数值不相等

常用于if条件语句的判断条件

boolean运算符:true or false

括号和运算符级别

Java中括号和运算符级别满足正常的数学计算方式

位运算符

位运算符包括:

& (“and”)

| (“or”)

^(“xor”)
(“not”)

可以对每个二进制位或者十六进制位等操作

>>和<<运算符将位模式左移或右移

移位时会用其符号位填充高位或者低位

>>> 运算符会用 0 填充高位

枚举类型

变量的取值只在一个有限的集合内。

如:人的性别只有男和女

针对这种情况我们可以自定义这种变量类型,具体在第4张介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值