Javase(day02:进制与数据类型)

  • 1、进制

    进制主要有二进制,八进制,十进制,十六进制,进制之间可以相互转换,下面列出二进制与十进制的转换,其他转换方式同理。

    • 二进制转十进制
      把二进制数按权展开、相加即得十进制数(原理较为空洞,下面举例说明)
      例:二进制1011转成十进制
      1 0 1 1
      1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 11
    • 十进制转二进制
      例:十进制11转成二进制

      说明:
      1、在计算机中,八进制和十六进制是用于辅助二进制;3位二进制数表示1位八进制数,4位二进制数表示1位八进制数,转换效率高;
      2、在Java语言中,八进制几乎不会使用,但是十六进制很常用,例如:表示颜色,表示内存地址

    2、整数在内存中的存储

    • 正整数
      直接将其转换为二进制进行存储,正数的补码等于其原码
    • 负整数
      取原码(负数绝对值转换为二进制) --> 求反码(0变1,1变0)--> 求补码(+1)
      以补码形式存储
      例如:整数-7在内存中的存储如下:

      在生活中的整数都默认属于int类型,占4个字节,所以有32位

    3、小数在内存中的存储(还没有深入了解学习)

    4、关于二进制的重要结论

    • 偶数二进制最低位一定为0,奇数二进制最低位一定为1
    • 正数二进制最高位一定为0,负数二进制最高位一定为1

    5、关键字和保留字

    • 关键字:编程语言目前已经使用,并且具有一定特殊意义的单词
    • 保留字:编程语言目前还未使用,但是后期可能会使用到的单词

    6、标识符

    • 概念(作用):专门给类,方法,变量,常量,包名命名的规则
    • 标识符命名规则(规则可看作生活中的法律,必须遵守)
      1、标识符由字母,数字,下划线,$组成,并且第一个位置不能是数字
      2、标识符不能是关键字或保留字,因为关键字和保留字是给编程语言用的
      3、在Java语言中,标识符的长度没有限制
      注:在标识符的规则中,此处的“字母”我们应该广义的区理解,Java语言默认使用编码规则为Unicode,几乎包含了全世界所有的语言,因此,这里的“字母”可以看作“英文字母”,也可以看作“中文汉字”,但是不建议使用中文。
    • 标识符命名规范(规范可看作生活中的道德,建议遵守)
      1、类名建议使用“大驼峰”命名规范(每个单词首字母大写)
      2、方法名和变量名建议使用“小驼峰”命名规范(第一个单词首字母小写,其他单词首字母大写)
      3、包名建议使用“全部小写,包与包之间用“.”连接”来命名,顶级域名倒着写
      4、常量名建议使用“全部大写,单词与单词之间用下划线连接”

    7、变量(Variable)

    • 本质:变量本质是一个可以多次赋值的容器,也就是在内存中开辟一块存储空间
    • 变量声明
      1、语法:数据类型 变量名
      例:int age;
      2、底层:在内存中开辟指定大小的存储空间,并且存储空间的名字就是变量名,用于存储指定类型的数据
    • 变量赋值
      1、语法:变量名 = 数据
      例:age = 10;
      2、底层:通过变量名,找到对应的存储地址,将数据转换为二进制的形式存入到指定的存储空间
      变量声明和赋值可以一行代码完成:数据类型 变量名 = 数据; 例:int age = 10;
      也可以一次性声明并赋值多个变量,如:int num1 = 10, num2 = 20, num3 = 30;
      但是不建议这样使用,会影响代码的可读性。
    • 变量的注意点
      1、要遵守“标识符”的命名规则,“小驼峰”的命名规范
      2、先声明再赋值,赋值数据与声明类型保持一致
      3、在main方法中,只声明不赋值,只能赋值,不能取值
      4、在main方法中,不能定义多个同名的变量

    8、常量

    • 本质:常量本质也是一个容器,但是只能赋值一次,也就是存储的数据不能改变
    • 分类
      1、固定值常量
      解释:生活中的数据,我们称之为固定值常量,也叫做字面量。比如整数固定值常量“100”“50”,小数固定值常量“3.14”“2.00”,字符固定值常量’a‘’8‘,布尔固定值常量true,false,字符串固定值常量“hello”“world”。
      作用:开发中,我们经常把固定值常量赋值给变量或final修饰的常量来保存
      2、final修饰的常量
      语法:final 数据类型 变量名
      final的含义是最终的,不可变的,也符合常量的定义
    • 常量的注意点
      1、要遵守“标识符”的命名规则,“所有字母大写,单词与单词之间用下划线连接”的命名规范
      2、常量只能被赋值一次
      3、在main方法中,只声明不赋值,只能赋值,不能取值
      4、在main方法中,不能定义多个同名的常量

    9、数据类型

    • 分类(基本数据类型和引用数据类型)
      1、八大基本数据类型
      整数型:byte(1个字节),short(2个字节),int(4个字节),long(8个字节)
      注:占用字节数越大,能够表示的范围也越大;整数固定值常量默认为int,在数据末尾加“L”或“l”表示long类型数据
      浮点型:float(4个字节,可以精确到小数点后7位,又被称为单精度类型),double(8个字节,可以精确到小数点后14位,又被称为双精度类型)
      注:占用字节数越大,表示的精度也就越高;小数固定值常量默认为double类型,在数据末尾加“F”或“f”表示float类型数据;浮点型占用字节数,强调的是小数部分,整数部分还占8个字节
      布尔型:boolean(true和false,在Java的语法规范中没有明确表示boolean占几个字节)
      字符型:char(2个字节,并且采用无符号数表示)
      2、引用数据类型(如:String等,面向对象时详细说明)

    10、字符串

    • 概念:字符串属于引用数据类型,其类型的名字为String,这里的String属于类的名字
    • 字符串固定值常量:由双引号包裹的任意多个字符
    • 字符与字符串关系:相当于羊肉和羊肉串的关系
    • “+”的作用
      1、用于表示正数,例如:int age = +10;
      2、用于算数运算(两个数据都为数值)例如:int sum = 10 + 10;
      3、用于字符串拼接(至少有一个数据为字符串)例如:String str = "hello" + "world";

    11、转义字符

    • \t 制表符
    • \n 换行符
    • \" 一个双引号
      作用位置:如:System.out.prntln("小红说:\"好好学习,天天向上\"");
    • \’一个单引号
      编译时会把“\'”当成一个整体,运行时会忽略反斜杠,只展示出一个单引号
    • \\ 一个反斜杠
      编译时会把“\\”当成一个整体,运行时会忽略反斜杠,只展示出一个反斜杠

    关于Unicode码的补充:在Java语言中,默认使用Unicode码,意味着每一个字符都对应了一个Unicode值,空格的Unicode值为“\u0000”

    12、字符的存储和读取

    13、常见的“编码表”

    • ASCII:美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代的英语和西欧语言的编码表。
    • GBK:全称《汉字内码扩展规范》,字库是用来表示中文用的编码。ANSI编码表就属于GBK编码表,专门用于表示简体中文。
    • Unicode:又称为万国码、统一码,是为了解决传统的编码方案的局限性而产生的,Unicode编码几乎包含了全世界所有的文字。
      在Java语言中,char占两个字节,能表示的字符数为2^16,即65536个文字
    • ASCII码表和Unicode表联系
      Unicode表前128个与ASCII表一模一样,也就是说Unicode表包含了ASCII表
    • 需要记住的几个字符所对应的整数
      1、“1” --> 49
      2、“A” --> 65
      3、“a” --> 97
      大小写英文字母相差32

    14、int类型和char类型的联系

    • int类型和char类型都是整数型,所以可以相互转化
    • int类型可以表示无符号数,并且可表示的范围为[-2^31,2^31 - 1]
      char类型只能表示有符号数,表示范围为[2^16]
      int类型范围包含了char类型,所以char肯定能转成int(隐式类型转换),但是int未必能转换为char(强制类型转换)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值