Java-常量与变量-学习笔记02

Java-常量与变量-学习笔记02,第1张

目录
  • 一. 标识符
  • 二. 关键字
  • 三. 变量
  • 四. 数据类型
    • 1. 介绍
    • 2. 整型
    • 3. 浮点型
    • 4. 局部变量的储存方式
    • 5. 字符型
      • 5.1 转义字符(如`\n`)
    • 6. 字符串
    • 7. 布尔类型
    • 8. 变量的综合应用
  • 五. 类型转换
  • 六. 常量

一. 标识符
  • 比如类名,变量名就是标识符
  • 标识符由字母、数字、下划线和$组成,且不能以数字为开头
  • 区分大小写
  • 标识符不能是java关键字和保留字
  • 反应其作用
  • 举例标识符:Hello, hello_word, _hello, a
二. 关键字

下图的紫色部分为关键字,关键字是有特殊含义的字符串,java还有一个保留字goto

java关键字如下图所示,图片来自百度百科

三. 变量

变量的三个元素:变量类型、变量名和变量值

  • 变量名命名规则:
    • 满足标识符命名规则
    • 符合驼峰法命名规则:myStudent
  • 类命名规则:
    • 满足标识符命名规则
    • 满足Pascal命名规则:MyStudent
四. 数据类型 1. 介绍

数据类型说明字节(1字节8位 / 1 byte = 8 bits)表示范围
byte字节1 [ − 128 , 127 ] [-128, 127] [128,127]
short短整型2 [ − 32768 , 32767 ] [-32768,32767] [32768,32767]
int整型4 [ − 2147483648 , 2147483647 ] [-2147483648,2147483647] [2147483648,2147483647] [ − 2.1 4 9 , 2.1 4 9 ] [-2.14^9,2.14^9] [2.149,2.149])
long长整型8 [ − 2 32 [-2^{32} [232, 2 32 − 1 ] 2^{32}-1] 2321]
float单精度浮点型41bit(符号位) 8bits(指数位) 23bits(尾数位)
double双精度浮点型81bit(符号位) 11bits(指数位) 52bits(尾数位)
char字符型2 [ − 32768 , 32767 ] [-32768,32767] [32768,32767]
boolean布尔型1
  • float 的取值范围
    这篇文章与这篇介绍了float为什么和int一样同样是4个 字节却能表示更多的数字,简单来说就是float把32位分为1bit(符号位) 8bits(指数位) 23bits(尾数位),float的指数范围为 [ − 127 , 128 ] [-127,128] [127128],取值范围就是 [ − 2 127 , 2 128 ] [-2^{127} , 2^{128}] [2127,2128],精度可以表示 2 23 = 8388608 2^{23} = 8388608 223=8388608,也就是说最多表示7位,可以完整表示6位。
  • double的取值范围
    double是1bit(符号位) 11bits(指数位) 52bits(尾数位)
    取值范围为 [ − 2 1024   + 2 1024 ] [-2^{1024} ~ +2^{1024}] [21024 +21024]
    精度可以表示 2 52 = 4503599627370496 2^{52} = 4503599627370496 252=4503599627370496,也就是最多可以表示16位,可以完整表示15位
2. 整型
  • 整型字面值:Java中有三种表示整数的方法,八进制、十进制、十六进制
    • 八进制:以0开头,包含0-7的数字(012,042)
    • 十六进制:以0x或0X开头,包含0-9的数字,及字母a-f,A-F(0x123abc, 0X12AB)
    • 举例123, 0123,0x123abc,0X4A, 0x123abcL(L指长整型)
  • 变量声明:数据类型 变量名(=值);
3. 浮点型
  • 浮点型字面值默认情况下是double类型,或末尾加d/D,比如123.456d123.4D。若想要表示float类型,则需要在字面值后加f/F
  • 变量声明
    下方代码是浮点型的变量声明与示例。从中可以看出可以将float变量赋值给double(带有一个小误差),但是不能将double赋值给float
package aaa.bbb;

public class FloatDemo {
	public static void main(String[] args) {
		//定义一个单精度浮点型变量,存放1.23
		float f = 1.23f;
		//定义一个双精度浮点型变量,存放1.23
		double d = 1.23f;
		double e = 1.23;
		System.out.println("f="+f);
		System.out.println("d="+d);
		System.out.println("e="+e);
	}
}
f=1.23
d=1.2300000190734863
e=1.23
4. 局部变量的储存方式
  • 将数据按照作用进行分类:类级、对象实例级、方法级、块级
  • 方法级的变量又称为局部变量
  • 局部变量的存储方式:在内存的占中申请一个空间来存储数据
5. 字符型
  • 字符型字面值用单引号内的单个字符表示(单引号内只能有一个值)。如'a''b'
  • 定义变量:char a = 'a'char ch = 65
package aaa.bbb;

public class FloatDemo {
	public static void main(String[] args) {
		char a = 'a';
		//这里b存的是ASCII码里的65
		char b = 65;
		char c='\u005d'
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println("c="+c);
	}
}
a = a
b = A
c = ]
  • Unicode编码:在值前加前缀\u。如char c='\u005d',005d是十六进制
5.1 转义字符(如\n
转义字符描述
\uxxxx四位16进制数所表示的符号
\’单引号字符(字符)
\"双引号字符(字符串)
\|反斜杠字符
\r回车
\n换行
\t横向跳格 tab效果
\b退格
6. 字符串
  • 字面值
    • 不是基本数据类型,但又有相似处。字符串是类
    • 双引号引起来的0个或多个字符
  • 变量声明:String a = "";
7. 布尔类型
  • 只有truefalse,0或1是不行的
  • boolean b = true;
8. 变量的综合应用
package aaa.bbb;

public class VarDemo {
	public static void main(String[] args) {
		//定义两个整型变量x,y
		int x = 0, y = 1;
		System.out.print("x = "+x+'\n');
		System.out.println("y = "+y);
		System.out.print(x+"\t"+y+'\n');
		System.out.print("\'"+x+"\'\n");
		//用科学计数法表示浮点数
		double d1 = 1.23E5; //1.23+10^5
		float f = 1.23e5f;
		double d2 = .2; //0.2
	}
}
五. 类型转换
  • 类型转换分为自动类型转换和强制类型转换

    • 顺着箭头方向的是自动类型转换,反过来需要强制类型转换
    double d = 1.2;
    float f = (float)d;//强制转换(type)
    
  • 例子

package aaa.bbb;

public class TypeExchange {
	public static void main(String[] args) {
		char c = (char)65536; //强制类型转换
		int n;
		n = c;//自动类型转换
		c = (char)n;//强制类型转换
		
		//整型和浮点型类型转换问题
		int x = 100;
		long y = x;
		x = (int)y;
		//long给float
		float f1 = 100000000000000L;
		System.out.println(f1); //1.0E14
		float f2 = 101231242123123L;
		System.out.println(f2); //1.01231238E14 后几位数据丢失了
	}
}
六. 常量

常量使用final定义,变量名需注意要全部大写

final int n = 5; //用final来定义变量
  • 例子
package aaa.bbb;

public class FinalDemo {
	public static void main(String[] args) {
		int m = 5;
		final int N =6;
		m = 10;
		//N = 10; 报错The final local variable n cannot be assigned. 
				//It must be blank and not using a compound assignment
		final double PI = 3.14; //命名是全部大写
		final double MAX_V = 1;
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/905027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存