标志符与关键字

标识符的命名规则

  • 标志符可以由字母,数字,下划线( _ )和美元符号( $ )组成,不能以数字开头
  • 标志符严格区分大小写
  • 标志符不能是Java关键字和保留字
  • 标志符的命名最好能反映出其作用

关键字
image.png

变量与数据类型

变量名的命名规则

  • 满足标志符命名规则
  • 符合驼峰法命名规则
  • 尽量简单,做到见名知意
  • 变量名的长度没有限制,但是不要得意忘形

类名的命名规则

  • 满足Pascal命名规范,即每个单词的首字母必须大写

数据类型
image.png
#字符串也属于引用数据类型

image.pngimage.png

数据类型的字面值及变量定义

变量声明

  • 格式:数据类型 变量名
  • 例如:int n; long count;

变量赋值

  • 使用赋值运算符”=”进行赋值
  • 可以在定义变量的时候给变量赋值,即变量的初始化

整型字面值
Java中有三种表示整数的方法:十进制,八进制,十六进制

  • 八进制:以数字0开头,包括0-7的数字,如:037,056
  • 十六进制:以0x或0X开头,包括0-9的数字,及字母a-f,A-F,如:0x12,0xabcf,0xabcfL(L表示long类型)
  • int a = 100;

浮点型字面值

  • 浮点型字面值默认情况下表示double类型,也可以在值后加d或D,如:123.43d或123.43D
  • 如表示float类型,则需要在字符值后加f或F,如:23.4f或23.4F
  • 科学计数法表示:double f1 = 1.23E5; // 相当于1.23 * 10 的5次方,E可以小写
  • float f1 = 23.4f;

字符型字面值

  • 字符型字面值用单引号内的单个字符表示,如 ‘a’,’b’
  • char a = ‘a’

布尔型字面值

  • 布尔值只能定义为true和false
  • boolean b = true;

字符串字面值

  • 双引号引起来的0个或多个字符
  • String s = “abc”;


Unicode编码**

  • ACSII码不能支持所有的语言,所以有了Unicode码
  • Unicode码又称统一码,万国码
  • Unicode编码的目标是支持世界上所有的字符集
  • char c = ‘\u005d’;

转义字符
image.png

数据类型转换

自动类型转换
image.png

强制类型转换**
如果A类型的数据表示范围比B类型大,那么将A类型的值赋值给B类型,需要强制类型转换
强制类型转换的格式:(数据类型)数值
如:double d = 123.4; float f= (float)d;

常量

final int N = 5; // 常量一般大写

输入输出

  1. package com.imooc;
  2. import java.util.Scanner;
  3. public class HelloImooc {
  4. private static Scanner s;
  5. public static void main(String[] args) {
  6. System.out.println("请输入数字");
  7. s = new Scanner(System.in);
  8. int n = s.nextInt();
  9. System.out.println("n="+n);
  10. }
  11. }

知识巩固

问题:请写出本题的执行结果,并说明原因
image.png
结果:d1==d2
说明:float类型在内存中的存储形式为科学计数法,因此d1/d2的表示都是4.2343242E7
#如果对数值精度要求比较高,要使用java提供的BigDecimal类进行操作

  • float,32位单精度浮点型数中,符号位占1位,尾数占23位,阶数占8位。并且float的尾数位(也即是小数点之后,E之前)是23bit,2的23次方约为10的6.923次方。也就是单精度浮点数转化为10进制后,小数可以保证至少6位、最多7位是精确的(也就是和原来的数是一致的)。
  • float在内存中是按照科学计数法来存储的
  • float在计算过程中是以二进制的形式来计算的
  • 在float的小数点后超出第7位的小数,float的精度就会有所丢失,所以当出现第7位小数之后的小数并且有第7位小数的运算,并不是直接忽略了,而是在计算并转化为10进制后,不能精确转化,也就是我们说的精度丢失