JAVA的数据类型、变量、常量和运算符

1.数据类型

 

  1.1  8大基本数据类型    

 

byte 1个字节  2^8     [-128,0,127)
short 2个字节  2^16    约3万
int (默认) 4个字节  2^32    约21亿 
long 8个字节  2^64    大于过21亿
float 4个字节  约6位小数
double(默认) 8个字节  约15位小数
char 1个字节   'a'
boolean false true

  1.2  引用数据类型

  •   对象
  •        数组
  •        接口                     

  1.3数据类型转换       

    如果存储多种类型数据进行运算,运算结果的数据类型会以其中最大的为准,若所以运算数据类型均小于int,则结果默认会自动提升为int类型。

 

  • 自动类型提升:从小到大;例如byte----->short---->int-----long

 

    
        byte b=100;
        short s=b;

       运算的数据类型为byte和short 其结果的数据类型为short
       因其小于int,故自动提升其数据类型为int,只能声明Int数据类型进行接收。
        int i=b+s;   

    
    //公司每月y营业收入为10亿,求其一年的营业收入为多少;
    int income=1000000000;
    int month=12;
    注意 此时运算的结果为int 且其值已超Int类型范畴,故在其运算前进行Long的数据类型转换
    long total=(long)income*month;
    System.out.println(total);

 

  • 强制类型转换:从大到小,可能会损失精度;例如int a=97;char c=a;           
      
        int a=97;
        char c= (char) a;
        short s= (short) a;
        byte b= (byte) a;
        System.out.println("c = " + c);
        
        

        float f=3.1234f;
        int i= (int) f;
        System.out.println("i = " + i);

        double d=1.12222333333;
        long l= (long) d;
        System.out.println("l = " + l);

        long l2=22222222222222222l;
        float f2=l2;
        double d2=l2;
        System.out.println("f2 = " + f2);
        System.out.println("d2 = " + d2);        

 

                                                    

2.变量、常量  

  • 变量:在程序运行期间其值可以发生改变,基本数据类型均可以使用。

    

  • 常量:在程序运行期间其值固定不变,被final修饰;一般分为两种:字面常量和自定义常量。

       不论是变量还是常量,均是用来储存单个数据;这里注意的是在存储数据时要先声明数据类型、变量名、赋值在使用。

例如
    int age = 20;
    
    String name = "张三";

家庭地址、身份证不会随意改变
  final String adress="北京市海淀区xxxx";
  final String userId="21000199950525xxxx";

求面积 r=10m;

  final float PI;

  PI = 3.14f;

  area = PI * * r;

  System.out.println("area = " + area);

   注意:java是强类型语言,声明数据类型和存储数据的类型要一致,否则会报错。

 

 

 

3.运算符

 

 

运算符 符号
赋值 a=b
算数 a+b  a-b  a*b   a/b  a%b  乘除模加减
一元 i++、i--: 先运算后赋值  ++i、--i:先赋值后运算
逻辑 &  &&  |   ||   !  ^  boolean
扩展 a+=2   a-=2   a *=2   a/= 2   a%=2
字符串连接  "我"+"爱"+me
条件 <  <=  >  >=  == !=    boolean
三目条件

x>y? a:b;  true为a、false为b

     

    声明赋值
    int n=5;
   int m=n;

  算术运算符
  a=3,b=5,c=a+b;求c。
  int c=a+b;
  System.out.println(c);
  
  int d=b-a;
  System.out.println(d);
今天是2022年2月27日,2月1日是星期二,请问今天是星期几?
  int sumDay=27;
  int weekSum=sumDay+1%7=0;
  所以,今天是星期天;

  a+=2    a=a+2;
a-=2    a=-2;
a *=2   a=a*2;
a/= 2   a=a/2;
a%=2 a=%2; 模是求余数;模谁不大过谁,余数小于除数;若a<除数,则余数等于本身a;


  三目条件运算符
  int score=80;
String num=score>60?"及格":"不及格";
  System.out.println(num);
  结果:及格

  int a,b,c;
  int max=(a>b&&a>c)?a:(b>c?b:c);
  

   求198各个位数之和;1+9+8;

  int n=198;
  int fisrtNum=n/100;
  int secondNum=n%100/10;
  int threeNum=n%10;

  int sumNum=fisrtNum+secondNum+threeNum;

  System.out.println(fisrtNum);
  System.out.println(secondNum);
  System.out.println(threeNum);
  System.out.println(sumNum);


  位运算符:将十进制转换为二进制再对其同位数进行运算,有3种位运算符
1)& 例如3&2
3的二进制---> 11 1 1
---->false 0 ----->true 1 故3&2的二进制为10;转换为十进制为2;
      2的二进制---> 10 0
    2)|例如 3|2
      
3的二进制---> 11 1 1
                              ---->true 1   ----->true 1     故3&2的二进制为11;转换为十进制为3;
      2的二进制---> 10 0
  3) ^ 例如4^2
      3的二进制--->  100    0              0

                              ---->false 0   ----->true 1     故3&2的二进制为1010;转换为十进制为6;
      2的二进制---> 10 0 1

  4)>> <<
8>>2 --->8/2*2
      8>>3 --->8/2*3
4<<3 --->4*2的三次方




    

 

  注意:不论是哪种运算符,顺序如何进行计算,先算括号里的。

 

posted @ 2022-03-02 19:23  姜森尧  阅读(54)  评论(0)    收藏  举报