day3(基础语法)

类型转换

运算中,不同类型的数据先转换为同一类型,然后进行运算day3(基础语法)

 

 

 

浮点数比整数容量高

强制转换:(类型)变量名 高——低

自动转换 :低——高

 int i=128;
 byte b=(byte) i;//强制转换 (类型)变量名 高——低
 System.out.println(i);//128
 System.out.println(b);//-128 内存溢出
 //====================================================
 double d=i;//自动转换 低——高
 System.out.println(d);//128

注意

  1. 不能对布尔值进行转换

  2. 不能把对象转换为不相干的对象

  3. 在把高容量转换到低容量的时候,需要强制转换

  4. 强制转换时注意内存溢出,或者精度问题

     System.out.println((int)23.7);//23  精度问题
     System.out.println((int)-45.78F);//-45 精度问题

举例

 //举例
 char c='a';
 int e=c+1;//自动转换 低——高
 System.out.println(e);
 System.out.println((char)e);//强制转换 高——低
 //===========================================
 //操作比较大的数字的时候,注意内存溢出
 //JDK7新特性,数字之间可以用下划线隔开
 int money=10_0000_0000;
 int years=20;
 int total=money*years;
 long total2=money*years;
 long total3=money*((long)years);
 System.out.println(total);//-1474836480,内存溢出
 System.out.println(total2);//-1474836480 默认是int,转换之前就已经出问题了
 System.out.println(total3);//20000000000 先把一个变量转换为long

变量

  • 变量就是可以变化的量

  • java是一种强类型语言,每个变量都必须声明其类型

  • java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,作用域

  • day3(基础语法)

     

     

     

尽量不要在一行里面定义多个变量

变量作用域

  • 类变量(插入关键词static)

  • 实例变量(无关键词)

  • 局部变量(写在方法里面)

注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型

  • 变量名必须是合法的标识符

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

常量

  • 初始化后不能改变值

  • 常量名一般使用大写字符、

  • day3(基础语法)
 

public class demo06 {​
     //类变量  static 全局可用
     static double salary=3000;
 ​
     //常量 final为修饰符,不存在先后
     static final double PI=3.14;
     //final static double PI=3.14;两者意思一样
 ​
     //还可以定义一些属性:变量
 ​
     //实例变量:从属于对象;如果不进行初始化,会输出这个这个类型的默认值 0 0.0
     //布尔值:默认值是false;除了基本类型,其余类型默认都是null
     String name;
     int age;
 ​
     //main方法
     public static void main(String[] args) {
         //局部变量:只有在方法的大括号里可以使用
         int i=10;//必须声明初始值(赋值)
         System.out.println(i);
 ​
         //实例变量输出
         //变量类型 变量名字=new demo06();
         demo06 demo06 = new demo06();
         System.out.println(demo06.age);//0
         System.out.println(demo06.name);//null
 ​
         //类变量输出
         System.out.println(salary);//3000
 ​
         //常量输出
         System.out.println(PI);//3.14
 ​
    }
 ​
     //其他方法
     public void add(){
 ​
    }
 }

命名规范

  • 所有变量,方法,类名:要做到见名知意

  • 类变量:首字母小写和驼峰原则:(monthSalary)

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

  • 常量:大写字母和下划线:(MAX_VALUE)

  • 类名:首字母大写和驼峰原则:(GoodMan)

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

运算符

  • 算输运算符:+,-,*,/,%(取余),++(自增),--(自减)

  • 赋值运算符:a=b(把b赋值给a)

  • 关系运算符:>,<,>=,<=,==(等于是两个等号),!=(不等于),instanceof

     package operaor;
     ​
     public class Demo01 {
         public static void main(String[] args) {
             //二元运算符
             int a=10;
             int b=20;
             int c=30;
             int d=40;
             int t=3;
     ​
             System.out.println(a+b);
             System.out.println(a-b);
             System.out.println(a*b);
             System.out.println(a/(double)b);//double类型
             System.out.println(a%t);//取余 10/3=3...1
             System.out.println("==============================================");
     ​
             //运算时有long(double)类型时,结果为long(double);其余都为int类型
             long l=12312132132L;
             int i=1234;
             short s=12;
             byte y=8;
     ​
             System.out.println(l+i+s+y);//long
             System.out.println(i+s+y);//int
             System.out.println(s+y);//int
             System.out.println("==============================================");
     ​
             //一元运算符 ++,-- 自增,自减
             int a1=3;
             int b1=a1++;//先赋值 再自增
             //a++ a=a+1
             System.out.println(a1);//4
             //++a a=a+1
             int c1=++a1;//先自增 再赋值
     ​
             System.out.println(a1);//5
             System.out.println(b1);//3
             System.out.println(c1);//5
             System.out.println("==============================================");
     ​
             //关系运算符:true/false
             int e=10;
             int f=20;
     ​
             System.out.println(e>f);//false
             System.out.println(e<f);//true
             System.out.println(e==f);//false
             System.out.println(e!=f);//true
             System.out.println("==============================================");
     ​
             //幂运算
             double pow = Math.pow(2, 3);
     ​
             System.out.println(pow);
     ​
        }
     }
  • 逻辑运算符:&&,||,!

        //与(&&) 或(||) 非(!)
         boolean a=true;
         boolean b=false;
     ​
         System.out.println("a&&b:"+(a&&b));//一假则假,全真才真
         System.out.println("a||b:"+(a||b));//一真则真,全假才假
         System.out.println("!(a&&b):"+(!(a&&b)));//若真则假,若假则真
         System.out.println("=========================================");
     ​
         //短路运算
         int c=5;
         boolean d=(c<4)&&(c++>4);//c<4已经是假,则d肯定为假,所以后面的c++不执行
     ​
         System.out.println(d);//false
         System.out.println(c);//5
     }
  • 位运算符:&,|,^(异或),~(取反),<<,>>,>>>(了解)

     //位运算
     /*
     A=0011 1100
     B=0000 1101
     ---------------------------------------
     A&B=0000 1100//都为1才为1,其余都为0
     A|B=0011 1101//都为0才为0,其余都为1
     A^B=1100 1100//两者相同才为1,不同为0
     ~B=1111 0010//取反
      */
  • 条件运算符:?,:

     //三元运算符 x?y:z
     int score=80;
     String type=score<60?"不及格":"及格";
     System.out.println(type);//及格
     //如果x==true,则结果为y,否则结果为z
  • 扩展赋值运算符:+=,-=,=,/=*

     int a=10;
     int b=20;
     a+=b;//a=a+b
     a-=b;//a=a-b
     System.out.println(a);
  • 拓展:字符串连接符: +

     //字符串连接符  +  ,加法两侧出现String类型,则会将另一边都转换为String类型连接起来
     int a=10;
     int b=20;
     System.out.println(""+a+b);//1020
     System.out.println(a+b+"");//30 
上一篇:T31-DAY3


下一篇:初学py--day3