栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础学习——基本数据类型:

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础学习——基本数据类型:

java是一种强雷型语言,每个变量都必须声明其数据类型。

Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。

基本数据类型分为:数据型———整数类型(byte,short,int,long)和浮点类型(float,double)

                               字符型(char)

                                布尔型(boolean)

引用数据类型:类(class)

                        接口(interface)

                         数组PS:巧妙记忆:除了基本数据类型以外的所有类型都属于引用数据类型,本章重点:基本数据类型

一、数据型

(1)整数类型(byte,short,int,long):

常数:

十进制整数,如:99,-500,0

八进制整数,要求以0开头

十六进制整数,要求0x或者0X开头

二进制:要求0b或者0X开头

变量:

一个字节代表8位数

类型占用存储空间表数范围

byte

1字节-2^7~2^7-1(-128~127)
short2字节-2^15~2^15-1(-32768~32767)
int4字节-2^35~-2^35-1(-2147483648~2147483647)约21亿
long8字节-2^63~2^63-1
public class testVar03 {
    public static void main(String[] args){
        //定义整数类型的变量:
        //给变量赋值的时候,只可以为不同进制的:
        int num1 = 12;//默认情况下赋值就是十进制的情况
        System.out.println(num1);
        int num2 = 012;//前面加上0,这个值就是八进制的
        System.out.println(num2);
        int num3 = 0x12;//前面加上0x或者0X,这个值就是十六进制的
        System.out.println(num3);
        int num4 = 0b10;//前面加上0b或者0B,这个值就是二进制的
        System.out.println(num4);

        //定义byte类型的变量:
        byte b = 126;//定义了一个byte类型的变量,名字叫b,赋值为12
        System.out.println(b);
        //注意:超范围的赋值会报错。
        short s = 30000;
        System.out.println(s);
        int i = 1234;
        System.out.println(i);
        //整数类型默认就是int类型的,所以12345678910是一个int类型的数,对于int类型来说,他超出范围了
        //要想把一个输给long类型变量,那么后面加上L(推荐)或者l就可以了
        //注意:只有这个数超出int类型的范围了后面才加上L,否则无需加上L也可以赋值给long类型

(2)浮点类型(float,double):

常量:

public class testVar04 {
    public static void main (String[] args){
        //浮点类型的常量有两种形式:
        //十进制形式:
        double num1 = 3.14;
        System.out.println(num1);
        //科学计数法形式:
        double num2 = 314E-2;
        System.out.println(num2);

        //

    }
}

变量:

float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型 float类型的数值有一个后缀F或者f,没有后缀F/f的浮点数值默认为double类型。

类型占用存储空间表数范围
float4字节大约士3.402 823 47E+38P(有效位数为6-7位左右)
double8字节 大约士1.797 693 134 862 315 70E+308(有效位数为15-16位左石)

 PS:有效数字指的是从左开始第一个不为0的数到最后一个数

public class testVar04 {
    public static void main (String[] args){     
        //浮点类型的变量:
        //注意:浮点型默认是double类型的,要想将一个double类型的数赋给float类型,必须后面加上F或者f
        float f1 =3.1423456789876F;
        System.out.println(f1);
        //注意:double类型后面可以加D或者d,但是一般都省略不写
        double d1 = 3.1423456789876;
        System.out.println(d1);

        //注意:我们最好不要进行浮点类型的比较:
        float f2 = 0.3F;
        double d2 = 0.3;
        System.out.println(f2==d2);
        



    }
}
二、字符类型(char)

【1】编码和字符集

Unicode :国际通用字符集,融合了目前人类使用的所有字符。为每个字符分配唯一字符码。

推出了UTF标准:

三种编码方案:UTF-8 , UTF-16 , UTF-32

我们最常用的为UTF-8

Java中使用单引号来表示字符常量,字符型在内存中占2个字节。
char类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符

【2】转义字符:

转义符含义Unicode
b退格u0008
n换行u000a
r回车u000b
t制表符u0009
"双引号u0022
'单引号u0027
\反斜杠u005c

【3】ASCll表

 

 【4】Unicode编码表

https://blog.csdn.net/tgvincent/article/details/93884725

代码1

public class textVar05 {
    public static void main(String[] args){
        //定义字符类型的变量:
        char ch1 = 'a';
        System.out.println(ch1);
        char ch2 = 'A';
        System.out.println(ch2);
        char ch3 = '4';
        System.out.println(ch3);
        char ch4 = '中';
        System.out.println(ch4);
        char ch5 = '!';
        System.out.println(ch5);
        //java中无论:字母,数字,符号,中文都是字符类型中的常量,都占2个字节。
        char ch6 = ' ';
        System.out.println(ch6);
        //字符类型:单引号引起来的单个字符
        System.out.println("------------------------");
        
        char ch7 = 'n';
        System.out.println("aaa"+ch7+"bbb");

        System.out.println("aaanbbb");//n换行

        System.out.println("aaaaaaatbbb");//t 制表符

        System.out.println("aaabbbb"); //b 向前退一格

        System.out.println("aaarbbb"); // r将光标到本行开头(回车)

        System.out.println(""java"");
        System.out.println("'java'");
        System.out.println("\java\");// "将双引号原样输出 '将单引号原样输出 \将原样输出

    }

}

代码2

public class textVar06 {
    public static void main (String[] args){
        char ch1 = 'A';
        System.out.println(ch1);//A
        System.out.println(ch1+90);//155
        System.out.println(155-ch1);//90
        //char类型我们看到的样子就是它本身字面常量,但是底层在进行计算的时候,实际上是按照一个码进行计算的。
        //这个码就是ASCII
        //之前说char类型是按照Unicode码表进行存储的(Unicode兼容了ASCII码,Unicode的前128位置ASCII)

        char ch2 = '中';
        System.out.println(ch2);
        System.out.println(ch2+90);//20103
        System.out.println(20103-ch2);//90

        int num1 = (ch2);
        System.out.println(num1);//20013

        char ch = (char)20013;
        System.out.println(ch);

        int num2 = '中';
        char ch5 = 20013;
        System.out.println(ch5);

        //面试题
        char ch6 = '2'+2;
        System.out.println(ch6);//'4'--->4

    }
}
三、布尔类型(boolean)

boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用0或非0的整数替代true和false,这点和C语言不同。boolean 类型用来判断逻辑条件,一般用于程序流程控制。

public class textVar07 {
    public static void main(String[] args){
        //创建一个布尔类型的变量:
        boolean flag1 = true;
        System.out.println(flag1);
        boolean flag2 = false;
        System.out.println(flag2);
        boolean flag3 = 5==9;
        System.out.println(flag3);
        boolean flag4 = 5<9;
        System.out.println(flag4);

    }
}
四、类型转换问题
public class textVar08 {
    public static void main(String[] args){
        //类型转换的两种形式:
        double d = 6;//int-->double  自动类型转换
        System.out.println(d);
        int i = (int)6.5;//double--->int  强制类型转换 (强转)
        System.out.println(i);

        //在同一个表达式中,有多个数据类型转换的时候,应该如何处理:
        
        double d2 = 12+1294L+8.5F+3.81+'a';
        System.out.println(d2);
        
        int i2 = (int)(12+1294L+8.5F+3.81+'a');
        System.out.println(i2);
        
        //以下情形属于特殊情况:
        byte b = 12;
        System.out.println(b);
        //对于byte,short,char类型来说,只要在他们的表述范围中,赋值的时候就不需要进行
        //强转了直接赋值即可。

    }
}

练习习题(final,字符常量,Scanner的使用):

import java.util.Scanner;//形象理解:在java.util下降Scanner拿来用
public class testVar09 {
    public static void main(String[] args){
        //现实功能:求圆的周长和面积
        //【1】提取变量:提取变量,就是为了一劳永逸,以后只要改变变量的值,下面只要用到这个变量的地方,取值也都发生变化了
        //【2】一个变量值被final修饰,这个变量就变成了一个常量,这个常量的值就不可变了
        //     这个常量就是我们所说的字符常量----》pi
        //     约定俗成的规定:字符常量的名字全部大写
        //【3】使用扫描器:Scanner的使用---》注意通过形象的理解去使用

        final double PI = 3.1415926;
        //拿来一个扫描器:
        Scanner sc = new Scanner(System.in);
        //给一个友好型的提示:
        System.out.println("请录入一个半径:");
        //让扫描器扫描键盘录入的int类型的数据:
        int r = sc.nextInt();

        //求周长:
        double c = 2*PI*r;
        System.out.println("周长为:"+c);

        //求面积:
        //pi = 9.29;报错,java: 无法为最终变量pi分配值
        double s = PI*r*r;
        System.out.println("面积为:"+s);
    }
}

练习:加深对Scanner的使用: 

代码:

import java.util.Scanner;
public class textVer10 {
     public static void main(String[] args){
         //键盘录入学生信息:年龄,身高,姓名,性别:
         //键盘输入年龄:(接收int类型数据)
         Scanner sc = new Scanner(System.in);
         System.out.print("请输入年龄:");
         int age = sc.nextInt();
         //键盘输入身高:(接收double类型数据)
         System.out.print("请输入身高:");
         double height = sc.nextDouble();
         //键盘输入姓名:(接收String类型数据---》字符串)
         System.out.print("请输入姓名:");
         String name = sc.next();
         //键盘输入性别:(接收char类型数据)
         System.out.print("请输入性别:");
         String sexStr = sc.next();
         char sex = sexStr.charAt(0);
         //上面两句可以合为一句表示:char sex - sc.next().charAt(0)
         System.out.print("该学生的信息为:姓名是"+name+",年级是:"+age+",身高为:"+height+",性别是:"+sex);

     }
}

 结果:

请输入年龄:18
请输入身高:183.5
请输入姓名:呼呼呼
请输入性别:男
该学生的信息为:姓名是呼呼呼,年级是:18,身高为:183.5,性别是:男

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号