java基本数据类型与运算符

前言

  • 数据类型可以看作是一些模型,我们要用的话就可以调用
  • 要注意变量的作用域,命名规则
  • 运算符多用就行了不要刻意的去记

一.数据类型

1.基本数据类型

  • 整型:int

    • int 变量名 = 初始值;
      代码示例:
          int num =10;//定义一个整型变量
      	System.out.println(num);
      
      /*
      注意事项:
      1. int 表示变量的类型是一个整型
      2. 变量名是变量的标识. 后续都是通过这个名字来使用变量
      3. Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值.
      4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化.
      5. 最后不要忘记分号, 否则会编译失败.
      6. // 表示注释. 注释作为代码的解释说明部分, 不参与编译运行.
      */
      
  • 长整型变量long

    • 1.基本语法格式:
          long 变量名 = 初始值;
      代码示例:
          long num = 10L;//定义一个长整型变量
      	System.out.println(num);
      /*
      注意事项:
      1. 基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long
      2. 初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以.
      3. 使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些.
      */
      
      
  • 浮点型:float double

    • 单精度浮点型变量float

      • float 变量明 = 初始值;
        
        代码示例:
            float num = 1.0f;//要记得加f或F
        	System.out.println(num);
        
    • 双精度浮点型变量double

      • 1.基本语法格式
            double 变量名 = 初始值;
        2.代码示例:
        	double num = 1.0;
        	System.out.println(num);
        
        
  • 字符型:char

    • 1.基本格式
          char 变量名 = 初始值;
      2.代码示例:
          char ch = 'A';
      /*
      1. Java 中使用 单引号 + 单个字母 的形式表示字符字面值.
      2. 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文
      */
      
      
  • 字节类型变量

    • 1.基本格式
          byte 变量名 = 初始值;
      2.代码示例:
          byte valua = 0;
      	System.out.println(value);
      
      /*
      注意事项:
      1. 字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 )
      2. 字节类型和字符类型互不相干
      */
      
  • 短整型short

    • 1.基本语法格式
      	short 变量名 = 初始值;
      2.代码示例:
      	short value = 0;
      	System.out.println(value);
      
      /*
      注意事项:
      1. short 占用 2 个字节, 表示的数据范围是 -32768 -> +32767
      2. 这个表示范围比较小, 一般不推荐使用
      */
      
  • 布尔型:boolean

  • 1.基本语法格式
    	boolean 变量名 = 初始值;
    2.代码示例:
    	boolean value = true;
    	System.out.println(value);
    /*
    注意事项:
    1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
    2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.
    3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定
    */
    

2.基本数据类型转换

  • 在这里插入图片描述

  • 注意:

    • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的
      那种数据类型,然后再进行计算。
    • byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
      boolean类型不能与其它数据类型运算。
    • 当把任何基本数据类型的值和字符串(String)进行连接运算时(+), 基本数据类
      型的值将自动转化为字符串(String)类型。
  • 强制类型转换

    • 自动类型转换的逆过程, 将容量大的数据类型转换为容量小的数据类型。 使
      用时要加上强制转换符: (), 但可能造成精度降低或溢出,格外要注意。
    • 通常, 字符串不能直接转换为基本类型, 但通过基本类型对应的包装类则可
      以实现把字符串转换成基本类型。
    • 如: String a = “56”; int i = Integer.parseInt(a);
    • boolean类型不可以转换为其它的数据类型。

3.引用数据类型

  • String

    • 1.基本语法格式
      	String 变量名 = "初始值";
      2.代码示例:
      	String name = "zhangsan";
      	System.out.println(name);
      /*
      注意事项:
      1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值.
      2. 和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释).
      3. 字符串中的一些特定的不太方便直接表示的字符需要进行转义
      */
      
  • 数组

    • 一维数组
      1.基本语法格式
          int 变量名[] = {初始值1,初始值2...};
      2.代码示例:
          int arry[5]={1,2,3,4,5}//定义了一个整型数组,大小为5
      
      /*
      注意:
      1.数组的下标是从0开始的
      2.数组内的元素不能多于定义的大小
      3.数组可以通过下标找到元素,数组名是首地址
      */
      
      
  • 类(class)

    • 类也是java的一种引用类型

      • 1.基本语法格式
            修饰符 class 类名{
                修饰符 类型 字段1;
                修饰符 类型 字段2;
                修饰符 类型 字段3;
            }
        2.代码示例
        public class Person {
            private String name;//姓名
            private int age;    //年龄
            private String sex;//性别
        }
        

