java笔记03 常量与变量

标识符与关键字

标识符 以及 标识符的命名规则

补充知识:单个字母、数字、符号等 就叫 一个 字符,双引号引起来的 叫做 字符集就叫 字符串;

  • 标识符可以由 字母、数字、下划线_、美元符号$ 组成,不能以数字开头
  • 标识符 严格区分大小写
  • 标识符不能是 java关键字 和 保留字
    • eclipse编辑器中,紫色的都是关键字,比如:package、public、class、static、void等
  • 标识符的命名最好能反映出其作用
  • 标识符通常是指 类名、变量名、方法名等、它们都要满足标识符的命名规则

 关键字

 保留字(现在不使用,以后可能会使用):goto  

变量的概念与数据类型

  • 变量的概念 :

    • 程序当中 数据的临时存放场所,可以帮我们解决 数据存储问题,而变量是存储到内存当中的。在java中,我们通过三个元素描述变量——变量类型、变量名、变量值。
    • 变量的三个元素:变量类型、变量名、变量值。
    • 变量的类比:
  • 变量的命名规则:

    • 满足标识符 命名规则
    • 符合驼峰命名规范
    • 尽量简单,做到见名知意
    • 变量名的长度没有限制(java中)
  • 类的命名规则

    • 满足 pascal 命名规范(帕斯卡命名规范)
      • 帕斯卡命名规范:
        • 每个单词首字母都要大写,eg:HelloWorld
  •  数据类型

      •    基本数据类型: 

        • 数值型
          • 整数类型
            • 字节型 byte  字节1
            • 短整型 short  字节2
            • 整形 int 字节4
            • 长整型 long  字节8(最大范围)
          • 浮点类型
            • 单精度浮点型 float  字节4
            • 双精度浮点型 double 字节8(最大范围)
        • 字符型(char) 字节2
        • 布尔型(Boolean) 字节1
      • 引用数据类型:

        • 类(class)、接口(interface)、数组

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

  •  字面值

    • 字面值其实就是常量的一种
  • 整形字面值:123、023、0x1357、0x3c、0x1abcL
    • 赋值
      • int octal = 037; // 定义int类型变量存放八进制数据
        long longNumber = 0xa2cdf3ffL;  // 定义变量存放十六进制长整形数据
        short shortNumber = 123;  // 定义变量存放短整型数据
        byte b = 10; // 定义变量存放byte类型数据
      • int n;
        n=3;

        或者写作:

        int n = 3;

        变量的定义:

      • eg:
      • “=” 叫做赋值运算符,讲运算符右边的值 赋给 左边的变量
      • 使用 “=” 运算符 进行赋值
    • 变量声明

      • eg: long count;  // 声明长整型变量 count
      • eg:int n;  // 声明 整形变量n
      • 格式: 数据类型 变量名;
    • ps: 字面值就是常量
    • 十六进制:以0x或者0X开头,包括0-9的数字,及字母a-f,A-F
      • 如: 0x12,0xabcf、0XABCFF
      • a表示10,以此类推
    • 八进制:以0开头,包括0-7的数字,如:037、056、
    • java中有三种表示整数的方法:十进制、八进制、十六进制
    • L表示 长整型
    • 浮点型字面值

      • 浮点型字面值默认情况下 表示double类型,也可以在之后加 d或D
        • 如: 123.43d 或 123.43D  // 其实就是double 的首字母 
      • 如果想表示 单精度的浮点型(float类型),则需要在字面值后面加 f 或 F
        • 如 :23.4f 或 23.4F // 其实就是float的首字母 
        • 小结:不加或者加d/D 就是 double,加 f/F 就是 float
        • public class FloatDemo {
          	public static void main(String[] args) {
          		// 定义一个 单精度浮点型变量,存放 1234.328
          		float f = 123.328f;
          		System.out.println("f="+f);  //  f=123.328
          		double d = 5623.464;
          		System.out.println("d="+d);  // d=5623.464
          		double d1 = 123;
          		System.out.println("d1="+d1);  // d1=123.0
          		// 变量间的赋值
          		double d2 = d;
          		System.out.println("d2="+d2);
          	}
          }
           
  • 基本数据类型 变量的存储 

    • 变量 按照 数据类型分为 基本数据类型 和 引用数据类型
      • 引用数据类型包括 数组 和 类 等
      • 类定义的变量又叫对象
    • 变量 按照作用范围分为:类级、对象实例级别、方法级、块级
      • 方法级变量 又叫做 局部变量
    • 基本数据类型变量 存储在 栈中,eg:
    •  
  • 字符型字面值

    • 用单引号 包住的 单个字符表示

    • 比如: 'a', 'b', '$'

    • ps:单引号中必须只有一个字符!

    • 定义: char a = 'a'; 

    • public class CharDemo {
      
      	public static void main(String[] args) {
      		// 定义一个变量村发放字符’a‘
      		char a = 'a';
      		System.out.println("a="+a);  // a=a
      		char ch1 = 65;
      		System.out.println("ch1="+ch1);  // ch1=A
      		char ch2 = 65535;
      		// 如果 字面值超出 char类型所表示的数据范围,需要进行强制类型转换
      		char ch3 = (char)65536;
      		System.out.println("ch2="+ch2);  // ch2=?
      		System.out.println("ch3="+ch3);  // ch3=
      	}
      
      }
    • ASCII码:美国标准信息交换代码

      • 基于拉丁字母的一套电脑编码系统

      • 主要用于显示现在英语和其它西欧语言

    • ASCII码表示

      • 使用7位或者8位二进制数组合来表示128种和256种 可能的字符

        • 七位二进制数组合——标准ASCII码

          • 标准ASCII码表示 大小写字母、标点符号、美式英语中的控制字符等

        • 八位二进制数组合——扩展ASCII码(后128位)

          • 后128位 主要表示 一些 特俗字符、外来语言的字母等

        • 标准ASCII码:(0-127)

          • 0-32 控制字符

          • 33-47 英文标点符号

          • 48-57 数字0-9

          • 58-64 其它标点符号

          • 65-90  26个大写英文字母

          • 91-96 其它标点符号

          • 97-122  26个小写英文字母

          • 123-126 其它标点符号

          • 127 del 删除控制符

    • Unicode编码

      • ASCII不能表示中文,如果想表示中文就需要用Unicode编码

      • Unicode编码又称为 统一码、万国码

      • Unicode编码的目标——支持世界上所有的字符集

      • eg: char c = '\u005d';  // 00 开头是 十六进制 表示

      • Unicode表示发,在值的前面加 \u

  • 布尔类型字面值

    • 布尔值只能定义为 true 和 false
    • 其它语言中可能会定义为 1和0,但在java中是不允许的
    • 定义: boolean b = true;
  • 字符串字面值

    • 双引号 引起来的0个 或 多个字符。 // 也就是说可以什么都不写 “”
    • 定义: String s1 = "";
    • 小结:单引号 就是 字符,双引号 就是 字符串;
    • public class StringDemo {
      	public static void main(String[] args) {
      		String s1 = "";
      		System.out.println("s1="+s1);  // s1=
      		String s2 = "\u005d";
      		System.out.println("s2="+s2);  // s2=]
      		String s3 = "\u005d\u005b";
      		System.out.println("s3="+s3);  // s3=][
      		String s4 = " 你    好 "; // 空格也是字符
      		System.out.println("s4="+s4);  // s4= 你    好 
      	}
      }
      
  • 转义字符

  •  换行的方法:
    • 方法1:System.out.println(); 
    • 方法2: "\n"
    • eg:shu
      public class VarDemo {
      
      	public static void main(String[] args) {
      		// TODO Auto-generated method stub
      		// int x = 0,y=0; // 这种形式是正确的
      		int x,y;
      		x = 3;y = 5;
      		System.out.println("x="+x);
      		System.out.println("y="+y);
      		// 关于换行问题
      		System.out.println("x="+x);
      		System.out.println(); //  换行
      		System.out.println("y="+y);
      		System.out.println("x="+x+"\ny="+y);
      		// 定义一个汉字的字符
      		char ch='好';
      		System.out.println("ch="+ch);		
      		// 用科学计数法表示浮点型数据
      		double d = 1.23E5;  // 表示 1.23 * 10的5次方 双精度浮点型
      		float f = 1.23e5f;   // 表示 1.23 * 10的5次方 单精度浮点型
      		double d1 = .2;   // 表示 0.2
      		System.out.println("d="+d+"\nf="+f+"\nd1="+d1);
      	}
      
      }

