计算机的基本作用就是运算,运算就需要数据,整数,小数,一连串的字符,单个字符等等都是数据!不同的数据有不同的数据类型,java中定义了许多的数据类型,生活中的数据都能在这里找到匹配。下面上海java培训小编介绍下常用的java数据类型。
不同的数据在存储时所需要的空间各不相同,例如,int类型的数值要占四个字节,而double类型数值占八个字节,因此,不同类型的数据就需要用不同大小的内存空间来存储。其中,int、double、char都是java定义的关键字。
赋值运算符
我们经常用到“=”,例如:int money = 1000; //存储本金
我们使用“=”将数值1000放入变量存储空间中,这个我们并不陌生的“=”就称为赋值运算符。例如:
double height = 17.5;
int weight = 78;
下面举个例子:
学员王浩的java成绩是80分,学员张萌的java成绩与王浩的相同,输出张萌的成绩。
public class OperatorDemo{
public static void main(String[] args){
int wangScore = 80; //王浩成绩
int zhangScore; //张萌成绩
zhangScore = wangScore;
System.out.println("张萌的成绩是:" +zhangScore );
}
}
由以上例子可以知道,“=”可以将某个数值赋给变量,或是将某个表达式(例如wangScore)的值赋给变量。表达式就是符号(如加号、减号)与操作数(如b,3等)的组合。例如:
int b;
int a = (b+3)*(b-1);
算术运算符
算术,很小的时候我们就知道了,加减乘除。那么如何通过编程让计算机完成算术运算呢?java中提供的运算功能的就是算术运算符,它使用数值操作数进行数学计算。常用的运算符有+-*/%分别对应加减乘除取余。下面就使用java提供的算术运算符来解决一个简单的问题。
问题:从控制台输入学员王浩三门课程的成绩,编写程序实现:java课和SQL课的分数之差;三门课的平均分。
import java.util.Scanner;
public class ScoreStat{
public static void main(){
Scanner input = new Scanner(System.in);
System.out.print("STB的成绩是:");
int stb = input.nextInt(); //STB分数
System.out.print("java的成绩是:");
int java = input.nextInt(); //java分数
System.out.print("SQL的成绩是:");
int sql = input.nextInt(); //SQL分数
int diffen; //分数差
double avg; //平均分
System.out.println("------------------------------");
System.out.println("STB\tJava\tSQL");
System.out.println("stb+"\t"+java+"\t"+sql");
System.out.println("------------------------------");
diffen = java - sql; //计算java课和SQL课的成绩差
System.out.println("java和sql的成绩差:"+diffen);
avg = (stb+java+sql)/3;//计算平均分
System.out.println("3门课的平均分是:"+avg);
}
}
以上就是所有的代码了,大家可能有的地方不是很理解,现在我们来分析下,
Scanner input = new Scanner(System.in);
int stb = input.nextInt();
这两行代码的作用就是通过键盘的输入得到STB的成绩。这是java提供的从控制台获取键盘输入功能,获取的是一个整型的变量,因此调用nextInt()方法。如果获取的是字符型的变量,需要调用的是next()方法,要调用这个功能,必须在java源码的的第一行写上import java.util.Scanner;或者import java.util.*;这里大家记住就行,后面慢慢讲。
这里讲两个特殊而且有用的运算符自加运算符”++“和自减运算符”--“。不像别的算术运算符,运算时需要两个操作数,比如”5+3“,”++“和”--“仅仅需要一个操作数。例如:
int num1 = 3;
int num2 = 2;
num1++;
num2--;
这里”num1++“等价于”num1=num1+1“,"num2-"等价于”num2=num2-1“。
类型转换
果遇到这样的问题:某班第一次考试平均分是81.29分,第二次比第一次增加2分,第二次的平均分是多少?
有时候我们会遇到这样的情况,必须将一个int数据类型的变量与一个double类型的相加。那么不同类型的能进行运算吗?运算的结果又是什么类型呢?
下面我就说说如何进行数据转换。
自动数据类型的转换
我们先用地代码输出文章开始的问题 :
public class AutoTypeChange{
public static 。。。。。。{
double firstAvg = 81.29; //第一次平均分
double secondAvg; //第二次平均分
int rise = 2; //增长的分数
secondAvg = firstAvg + rise;//自动类型转换
System。。。("第二次的平均分是:"+ secondAvg);//显示第二次的平均分
}
}
强制数据类型转换
而事实上,自动类型转换并非所有情况下都有效。如果不满足上述条件,比如在必要时必须将double型变量赋值给一个int型变量时,这种该如何进行转换呢?这时系统就不会完成自动类型转换了。下面看一个问题:
去年iphone4s手机所占市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?
计算方法简单,原有的市场份额加上增长的市场份额便是现在所占的市场份额。因此,可以声明一个int变量before来存储去年的市场份额,一个double型变量rise存储增长的部分。但是如果直接将这两个变量相加,然后直接将计算结果赋给一个int型变量now会出现问题吗?哈哈,试试就知道会报错了,类型不匹配,无法转换!
public class TypeChange{
public static void main(String[] arges){
int before = 20;
double rise = 9.8;
int now = before + (int)rise;
System.out.println("新的市场份额是:"+now);
}
}
得出的结果是29,根据类型提升规则,表达式(before+rise)的值应该是double型的,但是最后的结果却要转成int,赋给int类型变量now。由于不能进行放大转换,因此必须进行显示的强制类型转换。方法就是在变量前加上括号,括号中的类型就是你要强制转换成的类型。。比如说:
double d = 34.5634;
int b = (int)d;
不同的数据在存储时所需要的空间各不相同,例如,int类型的数值要占四个字节,而double类型数值占八个字节,因此,不同类型的数据就需要用不同大小的内存空间来存储。其中,int、double、char都是java定义的关键字。
赋值运算符
我们经常用到“=”,例如:int money = 1000; //存储本金
我们使用“=”将数值1000放入变量存储空间中,这个我们并不陌生的“=”就称为赋值运算符。例如:
double height = 17.5;
int weight = 78;
下面举个例子:
学员王浩的java成绩是80分,学员张萌的java成绩与王浩的相同,输出张萌的成绩。
public class OperatorDemo{
public static void main(String[] args){
int wangScore = 80; //王浩成绩
int zhangScore; //张萌成绩
zhangScore = wangScore;
System.out.println("张萌的成绩是:" +zhangScore );
}
}
由以上例子可以知道,“=”可以将某个数值赋给变量,或是将某个表达式(例如wangScore)的值赋给变量。表达式就是符号(如加号、减号)与操作数(如b,3等)的组合。例如:
int b;
int a = (b+3)*(b-1);
算术运算符
算术,很小的时候我们就知道了,加减乘除。那么如何通过编程让计算机完成算术运算呢?java中提供的运算功能的就是算术运算符,它使用数值操作数进行数学计算。常用的运算符有+-*/%分别对应加减乘除取余。下面就使用java提供的算术运算符来解决一个简单的问题。
问题:从控制台输入学员王浩三门课程的成绩,编写程序实现:java课和SQL课的分数之差;三门课的平均分。
import java.util.Scanner;
public class ScoreStat{
public static void main(){
Scanner input = new Scanner(System.in);
System.out.print("STB的成绩是:");
int stb = input.nextInt(); //STB分数
System.out.print("java的成绩是:");
int java = input.nextInt(); //java分数
System.out.print("SQL的成绩是:");
int sql = input.nextInt(); //SQL分数
int diffen; //分数差
double avg; //平均分
System.out.println("------------------------------");
System.out.println("STB\tJava\tSQL");
System.out.println("stb+"\t"+java+"\t"+sql");
System.out.println("------------------------------");
diffen = java - sql; //计算java课和SQL课的成绩差
System.out.println("java和sql的成绩差:"+diffen);
avg = (stb+java+sql)/3;//计算平均分
System.out.println("3门课的平均分是:"+avg);
}
}
以上就是所有的代码了,大家可能有的地方不是很理解,现在我们来分析下,
Scanner input = new Scanner(System.in);
int stb = input.nextInt();
这两行代码的作用就是通过键盘的输入得到STB的成绩。这是java提供的从控制台获取键盘输入功能,获取的是一个整型的变量,因此调用nextInt()方法。如果获取的是字符型的变量,需要调用的是next()方法,要调用这个功能,必须在java源码的的第一行写上import java.util.Scanner;或者import java.util.*;这里大家记住就行,后面慢慢讲。
这里讲两个特殊而且有用的运算符自加运算符”++“和自减运算符”--“。不像别的算术运算符,运算时需要两个操作数,比如”5+3“,”++“和”--“仅仅需要一个操作数。例如:
int num1 = 3;
int num2 = 2;
num1++;
num2--;
这里”num1++“等价于”num1=num1+1“,"num2-"等价于”num2=num2-1“。
类型转换
果遇到这样的问题:某班第一次考试平均分是81.29分,第二次比第一次增加2分,第二次的平均分是多少?
有时候我们会遇到这样的情况,必须将一个int数据类型的变量与一个double类型的相加。那么不同类型的能进行运算吗?运算的结果又是什么类型呢?
下面我就说说如何进行数据转换。
自动数据类型的转换
我们先用地代码输出文章开始的问题 :
public class AutoTypeChange{
public static 。。。。。。{
double firstAvg = 81.29; //第一次平均分
double secondAvg; //第二次平均分
int rise = 2; //增长的分数
secondAvg = firstAvg + rise;//自动类型转换
System。。。("第二次的平均分是:"+ secondAvg);//显示第二次的平均分
}
}
强制数据类型转换
而事实上,自动类型转换并非所有情况下都有效。如果不满足上述条件,比如在必要时必须将double型变量赋值给一个int型变量时,这种该如何进行转换呢?这时系统就不会完成自动类型转换了。下面看一个问题:
去年iphone4s手机所占市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?
计算方法简单,原有的市场份额加上增长的市场份额便是现在所占的市场份额。因此,可以声明一个int变量before来存储去年的市场份额,一个double型变量rise存储增长的部分。但是如果直接将这两个变量相加,然后直接将计算结果赋给一个int型变量now会出现问题吗?哈哈,试试就知道会报错了,类型不匹配,无法转换!
public class TypeChange{
public static void main(String[] arges){
int before = 20;
double rise = 9.8;
int now = before + (int)rise;
System.out.println("新的市场份额是:"+now);
}
}
得出的结果是29,根据类型提升规则,表达式(before+rise)的值应该是double型的,但是最后的结果却要转成int,赋给int类型变量now。由于不能进行放大转换,因此必须进行显示的强制类型转换。方法就是在变量前加上括号,括号中的类型就是你要强制转换成的类型。。比如说:
double d = 34.5634;
int b = (int)d;
运行后的值是34,损失了精度,可以形象的称为缩小转换。
原文地址:http://www.shaccp.net/base/java/601.html转载请注明!