0
点赞
收藏
分享

微信扫一扫

进制 / 基本数据结构 / 数据类型 / 常量变量 / 运算符

正义的杰克船长 2022-01-20 阅读 127
数据结构

计算机进制

1. 计算机存储单元

字节(byte)计算机最小的存储单位——bit(位,比特位)

2.其他的存储单位

  • 1b(字节) = 8 bit
  • 1KB = 1024B
  • 1MB = 1024KB
  • 1GB = 1024MB

3.进制运算
1.十进制 10 12 15

2.二进制 1010 1000,0010 0010
请添加图片描述

数据类型

1.基本数据类型

  • byte(字节型)内存占1字节,8位 范围-128~127

  • short(短整型)内存占2字节,16位 范围-32768~32767

  • int(整型)内存占4字节,32位 范围-2147483648~2147483647

  • long(长整型)内存占8字节,64位
    范围-9223372036854775808~9223372036854775808

  • float(单精度浮点类型)
    float的精度要远远高于 long ,int,short ,byte
    内存占4个字节,32位
    存储数据范围: 1.4E-45 ~ 3.4028235E38

  • double(双精度浮点类型)开发中强烈建议使用double
    内存存贮8个字节,64位
    数据范围:4.9E-324~1.7976931348623157E308
    Double类型建议用来存储分数小数

  • Char(字符类型)
    生活中填写履历表时,填写性别时用来表示
    可存储单个字符,JVM对字符采用Unicode无符号进行编码
    内存存贮空间占2个字节,16位
    存储范围:0~65535范围内的非负数
    字符常量;‘A’ ‘9’ ‘$’ ‘\t’ ‘\n’ ‘\’ ‘’ char类型常量只能写单个字符
    char接收int类型常量赋值不能超出最大的范围
    int整型变量赋值给char类型必须强制类型转化,因为int精度更高

  • boolean(布尔类型)
    回家过年被亲戚问有没有对象 有ture 没有false 懂了把?
    存储空间4个字节
    java中boolean数据类型:数据计算结果只能是(ture)对与(false)否
    是逻辑判断应用的数据类型
    ture和false又被称为布尔类型常量
    标准JVM规范定义java语言中在计算机底层使用int类型存储booean类型数据
    由于JVM实现的不同,处理booean类型底层存储也会有所不同

public class Demo{
    public static void main(String[] args){
        /*整型*/
        //short 存储范围是-32768~32767(2字节)
        short b = 12;
        System.out.println(b);
        //int 存储范围是-2147483648~2147483647(4字节)
        int i = 10;
        System.out.println(i);
        //byte 存储范围是-128-127(1字节)
        byte b = 12;
        System.out.println(b);
        //long 存储范围是-9223372036854775808~9223372036854775808(8字节)
        long l = 15;
        System.out.println(l);
       
        /*浮点型*/
        //float  1.4E-45 ~ 3.4028235E38(4个字节)
        float f  = 3.6f;
        System.out.println(f);
        //double  数据存储范围是4.9E-324~1.7976931348623157E308(8个字节)
        double d = 3.5;
        System.out.println(d)
       
        /*字符型*/
        //char 存储范围是0~65535范围内的非负数(2个字节)
        char c = '男';
        System.out.println(c);
        
        /*布尔型*/
        //boolean 只有true/false两种结果(4个字节)
        boolean b = true;
        System.out.println(b);
    } 
}

2.引用数据类型

String的简单使用

public class StringDemo {
    public static void main(String[] args) {
        String str = "学习";
        System.out.println (str);
    }
}

3. 扩展 转义字符的使用

//使用转义符号输出特殊的字符
System.out.println("输出单引号"+'\'');
System.out.println("输出换行符"+'\n');
System.out.println("输出tab键"+'\t'+"结果");

强制类型转换

1. 自然转换

由低精度向高精度数据类型转换
byte  > short  > int  > long  >  float  >  double
低精度变量 = (低精度数据类型)高精度数据;

         int age =int60.5float money =float500010.38

2. 强制转换

    高精度变量 = (高精度数据类型)低精度数据;

         flo =  (float) dou;

3. 代码练习

float f1 = 3.7f;
int intTestF = (int) f1;
System.out.println (intTestF); //3

double d1 = 1.2;
int intTestD = (int)d1;
System.out.println (intTestD); //1

变量

**可以自定义赋值的量**
  1. 定义格式:
数据类型 变量名  赋值符号   数值
int       i       =        10;

double d = 3.5F;
d = 3.6;
System.out.println(d);

2. 代码演示:

public class VaribleDemo {
    public static void main(String[] args) {
        double d = 3.5F;
        d = 3.6;
        System.out.println(d);

        String str = "兔子";
        str = "兔子15岁";
        System.out.println (str);
    }
}
  

3. 注意事项
如果给final修饰的变量赋值,就会报错,已经变成了常量了。请添加图片描述

final int i = 10;
i = 20;
System.out.println (i);

运算符

1. 算数运算符 :+, - ,、%,++,–*

算数运算符运算规则例子结果
+正号+33
+连接符"我是" + "兔子"我是兔子
+加号1 + 34
-负号-33
-减号4-13
*****乘号3*515
/3/31
%取模10/31
++自增int i = 1; ++i/i++2
自减int i = 1; --i/i–0
  • 代码演示
/*演示操作运算符
 1. +, - ,*、%,++,--
 2. */
public class OperatorDemo {
        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);
            a = 3;
            System.out.println (b % a);

            //演示 ++  --
            System.out.println ("分割线演示后置++——————————————");
            int c = 5;
            c++;
            System.out.println (c); //6
            c--;
            System.out.println (c); //5

            System.out.println ("分割线演示前置++——————————————");
            int d = 5;
            ++d;
            System.out.println (d); //6
            --d;
            System.out.println (d); //5

            System.out.println ("分割线演示前置++与后置++的区别——————————————");
            int f= 10;
            int e = 2;
            int g =++e + f;
            System.out.println (f+e); //13
            System.out.println (g);   //13
        }
    }

注意:前置++和后置++的区别:前置 ++ 再+1在晕眩,后置 ++ 再运算在+1

2. 关系运算符:> >= == != < <=

运算符运算规则例子结果
>大于3>2true
>=等于大于2>=2true
==等于等于(相等于)3==3true
!=不等于1!=2true
<小于3<2false
<=小于等于3<=2false
  • 代码演示
// > >= == != < <=
System.out.println (10 > 20);
System.out.println (10 >= 20);
System.out.println (10 == 20);
System.out.println (10 != 20);
System.out.println (10 < 20);
System.out.println (10 <= 20);

3. 逻辑运算符:& | ! ^ && ||

运算符运算规则例子结果
&逻辑与true & falsefalse
|逻辑或true | falsetrue
!逻辑非!truefalse
^异或true ^ falsefalse
&&短路与true && falsefalse
||短路或false || truetrue
  • 代码演示
boolean b0 = true;
boolean b1 = false;
System.out.println (b0 & b1);  //false
System.out.println (b0 | b1);  //true

System.out.println (!b0 );     //false
System.out.println (b0 ^ b1);  //true

System.out.println (b0 && b1);  //false
System.out.println (b0 || b1);  //true

4. 三元运算符(条件判断)

  • 运算规则
运算规则:boolean?1:2;   前面位true 取值1否则取值2
  • 代码演示
   int i3 = 10;
            int i4 = 20;
            int i5 = i3> i4?5:6;
            System.out.println (i5);  //6  

5. 赋值运算符&字符串连接符+,char码表对应

运算符运算规则例子结果
=赋值int i = 10;10
+=加后赋值int i = 10; i+=2;12
-=减后赋值int i = 10;i -= 2;8
*=乘后赋值*int i =10; i =220
/=除后赋值int i = 10; i/=2;5
%=取余后赋值int i = 10; i %= 3;1
  • 代码演示
public class OperatorDemo2 {
    public static void main(String[] args) {
        int a = 10;
        int b = a + 20;
        System.out.println (b); //30

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

        int c = 20;
        System.out.println (c -= 30); //-10

        int d = 10;
        System.out.println (d *= d);  //100

        int e = 20;
        System.out.println (e %= e); //0

        //byte short
        byte by = 10;
        byte by1 = 20;
        //默认的整型是 int
        byte by2 = (byte)(by + by1);
        System.out.println (by2); //30

        int f  = 10;
        f += 20;
        System.out.println ("这里是int d的加和: " + f); //这里是int d的加和: 30

        //字符串的链接
        String str1 = "我爱";
        String str2  = "兔子";
        System.out.println (str1 + str2); //我爱兔子

        //char
        char ch1 = 'h';
        char ch2 = 's';
        System.out.println (ch1 + ch2); //219
    }
}

6. 位运算符

是将数据在内存中二进制存储按照位运算计算出最终结果
   & 按位与相当于并且(对整型和布尔计算)
   | 按位或相当于或者(对整型和布尔计算)
   ~ 按位非(只对整型计算)
   ^ 按位异或(对整型和布尔计算)

1. & 与运算符

  • 与&运算符说明
两个二进制操作数对应位同为1 结果位 才为1,其余情况为0
  • 与&运算符计算规则
