Java基础

Java基础

冯.诺依曼体系结构

 

特性

高可用,高性能,高并发

基本环境

JDK: Java development kit(Java开发工具)

JRE:Java runtime environment (Java运行时环境)

JVM:Java virtual machine(Java虚拟机)

 

编译过程

 

compile 编译

数据类型

 

 

最好完全避免使用浮点数进行比较

        public static void test3(){
       float i1 = 46546343354135f;
       float i2 = i1 + 1;

       System.out.println(i1 == i2);//true 不一样的值比较结果却为true

       float i3 = 0.1f;
       double i4 = 1.0 / 10;

       System.out.println(i3 == i4);//false,一样的值比较结果却为false

       char c0 = 'a';
       System.out.println((int) c0);//97
       char c = '\u0061'; //0061是十六进制即十进制的97,
       System.out.println(c);//a,字符的本质就是数字

//       for (int i = 1; i <= 128; i++) {
//           if (i%10 == 0) {
//               System.out.println();
//           }
//           System.out.print((char)i + " ");
//       }
       System.out.println("--------------------------------------");

       long t1=6541351313155655L;
       int t2=158;
       short t3=30;
       byte t4=40;

        System.out.println(t1+t2+t3+t4);//long
        System.out.println(t2+t3+t4);//int
        System.out.println(t3+t4);//int,没有long类型相加如(byte+short)结果都为int
  }

 

自增和短路运算

    public static void test2(){

       int a=4;

       int b=a++;
       //a++,先赋值后自增,相当于执行完代码后 再进行a=a+1;语句
       System.out.println(a);//5
       //++a,先自增后赋值,相当于执行代码前先执行a=a+1;语句
       int c=++a;
       System.out.println(a);//6
       System.out.println(b);//4
       System.out.println(c);//6

       System.out.println(Math.pow(a, b));//1296.0,幂运算


       boolean d=c<4&&(++c>5);//短路运算,当前c等于6,如果“&&”前面c<4==false,则不会执行后面的++c>5则c依旧等于6否则c等于7
       System.out.println(d);//false
       System.out.println(c);//6
  }

位运算

 public static void test4(){
       /*
       A=0011 1100
       B=0000 1101
       ---------------------------------
       A&B=0000 1100 与运算,同为1才等于1
       A|B=0011 1101   或运算,同为0才等于0
       A^B=0011 0001   亦或运算,相同为0,不同为一
       ~B=1111 0010   取反

       问:2*8怎么运算最快

       0000 0000 0
       0000 0001 1
       0000 0010 2
       0000 0100 4
       0000 1000 8
       0001 0000 16
       0010 0000 32
        */
       System.out.println(2<<3);//0000 0010:2,0001 0000:8,位运算符<<左移,将2左移三位
       System.out.println(3<<2);//0011:3,1100:12
       System.out.println(7<<2);//0000 0111:7,0001 1100:28
  }

 

字符串连接符

public static void test5(){
       int a=10;
       int b=20;

       System.out.println("a:"+a);//a:10
       System.out.println("b:"+b);//b:20

       System.out.println(a+b);//30

       System.out.println(" "+a+b);// 1020 String在前面或导致后面的+变成字符串连接符
       System.out.println(a+b+" ");// 30

  }

 

posted on 2020-08-03 17:01  门之钥  阅读(298)  评论(0)    收藏  举报