【JavaSE】变量和数据类型

1 篇文章 0 订阅
1 篇文章 0 订阅

变量和数据类型

变量的基本概念

基本概念:

  1. 当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本质就是在内存中申请一个存储单元,由于该存储单元中的数据内容可以改变,因此得名为“变量”
  2. 由于存放的数据内容大小不一样,导致所需存储单元的大小不一样,在Java语言中使用数据类型加以描述,为了便于下次访问还需要给该变量指定一个名字,用于记录该变量对应的存储单元;

变量的声明方式

声明语法:

  1. 数据类型 变量名 = 初始值;
    例1:int a = 1;
    例2:char c = ‘a’;
    注意:其中=初始值可以省略,但;不可以省略

注意事项:

  1. 使用变量之前需要声明
  2. 使用变量之前需要初始化
  3. 变量不能重复声明

标识符的命名法则(笔试易涉及)

  1. 由数字、字符、下划线以及$等组成,其中数字不能开头
  2. 不能使用Java语言的关键字
    所谓关键字就是Java语言用于表示特殊含义的单词
    (以下表格为Java关键字)
abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
  1. 区分大小写,长度没有限制但不宜过长
  2. 尽量做到见名知意,支持中文但不推荐使用

数据类型的分类

基本数据类型(重点

  1. 整数类型
    在Java程序中直接写出的整数数据叫做直接量/字面值/常量,默认为int类型。若希望表达更大的直接量,则在直接量的后面加上l或者L,推荐L。
byte在内存空间中占1个字节,表示范围是:-27~27-1(-128~127)
short在内存空间中占2个字节,表示范围是:-215~215-1(-32768~32767)
int在内存空间中占4个字节,表示范围是:-2^31 ~ 2^31-1(-2147483648~2147483647)
long在内存空间中占8个字节,表示范围是:-2^63 ~ 2^63-1(-9223372036854775808~9223372036854775807),若描述比long类型还大的数据则使用java.math.BigInteger类型
  1. 浮点类型
    1、Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望表达float类型的直接量,则需要在直接量的后面加上f或者F.
    2、在运算时不能达到精确运算,可能存有误差,若希望实现精确运算则借助java.math.BigDecimal类型
float在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38
double在内存空间占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围:-1.798E308~1.798E308
  1. 布尔类型
    Java语言中用于描述真假信息类型
boolean1、用于描述真假信息类型,数值只有:true和false
2、布尔类型在内存空间中所占大小没有明确的规定,可以认为是1个字节
  1. 字符类型
charASCII编码
Unicode字符集编码
• Java语言中用于描述单个字符的数据类型:char类型。如:'a'、'中'等。
• 其中char类型在内存空间中占2个字节并且没有符号位,表示的范围是:0 ~ 65535,由于现实生活中很少有数据能够被单个字符描述,因此以后的开发中更多的使用由多个字符串起来组成的字符串,使用String类型加以描述,如:“hello”、“奇点”等。
• 计算机的底层只识别0和1组成的二进制序列,对于字符'a'这样的图案来说不满足该规则,因此该数据无法直接在计算机中存储,但现实生活中存在这样的图案数据需要计算机存储,为了使得该数据能够存储起来就可以给该数据指定一个编号,然后将编号存储起来即可,该编号就叫做ASCII。
• **要求掌握的ASCII有:'0' - 48 'A' - 65 'a' - 97 空格 - 32 换行符 - 10**
• **Java字符类型采用Unicode字符集编码**。Unicode是世界通用的定长字符
集,所有的字符都是16位。
• **要求掌握的转义字符有:\" - " \' - ' \\ - \ \t - 制表符 \n - 换行符**

ASCII表
引用数据类型
    接口、类、数组、枚举、标注

基本数据类型之间的转换

  1. 自动类型转换:
    其中自动类型转换主要指从小类型到大类型之间的转换
char
byte
short
int
long
float
double
// 定义一个short变量
short s = 1;
// 定义一个int变量,并且将s赋值给该变量
int i = s; 
//打印i的值
System.out.println(i); //输出结果为1
  1. 强制类型转换:
    强制类型转换主要指从大类型到小类型之间的转换,语法格式如下:
    目标类型 变量名 = (目标类型)源类型变量名;
    强转有风险,操作需谨慎!
// 定义一个char数组
char data[] = {'a', 'b', 'c'};
// 定义一个String变量,并且将数组赋值给该变量
String str = new String(data);
//打印str的值
System.out.println(str); //输出结果为abc

常用进制

  1. 十进制
    日常生活中采用十进制进行数据的描述,逢十进一,十进制权重是:100、101、10^2…
  2. 二进制
    a.在计算机的底层采用0和1组成的二进制序列进行数据的描述,逢二进一,二进制的权重是20、21、2^2…
    b.二进制中的最高位(最左边)用于代表符号位,若该位是0则表示非负数,若该位是1则表示负数
  3. 八进制
  4. 十六进制

进制之间的转换

  1. 正十进制转换为二进制的方式
    a. 除2取余法
    使用十进制整数不断地除以2取出余数,直到商为0时将余数逆序排序。
    如下图:十进制45转换为二进制的结果为:10 1101 (Ob/OB可以作为二进制的前缀)
    除2取余法

     b. 拆分法(推荐)
     将十进制整数拆分为若干个二进制权重的和,有该权重下面写1,否则写0。

拆分法

  1. 正二进制转换为十进制的方式
    加权法
    使用二进制中的每个数字乘以当前位的权重再累加起来。
    如下图:

加权法

  1. 负十进制转换为二进制的方式
    先将十进制的绝对值转换为二进制,然后进行按位取反再加1
    如下图:

负十进制转换为二进制

  1. 负二进制转换为十进制的方式
    先减1再按位取反,合并为十进制整数后添加符号
    如下图:

负二进制转化为十进制

单个字节表示的整数范围*(重中之重)*

• 在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位, 使用0代表非负数,使用1代表负数,具体表示的整数范围如下: 
• 非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1 
• 负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0 
• 单个字节表示的整数范围是:-2^7 ~ 2^7-1,也就是-128 ~ 127. 

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值