计算规则:

1. 用于boolean表达式计算规则:

                   true & true  结果为true

                    true & false  结果为false

                    false & false  结果为false

  

   2.对整数运算

  如果2个整数对应位都是1 则结果为1, 否则为0

                        11  结果为0

                        10  结果为0

                        01  结果为0

                        00  结果为0
  • 与&运算符基本定义使用demo
public class BinaryCount {
    /*java主方法*/
 public static void main(String[]args){
    int n = 50;
    int m = 60;
    int age = 18;

    boolean bool1 = n > m & ++age == 18;
    System.out.println("计算结果是"+ bool1);
    System.out.println("age计算结果是" + age);

    /*按位与对整数计算*/
     //开发中常用 底层计算的时候用的到
      int a = 7;
      int b = 8;
      int a_b = a&b; // a 与 b 进行底层按位与计算
     System.out.println("a与b按照底层按位与的计算结果是" + a_b);
     //输出a和b在底层二进制形式
     String a_bit = Integer.toBinaryString(a);
     String b_bit = Integer.toBinaryString(b);
     System.out.println(a_bit);//111
     System.out.println(b_bit);//1000

     //7的二进制是  0111
     //8的二进制是  1000
     //按位与对整数运算     0000
 }
}

2. 或 | 运算符

  • 或 | 运算符说明
==两个二进制操作数对应位只要有一个为1 结果位 就为1,其余情况为0
  • 或 | 运算符计算规则
1.用于表达式计算规则:                 

   true | true  结果为true

    true | false  结果为true

    false | false  结果为false

 2.对整数运算

  两个数对于位只要由一个为1则为1,否则为0

                       11  结果为1

                       10  结果为1

                       01  结果为1

                       00  结果为0
  • 或 | 运算符基本定义使用demo
  //运算得到整数
        int n2_n3 = n2|n3;//按位或运算
        System.out.println(n2+"的二进制是"+ Integer.toBinaryString(n2));
        System.out.println(n3+"的二进制是"+ Integer.toBinaryString(n3));
        System.out.println("按位或运算结果是"+n2_n3);

        // 5的二进制是     0101
        // 8的二进制是     1000
        // 按位或对整数运算 1101
    }

}

3. ^ 异或运算符

  • 异或 ^ 运算符说明:
两个二进制操作数对应位相同为0,不同为1
  • 异或 ^ 运算符计算规则
1.用于表达式计算规则:      

对boolean布尔表达式运算(2个 布尔表达式计算结果相同则最终结果是false,否则为truefalse  ^  false  结果为false

          true  ^  true  结果为false

           false  ^  true  结果为true

          true  ^  false  结果为true
  • 异或 ^ 运算符基本定义使用demo
public class BitwiseXor {
    /*JAVA程序主方法*/
    public static void main(String[]args){
        System.out.println(true^true); //结果是false
        System.out.println(false^false);//结果是false
        System.out.println(true^false);//结果是true
        System.out.println(false^true);//结果是true

        System.out.println(5>6^6==7);//结果是false
        System.out.println(!false^false);//结果是true
        System.out.println(true^8==8);//结果是false
        System.out.println((34 > 35 && 2<3)^true);//结果是true

        /*按位异或运算对整型运算*/
        int a= 5;
        int b= 7;
        System.out.println("5的二进制是" + Integer.toBinaryString(a));
        System.out.println("7的二进制是" + Integer.toBinaryString(b));
        System.out.println("5和7的异或二进制计算结果是" + (a^b));

        //5的二进制是       101
        //7的二进制是       111
        //按位异或对整数运算 1101
    }
}

7. 特殊运算符

newprice只用作创建某个引用数据类型的对象
.某对象对属性或方法的引用访问符号
()包围被有限运算的表达式或方法标志
[ ]数组类型数据的标志
instanceof判断某对象或引用是否属于某种类型
  • 使用实例
import java.util.Scanner;

public class EspecialPro {
    /*
    * Java中特殊运算符
    * */

    //编写主方法
    public static void main(String[] args) {  //[] 是数组的标志

        Scanner scan = new Scanner(System.in); //new的作用是创建对象

        System.out.println("请输入一个数"); //这里的 . 符号是个访问符号

        double d =3.5; //此处的 . 表示一个浮点

        d = (600+500)/20; //此处的()表示是一个优先运算的符号

        /*instanceof 用来判断某个对象是否是某个数据类型
        * 如果是属于这个类型则返回true,斗则返回false。
        * */
        boolean bool = scan instanceof java.util.Scanner;
        System.out.println(bool);

    }
}
举报

相关推荐

0 条评论