4.常用的转义字符

*在这里插入图片描述

  • 转义字符多用就行

二.变量

1.变量的概念

  • 1.内存中的一个存储区域
    2.该区域的数据可以在同一类型范围内不断变化
    3.变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

  • 变量的作用:用于在内存中保存数据

  • 使用变量注意:

    • Java中每个变量必须先声明,后使用
    • 使用变量名来访问这块区域的数据
    • 变量的作用域:其定义所在的一对{ }内
    • 变量只有在其作用域内才有效
    • 同一个作用域内,不能定义重名的变量
  • 成员变量

    • 实例变量(不以static修饰)
    • 类变量(以static修饰)
  • 局部变量

    • 形参(方法、构造器中定义的变量)
    • 方法局部变量(在方法内定义)
    • 代码块局部变量(在代码块内定义)
  • 注意:成员变量与局部变量异同

    • 同:都有声明周期
    • 异:局部变量除形参外,需要显示初始化
  • 变量命名的

    • 硬性指标:
      • \1. 一个变量名只能包含数字, 字母, 下划线
        \2. 数字不能开头.
        \3. 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量
    • 软性指标:
      • \1. 变量命名要具有描述性, 见名知意.
        \2. 变量名不宜使用拼音(但是不绝对).
        \3. 变量名的词性推荐使用名词.
        \4. 变量命名推荐 小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写

2.常量

  • 1.字面值常量

    • 10 // int 字面值常量(十进制)
      010 // int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8
      0x10 // int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16
      10L // long 字面值常量. 也可以写作 10l (小写的L)
      1.0 // double 字面值常量. 也可以写作 1.0d 或者 1.0D
      1.5e2 // double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2
      1.0f // float 字面值常量, 也可以写作 1.0F
      true // boolen 字面值常量, 同样的还有 false
      'a' // char 字面值常量, 单引号中只能有一个字符
      "abc" // String 字面值常量, 双引号中可以有多个字符.
      
  • 2.fianl关键字修饰的常量

    • final int a =10;
      a= 20;//编译出错. 提示 无法为最终变量a分配值
      //被final修饰的都不能被改变包括(类)
      

三.运算符

1.算术运算符

  • 在这里插入图片描述

  • 实例:实例整数变量A的值为10,变量B的值为20
    public class Test {
      public static void main(String[] args) {
         int a = 10;
         int b = 20;
         int c = 25;
         int d = 25;
         System.out.println("a + b = " + (a + b) );//30
         System.out.println("a - b = " + (a - b) );//-10
         System.out.println("a * b = " + (a * b) );//200
         System.out.println("b / a = " + (b / a) );//2
         System.out.println("b % a = " + (b % a) );//0
         System.out.println("c % a = " + (c % a) );//5
         System.out.println("a++   = " +  (a++) );//10
         System.out.println("a--   = " +  (a--) );//11
         // 查看  d++ 与 ++d 的不同
         System.out.println("d++   = " +  (d++) );//25
         System.out.println("++d   = " +  (++d) );//27
      }
    }
    

2.关系运算符

  • 在这里插入图片描述

  • 实例:
    public class Test {
     
      public static void main(String[] args) {
         int a = 10;
         int b = 20;
         System.out.println("a == b = " + (a == b) );//false
         System.out.println("a != b = " + (a != b) );//true
         System.out.println("a > b = " + (a > b) );//false
         System.out.println("a < b = " + (a < b) );//true
         System.out.println("b >= a = " + (b >= a) );//true
         System.out.println("b <= a = " + (b <= a) );//false
      }
    }
    

