美文网首页程序员
002-标识符,变量,数据类型,数据类型的转换,运算符

002-标识符,变量,数据类型,数据类型的转换,运算符

作者: Ktry | 来源:发表于2020-03-15 23:10 被阅读0次

变量

程序的都是运行在内存中的,程序中数据在内存中都拥有独立的内存地址。
因为内存地址不好记忆?所以就使用变量
变量就是数据在内存中的内存地址的表示。

如何使用变量

java是强类型语言,在java中的严格区分数据类型

1、声明变量(在内存中申请一块地址) 
    语法格式:   数据类型  变量名;
                int     a;

2、给变量赋值(将数据放入申请的内存中)   注意:值要与数据类型匹配
    语法格式:   变量名 =  值 ;
                a = 10;
3、使用变量
    a = a + 10;
    System.out.println(a);

代码演示

public class Demo1{    
    public static void main(String[] args){
        
            //1、声明变量
            int a;
            //2、变量赋值
            a = 102;
            //3、使用变量
            a = a + 10;
            System.out.println(a);
        
            //变量的定义的简写方式
            int b = 10;
            b = b + 10;
            System.out.println(b);  
    }    
}

变量名(标识符)的命名规则

  1. 标识符只能由数字、字母、下划线、美元$符号四个部分组成(可以用中文不要用)
  2. 标识符不能用数字开头
  3. 标识符不能使用java的关键字和保留字
  4. 标识符要见名知意
  5. 使用驼峰命名法(两个以上单词组成) 小驼峰(方法名、变量名) bigData 大驼峰 BigData(类名)

数据类型

引用数据类型

  • 数组
  • 接口

基本数据类型(8种)

  • 整数型

    byte short int long

类型 字节数 取值范围
byte 1字节 -2^7 ~ 2^7-1
short 2字节 -2^15 ~ 2^15-1
int 4字节 -2^31 ~ 2^31-1
long 8字节 -2^63 ~ 2^63-1
  • 浮点型
类型 字节数 取值范围 小数点位数
float 4字节 ±3.4E+38 7位
double 8字节 ±1.7E+308 16位
  • 字符型
类型 字节数 取值范围
char 2字节 0~65535
  • 布尔型
类型 字节数 取值范围
boolean 1字节 true、false

注意:

  1. 在java中定义任意一个整数默认都会被当做是int类型(所以在定义long类型数据的时候加上L作为标记)
  2. 在java中定义任意一个小数默认都会被当做是double类型(所以在定义float类型数据的时候加上F作为标记)
  3. 数据类型所占字节数与取值范围无关
  4. char、byte、short类型在参加计算之前,会将自己的类型提升为int类型

数据类型的转换

  • 自动(隐式)类型转换
  • 强制(显式)类型转换

代码演示

public class Demo3{

    public static void main(String[] args){
        //自动类型转换
        /*
        long i = 1000;
        System.out.println(i);

        //强制类型转换    (类型)
        float f = (float)1.2;
        System.out.println(f);

        */
        /*
            总结:
            如果等号右边的类型比左边的类型要范围小就会发生自动类型转换
            小转大
            如果等号右边的类型比左边的类型要范围大就要发生强制类型转换(否则会报错)
            大转小        

            byte    short    int     long     float    double

                    char                     
            boolean类型在java中不参与任何的数据类型转换    


            强制类型转换会发生数据的丢失
            如果是浮点型转换成整数型, 小数点以后的数据都会丢失

            大类型强转成小的类型,见图            
        */
        /*
        整数与字符型互转
        int i = 98;
        char c = (char)i;
        System.out.println(c);// 结果 b        

        char c = 'a';
        int i = c;
        System.out.println(i); // 结果97        
        */
        //整数与浮点型互转    
        /*
        int i = 98;
        double d = i;
        System.out.println(d);//结果98.0

        //直接砍小数点以后的数据
        double d = 1.9;
        int i = (int)d;
        System.out.println(i);//结果 1
        */

        byte b1 = 100;
        byte b2 = 100;         
        byte b5 = (byte)(b1+b2);
        System.out.println(b3); //结果-56        
    }

}

