03java基础知识

标识符和关键字

 

eg:

 public class Hello{
    public static void main(String[] args){
     String name="fd";
       }
}

这里的class就是类名,main就是方法名。(class类,main方法)

  • 所有的标识符都是以字母(A-Z或者a-z),美元符$,或者下划线(_)开始

  • 首字母之后可以使字母(A-Z或者a-z),美元符$,下划线(_)或者任何字符组合

  • 不能使用关键字作为作为变量名或者方法名

  • 标识符是大小写敏感的

  • 可以使用中文作为方法名或者变量名,但是不建议

数据类型

 

  • 基本数据类型(Primitive type)

 public class datatype{
    public static void main(String[] args){
        //八大基本数据类型 
       //整数
        int num01=10;//int的范围是正负20亿
        byte num02=20;//byte的范围是-128-127
        short num03=30;
        long num04=40L;//long类型的数字要在末尾加上L,和short类型的数字区分
        //小数:浮点数
        float num05=3.14F;//单精度浮点数要在末尾加上F,和double类型进行区分
        double num06=6.28;
        //字符
        char name='a';//字符类型只能是单个字符
        char name='国';//字符类型可以是单个中文字符
        char name='ab';//错误,不是单个
        //布尔值,只能表示是非 
       boolean flag01=true; 
       boolean flag02=false;
    }
}
  • 字节

     

类型转换

运算中,不同类型的数据先转化为同一类型,然后才能进行运算

低------------------------------------------------------------->高(优先级)

byte,short,char < int < long < float < double

 public class demo{
    public static void main(String[] args){
        int i=128;
        %byte b=i;%此处会报错,高级不能直接赋给低级,需要进行强制类型转换
        %更需要注意的是int i=128已经超出了byte的数据类型的内存长度(-128-127),强制类型转换后会产生内存溢出
        byte b=(byte)i;
        double c=i;%此处没有问题,低级的可以直接赋值给更高的优先级的数据类型
        %总结上面内容就是,数据类型优先级:高赋值给低要强制转换,低赋值给高可自动转换
        /*注意:
        1.不能对布尔值与其他数据类型进行转换
        2.不能把对象数据类型转换为不相干的数据类型
        3.高优先级转换到低优先级使用强制类型转换,反之则自动转换
        4.转换时可能存在内存溢出或者精度问题 
       */ 
       system.out.ptintln((int)3.14f);%输出结果是3,损失了精度
        char d='a';//%字符变量d存的是'a',这个'a'并不只是一个字符,在内存中它对应着一个ASCII码,                
         //是可以进行加减运算的
        int e=d+1;%低优先级向高优先级可进行自动类型转换
        system.out.ptintln(e);//%打印a+1的ASCII码,98,因为e就是int类型的
        system.out.ptintln((char)e);%高向低强制转换
    }
}
 public class demo{
    public static void main(String[] args){
        //操作比较大的数的时候,注意溢出问题
        //JDK7以后的新特性,数字之间可以用下划线分割
        int money=1_000_000_000;
        int years=20;
        int total01=money*years;//output:-1474936480,计算的时候产生了溢出,int类型的范围大致是±21亿
        long total02=money*years;//output:-1474936480,仍产生溢出
        /*
        两个int类型的数据先计算,然后赋值给total02(long),
        但是仍然溢出,对比上一句发现是计算就出问题了,
        也就是说int*int结果已经溢出了int类型的
        范围,再赋值也是把错误的数据(溢出的数据)给了total02,所以出错。
        */
        long total03=money*((long)years);//先把其中一个变量转换成long数据类型,
        //会把整个表达式的数据范围都提升,计算之前就已经达到精度
    }
}

注意:小写的“l”很容易看成数字“1”,所以使用的时候尽量使用大写的L。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值