04java基础知识

变量

  • 类变量

  • 实例变量

  • 局部变量

     public class Demo{
         //类变量 static
         static double money=3000//3000默认类型是int,double的优先级高,直自动转换
         //类变量从属于Demo类,会随着Demo类存在和消失
         //============================================================================
         //实例变量,在方法的外面,在类(Demo)的里面,从属于对象(类Demo),通过这个类(Demo)才能使用实例变量,级别较高
         String name;
         int age;//实例变量可以不用初始化,可直接使用
         //实例变量如果不进行初始化,变量储存这个类型的默认值
         //所有的数值类型的默认值都是0(整数),0.0(小数),布尔值默认值是false,除了基本类型,其余数据类型的默认值都是null(String类型的默认值就是       //(null)    
         //============================================================================
         //main方法,局部变量
         public static void main(String[] args){
             //方法里面的变量是局部变量,作用域只有这个(main)方法,使用之前必须声明和初始化值
             int i=10;//此处必须赋初值,否则下面就不能输出
             System.out.println(i);
             //变量类型 变量名=new Demo()
             Demo  demo=new Demo();//使用类里面的实例变量,首先要把它的类拿过来,就是new一下,定义一个Demo类型的变量demo
             System.out.println(demo.age);
             
             //类变量
             System.out.println(money);//类变量可以直接输出
        }
     }

    常量

 public class Demo1{
     //static和final都是修饰符。修饰符不存在先后顺序
     static final double PI=3.14159;//加了static就变成了类常量,可直接在方法里面使用
     //final static double PI=3.14159;
     public static void main(String[] args){
         System.out.ptintln(PI);
    }
 }

变量的命名规范

  • 所有变量、方法和类名要做到“见名知意”

  • 类成员变量:首字母小写和驼峰原则:除了第一个单词以外,后面单词的首字母大写,eg:monthSalary

  • 局部变量:首字母小写和驼峰原则

  • 常量:所有字母大写,多个单词使用下划线隔开,eg:MAX_VALUE

  • 类名:首字母大写和驼峰原则,eg:Man,IronMan

  • 方法名:首字母小写和驼峰原则,eg:run(),runRun();

  •  

 

运算符

 

IDEA快捷键:Ctrl+D复制上一行到下一行

算术运算符:

  • 注意算术运算过程中,由于数据类型运算产生的运算错误

 public class Demo{
     public static void main(String[] args){
         int a=10;
         int b=20;
         System.out.println(a/b);//这里输出的结果是0,因为10/20=0.5,int类型运算之后还是int类型,所以直接就把0.5的小数位舍去了。
         System.out.println(a/(double)b);//只用把其中一个运算项强制转换成浮点型即可。
    }
 }
 
  • 程序实例

 public class Demo{
     public static void main(String[] args){
         long a=10;
         int b=10;
         short c=10;
         byte d=1;
         System.out.println(a+b+c+d);//注意:基本运算中有一个数据类型是long,那么运算结果就是long类型
         System.out.println(b+c+d);//如果没有long类型的那么操作结果就是int类型
         System.out.println(c+d);
    }
 }
  • 总结以上现象就是,基本运算中如果有一个是高优先级的数据类型,那么运算结果就是这个高优先级的数据类型,总之就是以最高的优先级为准


 

关系运算符

 public class Demo{
     public static void main(String[] args){
        //关系运算符返回的结果只有:正确true,错误false,所以要用布尔值表示
         int a=10;
         int b=20;
         int c=15;
         System.out.println(a>b);//输出结果是:true
         System.out.println(a<b);//false
         System.out.println(a==b);//false
         System.out.println(a!=b);//true
         System.out.println(c%a);//取余%,也叫模运算, 15/10=1....5,所以输出结果就是5
    }
 }

自增++、自减--

++,--是一元运算符,只用一个变量即可操作

 public class Demo{
     public static void main(String[] args){
         int a=1;
         int b=a++;//++在变量后面,就是先执行赋值(=)运算,然后再执行自加运算
         System.out.println(a);//所以此时输出的,b的值是1,a的值是2
         int c=++a;//++在变量前面,就是先执行自加运算,然后再执行赋值(=)运算
         System.out.println(a);//此时输出的a的值是3
         System.out.println(b);//此时输出的b的值是1
         System.out.println(c);//此时输出的a的值是3
         //同样,--操作同理
         //在java中没有幂运算符,而是使用专门的Math类完成数学计算
         double pow=Math.pow(2,3);//使用Math类里面的pow函数进行次方的计算
         System.out.println(pow);
    }
 }

逻辑运算符

 public class Demo{
     public static void main(String[] args){
         //与或非
         boolean a=true;
         boolean b=false;
         System.out.println("a&&b:"+(a&&b));//双引号里面的内容是直接输出,使用加号+表示和后面的内容连在一起,(a&&b)运算要使用括号,不然会报错
         System.out.println("a||b:"+(a||b));
         System.out.println("!(a&&b):"+!(a&&b));//逻辑非就是把逻辑与取反
         //短路现象
         /*
         我们知道a&&b的结果肯定是false,但是b&&a的结果是多少?
         当程序在执行b&&a的时候,因为b=false,那么不管后面是真是假,逻辑与的结果肯定是假,所以程序直接就不在执行后面的语句,直接输出false,如下:
         */
         System.out.println("a&&b:"+(a&&b));
    }
 }

位运算

 public class Demo{
     public static void main(String[] args){
         /*位运算:按位与、或、非
         A=0011 0110
         B=1010 0011
         A&B=0010 0010
         A|B=1011 0111
         A^B=1001 0101//异或:相同为零,不同为一
         ~B=0101 1100
         右移>>   左移<<
         //计算2*8=16=2*2*2*2
         0000 0000     0
         0000 0001     1
         0000 0010     2
         0000 0011     3
         0000 0100     4
         0000 1000     8
         0001 0000     16
         观察发现,二进制数最低位的1每向左移一位,十进制数就增大二倍
         那么,左移<< *2.右移>> /2
         */
    }
 }

扩展赋值运算符

 public class Demo{
     public static void main(String[] args){
        int a=1;
        int b=2;
        a+=b;//a=a+b;
        a-=b;//a=a-b;
        //字符串连接符   +
        System.out.prnitln(""+a+b);
        //此时的输出结果是1020,因为java的规则中,加号运算符任何一端出现了字符串类型(String),输出结果会自动转换成字符串类型并连接在一起
        System.out.println(a+b+"");
        //此时输出的是30,why?这跟上面的不冲突,涉及到运算先后顺序问题,这里是String类型字符串在后面,实际上先进行a+b运算,然后再跟""进行拼接
    }
 }

三元运算符

 public class Demo{
     public static void main(String[] args){
         //x ? y : z
         //如果x==true,返回结果是y,如果x==false,返回结果是z
         int score=95;
         String type=score>60? "pass" : "reject"
         System.out.println(type);//输出结果:pass
    }
 }

如何在一个project中建立多个package

 

 

自学java,请多多指教!
原文地址:https://www.cnblogs.com/fanfada/p/13702192.html