3.位运算符

  • 在这里插入图片描述

  • 实例:假设整数变量 A 的值为 60 和变量 B 的值为 13
    public class Test {
      public static void main(String[] args) {
         int a = 60; /* 60 = 0011 1100 */ 
         int b = 13; /* 13 = 0000 1101 */
         int c = 0;
         c = a & b;       /* 12 = 0000 1100 */
         System.out.println("a & b = " + c );
     
         c = a | b;       /* 61 = 0011 1101 */
         System.out.println("a | b = " + c );
     
         c = a ^ b;       /* 49 = 0011 0001 */
         System.out.println("a ^ b = " + c );
     
         c = ~a;          /*-61 = 1100 0011 */
         System.out.println("~a = " + c );
     
         c = a << 2;     /* 240 = 1111 0000 */
         System.out.println("a << 2 = " + c );
     
         c = a >> 2;     /* 15 = 1111 */
         System.out.println("a >> 2  = " + c );
      
         c = a >>> 2;     /* 15 = 0000 1111 */
         System.out.println("a >>> 2 = " + c );
      }
    }     
    

4.逻辑运算符

  • 在这里插入图片描述

  • 实例:逻辑运算符的基本运算,假设布尔变量A为真,变量B为假
        public class Test {
      public static void main(String[] args) {
         boolean a = true;
         boolean b = false;
         System.out.println("a && b = " + (a&&b));//false
         System.out.println("a || b = " + (a||b) );//true
         System.out.println("!(a && b) = " + !(a && b));//true
      }
    }
    
  • 短路逻辑运算符

    • 使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

    • 例:
      public class LuoJi{
          public static void main(String[] args){
              int a = 5;//定义一个变量;
              boolean b = (a<4)&&(a++<10);
              System.out.println("使用短路逻辑运算符的结果为"+b);//false
              System.out.println("a的结果为"+a);//6
          }
      }
      

5.赋值运算符

在这里插入图片描述

  • public class Test {
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int c = 0;
            c = a + b;
            System.out.println("c = a + b = " + c );//30
            c += a ;
            System.out.println("c += a  = " + c );//40
            c -= a ;
            System.out.println("c -= a = " + c );//30
            c *= a ;
            System.out.println("c *= a = " + c );//300
            a = 10;
            c = 15;
            c /= a ;
            System.out.println("c /= a = " + c );//1
            a = 10;
            c = 15;
            c %= a ;
            System.out.println("c %= a  = " + c );//5
            c <<= 2 ;
            System.out.println("c <<= 2 = " + c );//20
            c >>= 2 ;
            System.out.println("c >>= 2 = " + c );//5
            c >>= 2 ;
            System.out.println("c >>= 2 = " + c );//1
            c &= a ;
            System.out.println("c &= a  = " + c );//0
            c ^= a ;
            System.out.println("c ^= a   = " + c );//10
            c |= a ;
            System.out.println("c |= a   = " + c );//10
        }
    }
    

6.其他运算符

  • 条件运算符(?:)

    • 件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量

    • 实例:public class Test {
         public static void main(String[] args){
            int a , b;
            a = 10;
            // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
            b = (a == 1) ? 20 : 30;
            System.out.println( "Value of b is : " +  b );//30
       
            // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
            b = (a == 10) ? 20 : 30;
            System.out.println( "Value of b is : " + b );//20
         }
      }
      
  • instanceof运算符

    • 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)

    • 如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

      • String name = "James";
        boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
        

7.java运算符优先级

  • 在这里插入图片描述

四.进制转换

  • 什么是进制:进制也就是进位计数制,是人为定义的带进位的计数方法。

  • 进制的四种常用表示(整数)

    • 二进制(binary):0,1满2进1,通常以0b或0B开头。
    • 十进制(decimal):0-9,满10进1.
    • 八进制(octal):0-7,满8进1.以数字0开头。
    • 十六进制(hex):0-9以及A-F,满16进1,以0x或0X开头表示,这里A-F不区分大小写。
    • 在这里插入图片描述
  • 二进制补码

    • 二进制的整数有如下三种形式:
      • 原码:直接将一个数值换成二进制数。最高位是符号位
      • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
      • 负数的补码:其反码加1。
    • 计算机以二进制补码的形式保存所有的整数。
      • 正数的原码、反码、补码都相同
      • 负数的补码是其反码+1

运算符中的图片来源于菜鸟教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值