int 类型占内存4个字节,long 类型占内存 8个字节
在此简单写一个加法算数的例子,思路:
1、根据之前Hello world的主函数写法,写出主函数
2、在主函数内定义三个int类型变量a,b,c
3、设置c=a+b
4、输出字符c
代码如下:
//作者:李俊挥
//功能:在控制台进行计算
//日期:2013.11.28
public class Calculation
{
//主函数
public static void main(String args[])
{
int a,b,c;
a=10;
b=20;
c=a+b;
System.out.println(c);
}
}
//end 代码结束
JAVA 基本数据类型 四大类型
整数类型
☆整数类型可以表示一个整数,常用的整数类型有:
byte,short,int,long
☆它们有什么区别吗?
主要区别是 数据大小范围,如下:
byte 一个字节 -128 到 127=2^7-1
short 两个字节 -32768 到 32767=2^15-1
int 四个字节 -2147483648 到 2147483647=2^31-1
long 八个字节 -2^63 到 2^63-1
小数(浮点)类型
☆小数类型可以表示一个小数,常用的小数(浮点类型)有:
float,double
布尔类型
☆布尔类型可以表示 真 或者 假,类型是
boolean
比如:boolean spbool=true;
字符类型
☆字符类型可以表示 单个字符,字符类型是char
☆多个字符则是字符串,字符类型是 String
☆思考:
int test1=’a’+’b’;
char test2=’a’+’b’;
char test3=’中’;
思考题的分析:
第一题,根据结果为int类型,所以应该是要根据ACII码的值进行计算的。记得a大概是31,b大概是32。具体结果可以根据程序进行判定。
第二题,由于char类型是单个字符,如果两个字符进行相加,应该是根据保存的内存相关来得出答案。因为单个字符为8个字节,a+b为16个字节,那么多出来的8个字节应该会被抛弃。即b会丢失,无法保存。所以答案应该是a。具体结果要根据程序进行判定。
第三题,跟第二题类型,char的保存应该是8个字节,而中文字符占16个字节,应该得出的结果是前8个字节。
以下根据分析,编写相关代码求出答案,如下:
//作者:李俊挥
//功能:根据代码得出思考题答案
//日期:2013.11.28
public class question
{
//主函数
public static void main(String args[])
{
int test1='a'+'b';
char test2='a'+'b';
char test3='中';
System.out.println("test1="+test1);
System.out.println("test2="+test2);
System.out.println("test3="+test3);
}
}
//end 代码结束
可以从结果分析出,刚才的思路还是有误的。char的内存保存字节并不是1个字节,而是2个字节。所以能够保存“中”字。test2是因为a+b字符无法对应显示ACII值,所以为 ?
数据类型的转换
其中分为两种 自动转换 和 强制转换
自动转换
数据类型可以自动从低精度——》高精度
例如:int a=1.2;
double b=3;
强制转换
数据类型从高精度——》低精度
例如:int a=(int)1.2
以下编写代码进行结果确认下,是否a=1。代码如下:
//作者:李俊挥
//功能:根据代码得出高精度强制转换为低精度的结果
//日期:2013.11.28
public class queren
{
//主函数
public static void main(String args[])
{
int a=(int)1.4;
System.out.println("a="+a);
}
}
//end
注意:
☆数据类型之间的转换有一个精度的问题,而精度的排序如下:
byte < short < int < long < float < double
☆在java中,小数默认是double。如果是定义float类型,需要在后面添加字符f。如下:
float a=3.4f;
double a=3.4;