总结:如果等号右边的类型比左边的类型要范围小就会发生自动类型转换 小转大 如果等号右边的类型比左边的类型要范围大就要发生强制类型转换(否则会报错) 大转小
基本数据类型大小范围

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

boolean类型在java中不参与任何的数据类型转换

强制类型转换会发生数据的丢失

​ 如果是浮点型转换成整数型, 小数点以后的数据都会丢失

​ 如果是大类型强转成小的类型,见图

运算符

算术运算符 + - * / % ++ --

关系运算符 > < >= <= == !=

赋值运算符 = += -= *= /= %=

逻辑运算符 && || !

位运算符(了解) & | ~ << >>

三目运算符

代码演示

public class Demo4{

    public static void main(String[] args){
        /*
        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);
        System.out.println(a%b);

        //String 类型   字符串要用双引号扩起来
        String name = "cxk";
        System.out.println(name);


        int a =10;
        int b =20;
        System.out.println(a+b+"a+b的结果为");//30a+b的结果为
        System.out.println("a+b的结果为"+a+b);//a+b的结果为1020
        System.out.println(3+5+"哈哈"+1+2);//8哈哈12

        int a =10;
        int b =20;
        String c = "a+b的结果为"+(a+b);

        int a = 10;
        //a++;// a = a + 1;
        System.out.println(a++);//结果 10    a=11
        System.out.println(++a);//结果 12

        int x = 10;   int y = 12;
                x=9      y =13      x=10  y=12
        int z = --x + y++    +   x++ - --y;   z?  x?  y?    
                9   + 12     +   9   - 12


        */


        /*
            总结
            整数与整数计算结果为整数
            整数与浮点数计算结果为浮点数
            +号可以当数据计算,也可以作为字符串的连接
            任何类型与字符串拼接之后的结果都是字符串类型
            ++  表示自身加1   
            ++在前,先加1再使用  ++ 在后,先使用再加1
            --  表示自身减1

        */

    }

}

代码演示

public class Demo5{
    public static void main(String[] args){

        /*
            int a = 10;
            int b = 20;
            System.out.println(a>b);
            System.out.println(a<b);
            System.out.println(a==b);
            总结:
            关系运算符的结果为boolean类型
            等值判断要使用==

            int a = 10;
            a += 10;//  a = a + 10;
            System.out.println(a);    //20    
            a%=20; // a = a % 20;
            System.out.println(a);  //0        

            short s1 = 10;
            short s2 = 20;
            s1 = s1 + s2; ?  错误,因为s1和s2在参加计算之前会提升为int类型,
            s1 += s2; ?      正确,+=将s1+s2的结果内部做强转,强转成short再赋给s1
            short s1 = 10;
            short s2 = 20;
            //s1 = s1 + s2; 
            s1 += s2; //s1 = s1 + s2;
            System.out.println(s1);


            逻辑运算符的符号两都应该是boolean类型或者boolean类型表达式
            逻辑运算符的结果也是boolean类型的

            ||  只要有一个结果为true,最终的结果就为true
            &&  只要有一个结果为false,最终的结果就为false
            !  取反,如果是true,取反就为false.如果是false,取反就为true

            && & || | 都可以被用作逻辑运算,且结果一样的。

            && ||   短路与(如果表达式中,有一个为false就不会往下再执行了)
                    短路或(如果表达式中,有一个为true就不会往下再执行了)
            & |     无论结果如何都会执行完整个表达式


            int a = 10;
            int b = 20;
            //boolean boo = a > 10 || b < 30;
            //boolean boo = a > 10 && b < 30;
            boolean boo = !(a > 10 && b < 30);
            System.out.println(boo);

            int a = 10;
            int b = 20;
            //boolean boo = ++a > 10 || b-- < 30;
            boolean boo = a++ > 10 & b-- < 30;
            //boolean boo = !(a > 10 && b < 30);
            //System.out.println(boo);
            System.out.println(a);
            System.out.println(b);
        */

        /* 
             &  按位与    按位计算,同为1结果为1,否则为0
             10 & 20  = ?
             0    1    0    1    0
             1  0   1   0    0
             -----------------------
             0    0    0    0    0

             |  按位或   按位计算,同为0结果为0,否则为1
             12 | 19 = ?
             0    1    1    0    0
             1  0      0   1     1
             -----------------------
             1    1   1    1    1

             ^  按位亦或  按位计算,相同为0,不同为1
             19^21 = ?
             1  0      0   1     1
             1    0    1    0    1
             -----------------------
             0    0    1    1    0             

             ~  按位取反    相反值-1
             ~12              
             << 左移 
             12 << 2
             00001100
             00110000             

             >> 右移
             12 >> 2    
             00001100
             00000011

            System.out.println(10&20);//结果 0
            System.out.println(12|19);//结果 31
            System.out.println(19^21);//结果 6
            System.out.println(~12);//结果 -13
            System.out.println(12 << 2);//结果 48
            System.out.println(12 >> 2);//结果 3


            如何求得2的三次方?
            00000010
            00001000

            System.out.println(2<<2);
            System.out.println(2*2*2);

            三目运算符
            语法:      boolean类型表达式  ?  结果1 : 结果2; 
            如果表达式的结果为true,那么就是结果1,否则就是结果2


            int age = 12;
            String s =  age > 18 ? "能上网":"回家呆着";

            System.out.println(s);
        */



    }
}

