Java_数据类型

第一节:标识符,关键字,字符集

1.1. 标识符

​ Java中用于区分数据而需要我们自己定义的名称

允许使用 字母 数字 _ $

不允许使用 数字不能开头 不可以是java中的关键字

​ 驼峰式命名 StudentAge

​ 见名知意

常见的标识符 包名 类名 方法名 变量名 参数名

img

除了类名首字母大写 其他标识符首字母都要小写

1.2. 关键字

关键词就是具备特殊含义的词汇。比如:public,static,int,class等

Java关键字是Java语言保留供内部使用的,如class用于定义类。 关键字也可以称为保留字,它们的意思是一样的。

注意:不要刻意去背!后面会慢慢介绍每个关键字的用法

表2-1 Java中的关键字/保留字
abstractassertbooleanbreakbytecase
catchcharclassconstcontinuedefault
dodoubleelseextendsfinalfinally
floatforgotoifimplementsimport
instanceofintinterfacelongnativenew
nullpackageprivateprotectedpublicreturn
shortstaticstrictfpsuperswitchsynchronized
thisthrowthrowstransienttryvoid
volatilewhile

1.3. 字符集

img

  • ASCII

英文字符集 1个字节

  • ISO-8859-1

西欧字符集 1个字节

  • BIG5

台湾的大五码,表示繁体汉字 2个字节

  • GB2312

大陆使用最早、最广的简体中文字符集 2个字节 65536

  • GBK

GB2312的扩展,可以表示繁体中文 2个字节

  • GB18030

最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符 2个字节

  • Unicode

国际通用字符集 2个字节 (JAVA中用的字符集就是Unicode)

img

img

PS:

1位 1/0 >>> bit 比特

1字节=8bit >>> byte字节

千字节 = 1024 byte kB

兆字节 = 1024 KB MB

GB =1024MB

TB =1024GB

PB = 1024TB

字符>>> 代表一个文字 可以是一个字母 中文 空格 标点符号

PS:Unicode是字符集,UTF-32/ UTF-16/ UTF-8是三种字符编码方案

ANSI:获取你当前操作系统的编码格式–》一般我们用的GBK

第二节:变量和常量

如何在java程序中存储一些数据? 可以采用变量和常量的方式

变量 可以变化的量 人的年龄 身高 体重 ……

常量 不会变化的量

字面常量(其实就是具体的值)

符号常量(真理数字,类似于PI这样的数据)

2.1. 变量的声明和使用

img

img

2.2. 变量的作用范围

局部变量

方法内/代码块内/多条件分支或者循环内声明的变量,仅能在当前方法内/代码块内/多条件分支或者循环内

成员变量 (全局变量)

声明在方法之外的变量 可以通过访问修饰符控制访问范围, 但是至少可以在当前类内部可见

img

2.3. 常量

​ 字面值常量1 2 3 4

​ 符号常量 圆周率

​ 不可修改的变量 >>> 常量

img

第三节:java中的数据类型

3.1. 进制及其转换

十进制 逢十进一 人类喜欢的进制 九九加法表

二进制 逢二进一 计算机底层的进制 运算快 运算准确

img

【1】二进制 转换为 十进制

例如:二进制 1101

12^3 + 12^2 + 02^1 + 12^0

= 8 + 4 + 0 + 1

= 13

【2】十进制 转换为 二进制

例如:十进制 13

img

【3】八进制 转换为 十进制

例如:八进制 16

18^1 + 68^0 = 14

【4】十进制 转换为 八进制

例如:十进制 14

img

【5】八进制 转换为 二进制

可以把十进制当做一个“中转站”

八进制–》十进制–》二进制

实际上我们也不用这么麻烦,我们可以直接使用程序员计算器:

img

3.2. 数据类型的分类

基本数据类型(primitive data type) 最基础的数据类型 八种

​ 整数型 byte short int long

​ 浮点型 float double 小数

​ 字符型 char

​ 布尔型 boolean true false 做逻辑判断

引用数据类型(reference data type)类 抽象类 接口 枚举 …. …

3.3. 整数类型

byte short int long

各自的范围

类型占用存储空间表数范围
byte1字节-27 ~ 27-1(-128~127)
short2字节-215 ~ 215-1 (-32768~32767)
int4字节-231 ~ 231-1 (-2147483648~2147483647) 约21亿
long8字节-263 ~ 263-1

img

十进制整数,如:99, -500, 0

八进制整数,要求以 0 开头,如:015

十六进制数,要求 0x 或 0X 开头,如:0x15

二进制:要求0b或者0B开头,如:0b11

img

3.4. 浮点数类型

float double

img

float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍(15位),又被称作双精度类型,绝大部分应用程序都采用double类型。

float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。

注意:

(1)浮点常量默认为double。要变为float,需在后面增加F/f. 如: 3.14F

(2)浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

img

科学计数法

314e2 314E2 (E的大小写没有区分)

double f = 314e2; >>>314*10^2–>31400.0

double f2 = 314e-2; >>>314*10^(-2)–>3.14

img

3.5. 布尔类型

​ Boolean

只有两个字面值常量 true false

img

3.6. 字符型

​ char 2B 16b 单个字符 java使用unicode字符集 对于java来说,世界各国的语言文字都是字母

img

