变量和数据类型

来源:互联网 发布:测试网络端口命令 编辑:程序博客网 时间:2024/05/17 07:07
给变量赋值有两种方式
1,先声明后赋值
public class VarDemo{
public static void main(String[]args){
int number;
number=1;
System.out,println(number);
}
}
2,声明的同时做初始化
public class VarDemo{
public static void main(String[]args){
int Data1=10;
System.out,println(Data1);
}
}

注意:
1,不能只声明而不作初始化,这样编译会报错。也就是方法中所声明的变量必须初始化后才能使用
2,不能同时声明两个或两个以上的变量
int Data2,Data3,Data4=10  这么写是错误的(×)
3,声明变量不能用连等号
int Data3=Data4=Data5=100   这么写也是错误的(×)
这里可以这么写
int Data3=1,Data4=5,Data5=10   这种写法是正确的(√)
4,不能声明同名变量,即同一个变量只能声明一次
5,Java关键字不能用作变量名
6,变量名区分大小写

变量的声明、定义、赋值与初始化的区别
声明:向编译器说明一个变量,这个行为是不分配内存空间的
定义:声明变量的同时也为变量分配了空间
赋值:是在编译器为变量分配了内存空间的动作发生之后的某个时刻,变量的值被刷新的行为,也就是存储空间被改写
初始化:我不知道%>_<%感觉和定义有点像,这个地方有点混淆,日后查一下资料


Java数据类型

Java语言是强类型语言
对每一种数据都定义了具体的数据类型
在内存中分配了不同大小的内存空间(固定的,与平台无关)
在Java中,一旦为变量声明了一个具体的数据类型,则在运行过程中,他的数据类型不能被改变(那后面的类型转换是怎么回事?)
(在C语言中,数据类型的内存空间可能与平台有关,比如”int“在32位系统中占用4个字节,但在16位系统中占用2个字节)

数据类型的分类



JVM(Java虚拟机)
栈内存:调用方法时,方法中声明的变量所在的内存部分,一般为一些基本类型的数据
堆内存:new出来的对象所在的内存部分,一般为引用类型的数据
方法区:静态变量,常量,类的信息

一些基本数据类型



Java中字节最大的数据类型为长整型long和双精度浮点型double,都为8个字节。
数的范围:byte<short(char)<inr<long<float<double
单精度浮点型 float 的结构为:符号位,指数部分,小数部分,所以它虽然和整型 int 同占4个字节,但因为结构不同,所以 float 能表示的取值范围比 int 大很多。
//char字符型,单个字符必须用单引号括起来
char c1='A';
在Java中,字符char类型使用的是unicode编码。而且char只能接收一个字符,char'abc'是错误的。
ASCII码(American Standard Code for Information Interchange。美国信息交换标准代码是一种用于信息交换的美国标准代码。7位字符集广泛用于代表标准美国键盘上的字符或符号。通过将这些字符使用的值标准化,ASCII允许计算机和计算机程序交换信息。ASCII字符集是与ANSI字符集中的前面128个(0-127)字符相同。
ISO-8859-1编码:它是用8位字符来表示256种字符,他不仅兼容全部的ASCII编码并且还扩展了ASCII编码
中国的编码方式:gb2312,收录六千多个汉字,gbk编码,收录两万多个汉字。
Unicode编码(又称统一码,万国码):为了解决传统的字符编码的局限性而产生的,它为每种语言中的每一个字符都设定了统一并且唯一的二进制编码,以满足跨语言跨平台进行文本转换的要求,unicode包括UTF-8、UTF-16、UTF-32三种,Java中的char数据类型采用的是unicode编码中的UTF-16,范围为16进制,所以Java中的一个字符占用两个字节(1byte=8bit),我们常见的'\u"代表的含义就是unicode编码的意思。

Java对于整数有三种不同的表现形式
十进制:0-9,满10进1
八进制:0-7,满8进1
十六进制:0-9,A-F,满16进1

负数的二进制表现形式:对应的二进制取反加一(和我们数字电路中的求补码一样一样的)

两种基本类型转换
自动类型转换(隐式转换):在某种条件下,系统自动完成类型转换。自动类型转换应满足两个条件
1,两种类型兼容(比如数字与数字之间)
2,目标类型大于源类型(比如float转换为double类型)
示例代码:
public class VarDemo{
public static void main(String[]args){
int i=1;
double d=i;
System.out,println(d);
}
}

强制类型转换(显式转换):在一定条件下,程序员手动完成类型转换。强制类型转换应满足两个条件
1,两种类型兼容(比如数字与数字之间)
2,目标类型大于源类型(比如float转换为double类型)
示例代码:
public class VarDemo{
public static void main(String[]args){
double d=10.0;
int i=(int)d;
System.out,println(i);
}
}

强制类型转换会丢失精度。
0 0
原创粉丝点击