简单的人机交互

代码实现

import java.util.Scanner;
public class Demo6{
    public static void main(String[] args){

        /*
            1、创建一个Scanner对象
            2、引入Scanner类
            3、使用的Scanner对象的方法

        */
        Scanner sc = new Scanner(System.in);        

        System.out.println("请输入一个姓名");
        String name = sc.next();
        System.out.println("姓名为:"+name);
        System.out.println("请输入一个年龄");
        int age = sc.nextInt();
        System.out.println("年龄为:"+age);
        System.out.println("请输入一个成绩");
        double score = sc.nextDouble();
        System.out.println("分数为:"+score);

        //sc.nextChar()//没有这样的方法
    }    
}

相关文章

  • Java 学习目录

    入门程序 注释 关键字 标识符 常量 变量和数据类型 数据类型转换 ASCII编码 运算符 方法入门 JShell...

  • Python学习记录

    变量、运算符与数据类型 注释: 运算符 变量和赋值 数据类型与转换

  • JS基础

    JavaScript概述 、 JavaScript基础语法 、 变量和常量 、 数据类型 数据类型转换 、 运算符...

  • JavaSE之基础

    三、基础 目录:注释,标识符,关键字、数据类型、类型转换、变量,常量、运算符、包机制,JavaDoc 1.注释 新...

  • Python基础语法了解一下(一)

    数据类型 容器类型 强制类型转换 标识符 变量赋值 数据类型 Base Types: integer, float...

  • Java语言基础

    Java主类结构基本数据类型变量与常量运算符数据类型转换

  • 前端(js)

    js基本语法 字面量和变量 标识符 数据类型 一元运算符

  • Java day02 运算符

    代码小谈 数据类型的转换不同类型的变量可以在一起运算。 数据类型转换方式 运算符 1、算术运算符 ++和--使用规...

  • JS 里的数据类型转换

    一、数据类型转换 JavaScript 中,变量可以赋予任何类型的值。但是运算符对数据类型是有要求的,如果运算符发...

  • 002-标识符,变量,数据类型,数据类型的转换,运算符

    变量 如何使用变量 代码演示 变量名(标识符)的命名规则 标识符只能由数字、字母、下划线、美元$符号四个部分组成(...

网友评论

    本文标题:002-标识符,变量,数据类型,数据类型的转换,运算符

    本文链接:https://www.haomeiwen.com/subject/tvviehtx.html