zoukankan      html  css  js  c++  java
  • Java基本数据类型

    前言

    当掌握一种或者多种计算机编程语言,甚至外语之后,学习新事物的自信,也随之建成。

    不同的计算机编程语言,都可以帮助程序员实现功能,英语和汉语都可以帮助人类表达思想。

    不要纠结在自然语言或者计算机编程语言,它们本身的不同,要聚焦在我想要实现什么功能? 想要表达什么思想?

    一、变量存在的意义

    1.变量是什么?

    有了域名之后我们就无需反复在浏览器中输入IP地址,有了变量之后,方便我们编程时轻松调用需要的数据。

    变量是给编程过程中使用到的数据标记1个别称,变量一般是动态变化的数据,也可以是静态不变的。

    2.声明变量

    Java是强类型的编程语言,我们要想给数据声明变量,就必须声明数据的类型。

    数据类型 变量名 =值;

    二、Java的基本数据类型

    计算机只认识0和1;

    程序员通过编程语言的语法,告知计算机我输入的数据是什么类型?

    编程语言会根据不同类型选择不同的存储机制,把数据存储到内存中;

    当调用这些数据时,编程语言进行内存寻址,把数据从内存中加载出来;

    那为什么在python中不需要变量名和变量类型声明?

    python是解释型语言,python的变量不需要声明,但是需要初始化,python解释器会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同),其中变量其实通过一个标记调用内存中的值,而变量名就是这个标记的名称,python可以通过直接赋值初始化让一个变量拥有内存和值(电脑可以直接理解)。
    对比于编译型语言Java,解释器语言Python的优势在于,解释器帮你做了很多事;

    比如说动态分配内存在Python中可以直接给a赋值成整形,浮点型,字符型等等。

    Java有以下几种数据类型;

    1.整数型

    整数类型可以帮助我们在计算机中执行数学运算。

    在Java中可以使用byte、int、short、long表示不同大小范围的整数。

    byte:      占8位,  1个字节,可表示   -128~127之间的整数。

    short:     占16位,2个字节,可表示   -32768~32767之间的整数。

    int:         占32位,4个字节,可表示   -21亿~21亿之间的整数。

    long        占64位,8个字节,可表示  -9,223,372,036,854,775,808(-2^63)之间的整数

    package var;
    
    import sun.security.acl.WorldGroupImpl;
    
    public class Var4 {
        public static void main(String[] args) {
            byte English_score = 100;             //byte
            short total_score = 660;              //short
            int Chinese_population = 130000000;   //int
            long world_population = 6400000000L;  //long
            System.out.printf("英语分数: %d 高考分数:%d 中国人口:%d 世界人口:%d
    ", English_score, total_score, Chinese_population, world_population);
        }
    }

     整型的运算操作

    package var;
    
    public class Var1 {
        public static void main(String[] args) {
            // 先声明1个变量
            int a1 = 10;
            System.out.println(a1);
            a1 = 20;
            System.out.println(a1);
            int a = 10;
            int b = 20;
            System.out.println(a + b);
            System.out.println(a - b);
            System.out.println(a * b);
            System.out.println(a / b);//如果运算两端都是int,结果还是int类型
            System.out.println(a % b); //取余
            System.out.println(10 % 3);
    
        }
    
    }

    2.浮点型

    double类型操作和整数基本一样,2个double类型计算得出的结果都是double类型。

    在Java中可以使用float和double这2种数据类型表示浮点数;

    float类型的浮点数        占32位, 最多可保留小数点后面的8位;

    double类型的浮点数    占64位,最多保留小数点后面的17位;

    package var;
    
    import sun.security.acl.WorldGroupImpl;
    
    public class Var4 {
        public static void main(String[] args) {
            //float类型的浮点数占32位,最多可保留小数点后8位
            float a=0.123456789123456789f;
            System.out.println(a);
            //double类型的浮点数占64位,最多保留小数点后面的17位;
            double b=0.123456789123456789;
            System.out.println(b);
        }
    }

     浮点型的运算操作

    package var;
    
    public class Var2 {
        public static void main(String[] args) {
            //声明double类型的变量:=表示赋值
            double price = 1.25;
            price += 0.15;
            System.out.println(price);
            price -= 0.01;
            System.out.println(price);
            //double类型计算得到的都是double类型
            double total = price * 3;
            System.out.println(total); //4.17
            System.out.println(price / 100);//0.0139
            System.out.println(price % 2);
    
        }
    }

    3.boolean 布尔值

    我们使用boolean类型保存1种状态,这1种状态要么是 true 要么是false。

    布尔类型主要用做条件判断,进而对流程控制。

    package var;
    
    public class Var3 {
        public static void main(String[] args) {
            double incomes = 1000;
            double costs = 20000;
            System.out.println(incomes > costs);   //false:收入大于花销?
            System.out.println(incomes < costs);   //true 收入小于花销?
            System.out.println(incomes == costs);  //false收入等于花销吗?
            System.out.println(incomes != costs);  //true收入不等于花销吗?
        }
    }

    4.char 字符

    单一的文字符号就是字符,每个字符在内存中占16位;

    package var;
    
    import sun.security.acl.WorldGroupImpl;
    
    public class Var4 {
        public static void main(String[] args) {
            char a = '中';
            char b = 'a';
            System.out.println(a);
            System.out.println(b);
        }
    }

    5.String 字符串

    把多个字符串起来=字符串

    package var;
    
    public class Var4 {
        public static void main(String[] args) {
            String name1 = "Martin";
            String name2 = "Morgen";
            System.out.println(1 + name1 + name2);
            int a = 1, b = 2;
            System.out.println("a + b = " + a + b);         //a + b = 12
            System.out.println("a + b = " + (a + b));       //a + b = 3
        }
    }

    6.基本数据类型之间的转换

     根据Java基本数据类型占用内存大小排序,可以把基本类型排序为以下顺序;

    byte-->short,char-->int--->long--->float--->double

    小数据类型转换成大数据类型,这个过程是安全的;

    大数据类型转换成小数据类型,这个过程可能会出现问题,必须要强制转换;

    基本数据类型强制转换的语法如下:

    (转换后的数据类型)变量

    package var;
    
    import sun.security.acl.WorldGroupImpl;
    
    public class Var4 {
        public static void main(String[] args) {
            int a = 10;
            long b = a;
            System.out.println(b);  //小数据转大数据是安全的
            long c = 10;
    //        int d =c;        //大数据转小数据是不安全有风险的,必须强制转换
            int d = (int) c;
            System.out.println(d);
            long c1 = 1000000000000L;
            int d1 = (int) c1;   //大数据转小数据出现内存溢出,程序不可控了
            System.out.println(d1);  //-727379968
        }
    }

    7.基本数据类型之间的运算

    Java基本数据类型进行运算时会遵循一下规则;

    A.相同数据类型之间

    相同数据类型之间运算,得到的结果一定还是这个数据类型;

    int + int =int;

    B.不同数据类型之间

    首先,把小的数据类型自动转换成大的数据类型,再进行运算,得出的结果一定是大的数据类型;

    int + int =long;

    C.特殊的byte、short、char

    由于byte、short、char占用的位数少,可表示的数字范围有限,

    所以当它们进行运算之后的结果可能会需要更大的内存去存储;

    为了避免运算造成内存溢出,我们就需要使用比byte、short、char更大的数据类型来存储运算后的结果;

    byte + byte = int; 结果至少是int;

    package var;
    
    import sun.security.acl.WorldGroupImpl;
    
    public class Var4 {
        public static void main(String[] args) {
            byte a = 100;
            byte b = 120;
    //    byte c =a+b;   //byte无法表示a+b的和
            int c = a + b;
            System.out.println(c);
        }
    }

    三、使用Java基本数据类型

    程序=数据结构+算法,所以任何语言都要支持我们输入各种类型的信息数据。

    import java.util.Scanner;
    
    public class Student{
        public static void main(String[] args){
            //键盘录入学生信息:姓名、年龄、身高、和性别
            String greeting="
    ------欢迎来到清花大学------
    ";
            System.out.println(greeting);
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入姓名: ");
            String name= sc.next();
            System.out.print("请输入性别: ");
            char charGender=sc.next().charAt(0);
            System.out.print("请输入年龄: ");
            int age=sc.nextInt();
            System.out.print("请输入身高: ");
            double heigh=sc.nextDouble();
            System.out.printf("该学生的姓名为:%s,性别:%c,年龄:%d,身高:%f
    ",name,charGender,age,heigh);
            
        }
        
    }

     

    参考

  • 相关阅读:
    Redis和MySQL的结合方案
    Java-CyclicBarrier的简单样例
    第十话-模板方法模式
    Codeforces 19D Points 线段树+set
    操作系统: 二级文件夹文件系统的实现(c/c++语言)
    mongodb数据库的启动和停止
    XML,HTML,XHTML
    android之ViewStub的使用
    教你实现语音识别(基于科大讯飞)
    android通过代码判断手机是否root
  • 原文地址:https://www.cnblogs.com/sss4/p/15410973.html
Copyright © 2011-2022 走看看