java中的转义字符

有些特殊的字符在java中无法正常使用或展示,因为有特殊的作用

使用\+要转义的字符
      
    \'

    \"

    \\

    \t 制表符 一个制表符位8个空格 一个字母1个空格 一个汉字是2个空格

      如果前面的内容是制表符位的整数倍,当前制表符为重开一个,如果不够,补全一整个制表符位

    \n 换行

    \r 光标回到行首

    \b 退格

img

img

字符串 String 一堆文字串成的串儿

img

byte short int long

float double

boolean

char

String

3.7. 数据类型的转换

​ 从小到大 正常转换 不会损失数据

img

byte >>> short >>> int >>> long>>> float>double

​                char

从大到小 强制转换 可能会损失数据

img

double>>> float>>> long>>> int>>> short>>> byte

                                                          char

给定任意浮点数 输出去保留两位小数 考虑四舍五入的结果

img

第四节:运算符

4.1. 赋值运算符

= 将右边的值赋值给左边的变量 一定要等右边所有的代码运算完毕再进行赋值

int i = 100*10;

4.2. 算数运算符

+ - * / %

  1. 在算数运算符使用的过程中,注意运算结果的数据类型 可能和参与运算的变量类型不一致

  2. 在进行除法运算, 整数除以整数,不会保留小数位,除非其中一方是浮点数

  3. 取模运算对于浮点数同样有效

img

% 模运算 取模运算 取余数运算

img

练习 准备任意一个四位整数 倒叙输出

1234 >>>> 4321

img

4.3. 拓展算数运算符

+= -= /= *= %= ++ –

拓展算数运算符可以理解为算数运算符的简写,但是算数运算符会改变结果的数据类型

拓展算数运算符直接在原来的变量上进行操作,所以不会改变变量的数据类型

img

img

练习 完成两个整数变量值得互换

img

好代码

  1. 注释全面

  2. 简介

  3. 格式规范

黑客代码 2B代码

img

杜绝2B代码 不用追求黑客代码 最受欢迎的就是普通代码

++ –

img

img

img

4.4. 关系运算符

数据大小关系

< > <= >= == !=

img

4.5. 逻辑运算符

& | ^ && || !

package demo1;

public class Test1 {
    public static void main(String[] args) {
        /*逻辑运算符 运算结果是boolean 类型
        * & 逻辑与运算 并且 多个条件同为true 则为true 一方为false 则为false
        * | 逻辑或运算 或者 多个条件任意一个为true 则为true 全为false才为false
        * && 短路与运算 并且
        * || 短路或运算 或者
        * ^  逻辑异或运算
        * !  逻辑非运算
        * */

        boolean b = 10<20 & 20<30 & 30<40 ;
        System.out.println(b);
        boolean b2 = 10 > 20 | 20 >30 | 30 >40;
        System.out.println(b2);

        // 短路与运算 发现前面的一项结果为false 则后面的条件就不在运算了
        boolean b3 = false && 1/0 >1;
        System.out.println(b3);

        // 短路或运算 发现前面的一项结果为true  则后面的条件就不运算了
        boolean b4 = 10<20 || 1/0>1;
        System.out.println(b4);
        /*以后基本使用短路的与运算和或运算*/
        
        /*异或运算  ^
        * 相同则为false 不同则为 true
        *  */
        boolean b5 = 10<20 ^ 20>30;
        System.out.println(b5);
        
        /*逻辑非运算*/
        boolean b6 = (10<20);
        System.out.println(!b6);

    }
}

4.6. 位运算符(了解)

>> << >>> & | ^ ~

package demo1;

public class Test2 {
    public static void main(String[] args) {
        /*位运算符在二进制上运算的符号
        <<  左移运算
        >>  右移运算
        >>> 不带号右移运算
        &   按位与运算
        |   按位或运算
        ^   按位异或运算
        ~   按位取反运算
        */
        int a =-8;//00001000
        /*左移动一位相当于 *2 */
        int b = a << 1;// 00001000 00010000
        System.out.println(b);

        /*右移动一位相当于 /2 */
        int c =a >> 1;// 00001000 00000100
        System.out.println(c);


        /*
        * >>  << 不会移动符号位
        * >>> 移动符号位
        *01000000 00000000 00000000 00000100
        * */
        int d = a >>>1;//
        System.out.println(d);


        int e =8; //00001000
        int f =9; //00001001

        /*& 同为1 则为1 一方为0 则为0*/
        int g = e & f;//00001000
        System.out.println(g);
        /*| 同为0 则为0 一方为1 则为1*/
        int h = e | f;//00001001
        System.out.println(h);

        /*^ 相同即为0 不同即为1 */
        int i = e ^ f;//00000001
        System.out.println(i);

        /*~ */
        int j=~10;// -3 -2 -1 | 0 1 2 3
        System.out.println(j);



    }
}

4.7. 条件运算符号

? :

img

4.8. 运算符的优先级

boolean b = 1+0>1 || 5>3?true:false;

运算逻辑 先算算数 条件运算符 然后关系判断 然后逻辑判断 最后赋值

所以优先级简单可以记忆为 算数运算符>条件运算符>关系运算符>逻辑运算符>赋值运算符

实在分不清楚 那么就用小括号提升运算优先级即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟火9092

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值