• 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。

     

     

    自学java,请多多指教!
  • 相关阅读:
    extjs store 设置额外参数刷新数据
    springsecurity oauth2sso 客户端单点登陆
    extjs store定义 通过ajax访问json数据
    maven deploy异常
    spring security authenticated与fullyAuthenticated的区别
    extjs 部署时动态切换上下文路径
    npm install异常error code EPERM
    包子问题 (背包,找规律?)
    结账问题 (一点点的数学知识)(蓝桥杯)
    倍数问题 (倍数》余数 // 思路的转换问题)(蓝桥杯)
  • 原文地址:https://www.cnblogs.com/fanfada/p/13697769.html
Copyright © 2020-2023  润新知