Java学习笔记 02-Java中的变量和数据类型

变量(variable)

变量的本质

  1. 变量本质 -> 可操作的存储空间空间
    变量名 -> 通过名字操作空间
    数据 -> 变化的量

变量的声明

double a;	//8字节 空间
long b;		//8字节 空间
int c;		//4字节 空间

编写TestVariable.java文件

public class TestVariable {
        
    int a=3;    //成员变量
    ststic int b=4;    //静态变量

	public static void main (String[] arg) {
        //局部变量
		int age = 18;    
		int b;		//只是声明了变量b,没有进行初始化
		b = 0;		//使用之前必须初始化
		int x=0, y=0, z=1;	//一行可以声明多个变量
		System.out.println(age);
		System.out.println(b);
		System.out.println(z);
	}
}

得出运行结果

E:\mycode>javac TestVariable.java

E:\mycode>java TestVariable
18
0
1

变量的分类和作用域

变量有三种类型: 局部变量, 成员变量(实例变量), 静态变量(类变量)

类型声明位置从属于作用域
局部变量方法或语句块内部方法/语句块声明位置开始,直到方法或语句块执行完毕局部变量消失
成员变量类内部, 方法外部对象

对象创建,成员变量也跟着创建;

对象消失,成员变量也跟着消失

静态变量类内部, static修饰

类被加载,静态变量就有效;

类被卸载,静态变量就消失

局部变量(local variable)

public void test() {
    int i;
    int j = i+5;    //    编译出错,变量i还未被初始化
}
public void test() {
    int i;
    i=10;
    int j = i+5;    //    编译正确
}

成员变量(member variable)

数据类型初始值
int0
double0.0
char"\u0000"
booleanfalse

public class Test(){
    int i; 
}

静态变量(Static variable)

使用static定义, 如果不自行初始化,则会自动初始化成该类型的默认值

常量(constant)

用关键词final来定义一个常量,常量一旦被初始化后不能再更改

声明格式: 

final type varName = value;

代码演示

public class TestConstant {
	
	public static void main(String[] args) {
		final double PI = 3.14;	
		//PI = 3.1415;			//	报错,无法为常量再次分配值
        final int MAX_SPEED = 120;    //常量命名全用大写字母,单词之间下划线分隔开
        double r = 4;
        double area = PI*r*r;
        double circle = 2*PI*r;
        System.out.println("面积是" + area);    //面积是50.24
        System.out.println("周长是" + circle);    //周长是25.12

	}
}

一般将1  2  3  'a'  'b'  true  false  "helloworld"等称为字符常量;

使用fina修饰的PI等称为符号常量

总结

1. 所有变量, 方法, 类名 : 见名知义

2. 类成员变量: 首字母小写和驼峰原则: monthSaraly

3. 局部变量: 首字母小写和驼峰原则

4. 常量: 大写字母和下划线: MAX_VALUE

5. 类名: 首字母大写和驼峰原则: Food, GoodFood

6. 方法名: 首字母小写和驼峰原则: runRun()

数据类型

整型

类型占用存储空间
byte1字节
short2字节
int4字节
long8字节

整型常量的表现形式

十进制整数,如1,99,0,-40

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

十六进制整数,要求以0x开头,如0x15

二进制数,要求以0b开头,如0b1110111

public class TestInt {
	
	public static void main (String[] args) {
		int a = 100;	//100	十进制
		int b = 015;	//13		八进制
		int c = 0xff;	//255	十六进制
		int d = 0b11011101;	//221	二进制

        byte e = 50;
        short f = 300;

		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);

		int salary = 30000;	//	
		//int yearsalary = 3000000000;	//超过int范围
		long yearsalary = 3000000000L;	//末尾加L,把整型常量定义为long类型
		System.out.println("你的年薪是"+yearsalary);
	}

}

浮点型

类型占用存储空间
float4字节
double8字节

float被称为单精度类型,尾数精确到7位有效数字

doule被称为双精度类型,精度约是float类型的两倍

浮点型常量的表现形式

十进制数形式, 如3.14,  657.0,  0.315

科学计数法形式,如3.14e0 

浮点型存在舍入误差,数字不能精确表示,不要用于比较

浮点常量默认类型double,改成float可在后面加F

public class TestFloatNumber {
	
	public static void main(String[] args) {
		double d1 = 3.14;
		double d2 = 3.14E2;	//科学计数法  314.0
		float f1 = 1.65F;	//浮点常量的默认类型是double类型,改float需要在后面加F
		System.out.println(d2);

		//浮点数不精确,尽量不要直接比较
		float f2 = 0.1F;
		double d3 = 1.0/10;
		System.out.println(f2==d3);	//false	一个=是赋值,两个==是比较
		
		float f4 = 23456765432L;
		float f5 = f4+1;
		System.out.println(f4==f5);	//true
	}
}

字符型

类型所占存储空间
char4字节

之后所学的String类, 本质是char字符组成的数组

转义字符

转义符

含义Unicode值
\b退格(backspace)\u0008
\n

换行

\u000a
\r回车\u000d
\t制表符(tab)\u0009
\"双引号\u0022
\'单引号\u0027
\\反斜杠\u005c
public class TestChar{
	
	public static void main(String[] args) {
		char c1 = 'a';
		char c2 = '中';
		char c3 = '\u0061';

		System.out.println(c1);	//a
		System.out.println(c2);	//中
		System.out.println(c3);	//a

		//java中字符串不是基本数据类型,而是一个类
		String str = "我爱中国";
		System.out.println(str);    //我爱中国

		//转义字符
		System.out.println("a\nb\nc\nd\ne\nf\ng\\");
		System.out.println("a\tb\tc\td\te\tf\tg");
	}
}

布尔型

类型所占存储空间
boolean1个字节或4个字节

boolean类型有两个数值,true和false, 不可以使用0或非0的整数替代

public class TestBoolean{

	public static void main(String[] args) {
		boolean b1 = true;
		boolean b2 = false;
		
		if(b1){
			System.out.println("b1是true!");	//输出
		}else{
			System.out.println("b1是false!");
		}

		if(b2=true){	//赋值了 应该用==进行比较
			System.out.println("b2是true!");	//输出
		}else{
			System.out.println("b2是false!");
		}
	}
}

  • 41
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值