类型转换

运算中,不同类型的数据先转换为同一类型,然后进行运算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(基础语法)_变量名_02

     

     

     

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

变量作用域

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

  • 实例变量(无关键词)

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

注意事项

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

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

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

常量

  • 初始化后不能改变值

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

 

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