数据类型转换

  • 分为自动类型转换 和 强制类型转换
  • 自动类型转换

    • long n = 235;  // 把 int 类型数据 赋值给 长整型变量n
    • 自动类型转换顺序(隐式转换)
    •  实线表示:无信息丢失的数据类型转换

    • 虚线表示:可能在转换时,出现精度丢失 

  • 强制类型转换
    • 如果A类型的数据表示范围比B类型大,则将A类型的值赋值给B类型,需要强制类型转换
    • 变量类型有它的范围,如果超出该范围就会报错,这时候就需要对变量进行强制类型转换,让值回到范围内,从而解决报错
    • 如:
      double d = 123.4;
      float f = (float)d;

eg:


public class TypeExchange {

	public static void main(String[] args) {
		// char 类型 和 int 类型 之间的  转换
		char c = (char)65536;
		int n;
		n=c;  // 隐式转换 
		//c=n;	// 报错,需要进行强制类型转换
		c=(char)n;
		
		// 整形和浮点型的类型转换问题
		int x = 100;
		long y=x;
		x=(int)y; // 进行强制转换,y是长整型,转成整形会丢失数据
	
		float f = 100000000000000L;
		System.out.println("f="+f);
		float f1 = 103948583923948L;
		System.out.println("f1="+f1);
	}

}

常量

  • final int n = 5;
  • 定义常量关键字 final
  • 常量不能变化的量,不可修改的量
  • 常量的命名规则——用大写字母表示
  • int m=5;
    final int N=6;	
    m=10;
    final double PI=3.14159;
    final double MIN_VALUE=0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值