Java 变量与数据类型(一)

数据类型初阶

Java 定义了基本数据类型、引用数据类型和自定义数据类型。 8种基本数据类型和引用数据类型种String。

Java栈,PC寄存器,本地方法栈,堆,方法区和运行常量池

JVM调优浅谈

虚拟机的内部结构

Java语言不能直接处理和控制寄存器。

Java语言处理的是栈空间和堆空间。

Java虚拟机为每一个运行在内存中的Java程序都分配相应的栈空间和堆空间。

栈空间

栈空间存储效率高 仅次于寄存器,栈中的数据是按“先进后出” 的方式管理。

栈控件存储空间较小,不能存放大量的数据。

JVM将基本类型的数据存放在栈空间。

堆空间:

存取数据的效率很低。

数据存放的位置随机分配。

堆空间存储数据的空间大,能存放大容量的数据。

基本数据类型

扫描二维码关注公众号,回复: 11598470 查看本文章
类型 占用空间 取值范围
byte(字节型) 1字节 -128~127(2^7=128)                                    
short(短整型) 2字节 -2^16~2^16-1(65536~65535)
int(整型) 4字节 -2^31~2^31-1(2147483648~2147483647)
long(长整型) 8字节 -9223372036854776000~9223372036854776000(-2^63~2^63-1)
float(单精度) 4字节 -3.4028235*10^38~3.4028235*10^38-1
double(双精度) 8字节 -1.797693*10^308-1~1.79769313*10^308
char(字符型) 2字节 0~62235(2^16-1)
boolean(布尔型) 1或4字节 false、true

1字节=8bit:Byte.SIZE=8 bit

short(短整型):Short.SIZE=16 bit

int(整型):Integer.SIZE=32 bit

long(长整型):Long.SIZE=64 bit

float(单精度):Float.SIZE=32 bit

double(双精度):Double.SIZE = 64 bit

char(字符型):Char.SIZE= 8 bit

为什么定义和使用变量

1、定义变量:

变量:就是程序运行过程中值可以改变的量。([访问修饰符] 数据类型 变量名 [=初始值])

常量:就是程序运行过程中值不可以改变的量。([访问修饰符] final  数据类型 常量名称 = 值)

常量名称必须大写、有关键字final、先声明后使用、可声明时赋值或使用前任何时间赋值、只能赋值一次。

全局常量可以不手动赋值,系统会初始化这些全局常量的值。局部常量必须赋值,否则使用时编译报错。

字面量:Java的变量和常量中存放的具体的数据成为字面量。

整型字面量:1、2、3、4、5

字符串字面量:"a"、"b"、"c"、"张三"、"李四"

2、使用变量:

计算机的高级语言普遍使用变量来管理内存中的存储数据。

高级语言不使用内存地址来表示存储数据(如果用内存地址来表示存储数据,非常抽象,难以理解),要用变量名来表示存储数据,变量名和内存中的地址对应。

.变量管理基本数据类型:

.变量管理引用类型的数据

变量的命名、定义和初始化

1、首字母是英文字母、$或下划线,由字母、数字、下划线组成;

2、变量的命名遵循见名知义的原则。

3、Java 变量名建议不用中文

4、变量名首字母建议不用大写字母。(类名、接口名用大写字母开头)

5、用驼峰命名法命名多个单词组成的变量名(例如:sumScore)

6、变量命名不用使用Java关键字

.每个变量必须属于一种数据类型

byte score;//保存单科分数

short age;//保存年龄

int sumScore;//保存总分

long fileSize;//保存文件长度

float x,y;//单精度浮点类型,用来表示屏幕上一个点的活动坐标。

double result;//保存浮点类型运算的结果

char sex;//保存性别

boolean isContinue;//表示是否继续

String name; //表示人的姓名

.变量的初始化

变量定义以后要赋值(即变量的初始化),

等号(=)右边的数据存储到左边变量的内存占用中,

等号右边的数据可以是数据,也可以是运算,

age=23;

score=70+5;

i=10/5;

result=Math.pow(2,5)+3.5;

sex='男';

isContinue=true;

name=“张”+“飞’;

用变量简化计算

class Untitled {
	public static void main(String[] args) {
		System.out.println(Math.round(10*(Math.sqrt(20)+Math.sqrt(10))/(Math.sqrt(20)-Math.sqrt(10))));
	}
}

优化后的编码:

class Untitled {
	public static void main(String[] args) {
		double sqrt20=Math.sqrt(20);//将20的平方根保存在sqrt20中
		double sqrt10=Math.sqrt(10);//将10的平方根保存在sqrt10中
		double result=(sqrt20+sqrt10)/(sqrt20-sqrt10);
		result=Math.round(result*10)/10.0;
		System.out.println(result);
	}
}

 

猜你喜欢

转载自blog.csdn.net/u013491829/article/details/106310691