java基础之数据类型篇

   计算机的基本作用就是运算,运算就需要数据,整数,小数,一连串的字符,单个字符等等都是数据!不同的数据有不同的数据类型,java中定义了许多的数据类型,生活中的数据都能在这里找到匹配。下面上海java培训小编介绍下常用的java数据类型。

数据类型 说明 举例
int 整型 用于存储整数,比如,学员人数,天数、小时数
double 双精度浮点型 用于存储带小数点的数字,比如,商品价格
char 字符型 用于存储单个字符,如性别男或者女
String 字符串型 用于存储一串字符,比如:员工姓名、产品型号

    不同的数据在存储时所需要的空间各不相同,例如,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转载请注明!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值