javaSE从零开始04_java的基础语法

Java的基础语法

1.注释,标识符,关键字
2.数据类型
3.类型转换
4.变量常量
5.运算符(Operator)
6.包机制,JavaDoc
1.注释,标识符,关键字

  • 注释是一个非常好的习惯,注释不会被执行,是给人看的。平时写代码一定要注意规范

    • 单行 //

    • 多行 /* 多行注释 */

    • 文档 javaDoc:文档注释

      • /** 
        *
        *
        */
        
  • 标识符

    • 什么是标识符

      • 凡是可以由自己命名的地方都称为标识符。
        例如,对于常量、变量、函数、语句块、类、项目等都需要一个名字,这些我们都统统称为标识符。

      • 注意:标识符大小写是敏感的(强类型语言)

        • 1.标识符有字母、数字、_(下划线)、$所组成,其中不能以数字开头,不能用Java中的保留字(关键字)
        • 2.标识符采用有意义的简单命名
        • 3." " 不 要 在 代 码 中 出 现 。 ( 是 由 于 在 后 面 内 部 类 中 , 编 译 后 会 出 现 "不要在代码中出现。(是由于在后面内部类中,编译后会出现 "符号)
      • 命名规范(驼峰命名法)

        • 类名和接口名:每个单词的首字母,其余为小写。(大驼峰)
        • 方法名:第二个单词起的首字母为大写,其余全为小写。(小驼峰)
        • 常量名:基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。
2.数据类型

语言类型
  • 强类型语言

    • 要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用
  • 弱类型语言

Java数据类型
  • 基本类型

    • byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

      short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

      int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

      long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

      float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

      double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

      boolean:只有true和false两个取值。

      char:16位,存储Unicode码,用单引号赋值。

    • 什么是字节?

      • 位:计算机内部最小的存储单位,11001100是一个八位二进制数。

      • 字节:是计算机中数据处理的基本单位,习惯上使用B来表示。

      • 1B:=8bit

      • 字符:是指计算机中使用的字母数字符号。

      • 1B=8b 1bit表示一位

      • 1Byte表示一个字节 1B=8b

      • 1024B=1KB

      • 1024KB=1M

      • 1024M=1G

  • 引用类型

    • 接口
    • 数组
  • 面试扩展**

    • 整数扩展 :进制 二进制 十进制 八进制 十六进制 0-9 A-F

      • int i=10;						10
        int i2=010;  八进制			  8
        int i3=0X10;   十六进制			  16
        
    • 浮点数扩展: 银行业务怎么表示?关于钱【BigDecimal一个工具类帮助解决】

      • float 有限 离散 舍入误差 大约 接近但是不等于

        • 最好完全避免使用浮点数进行比较
        一个例子
        float f =0.1f  //0.1
        double d=1./10d	//0.1
        
        System.out.println(f==b);   ====false
        
        float n1=2132132132123213211f;
        float n2=n1+1;
        System.out.println(n1==n2);   ====true
        
    • 字符扩展 制表符 String空间

      • //强制数据类型转换
               char c1='a';
               char c2='中';
          
               System.out.println(c1);
               System.out.println((int)c1);
               System.out.println(c2);
               System.out.println((int)c2);
          
               //所有的字符本质还是数字
               //编码问题 Unicode 2字节 65535  Excel 只有65536=2十六次方
               //U0000 UFFFF
          
               char c3='\u0061';
               System.out.println(c3);//a
          
        //转义字符   \t制表符  \n换行
               System.out.println("Hello\tWorld");
               
        //String的空间指向问题   (对象,内存级别)
               String sa=new String("HelloWorld");
               String sb=new String("HelloWorld");
               System.out.println(sa==sb);  //false
          
               String sc="HelloWorld";
               String sd="HelloWorld";
               System.out.println(sc==sd);   //true
               
         //布尔值扩展
               boolean flag=true;
               if (flag==true){}
               if (flag){}//表示相同的含义  老手
               //Less is more 代码需要精简易读       
        
3.类型转换

  • 由于java是强类型语言,所以要进行有些运算到时候,需要用到类型转换。

    • 低====高

      byte,short,char,–>int,–>long,–>float,–>double

    • //强制转换=====》(类型)变量名   高--低
              int i=128;
              byte b= (byte) i;  //【范围只有127到-128,造成了内存溢出】
              System.out.println(b);//[结果为-128????]
      自动转换=====》   低--高
      
    • 注意:

       /*注意:
              1.不能对布尔值进行转换
              2.不能把对象类型转换为不相干的类型
              3.在把高容量转换到低容量的时候,强制转换
              4.转换的时候可能存在内存溢出,或者精度的问题
       */
              System.out.println((int)23.7);//===23
              System.out.println((int)-45.89f);//===45精度丢失
      
              char c='a';
              int d=c+1;
              System.out.println(d);//===98
              System.out.println((char)d);//=====b
              
              
      //操作大数的时候注意操作溢出问题
      //JDK7新特性,数字之间可以用下划线分割
              int money=10_0000_0000;
              int years=20;
              int total=money*years;
              System.out.println(total);//====-1474836480【内存溢出】
              long total2=money*years;//默认是int,转换之前已经存在问题
      
              //解决方案
              long total3=money*((long)years);//先把一个数转换为long
              System.out.println(total3);//====20000000000【正确执行,首先将运算部分转换】
            
      
4.变量常量

  • 变量

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

    • 注意

      • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
      • 变量名必须是合法的标识符
      • 变量声明是一条完整的语句,因此每一个声明必须以分号结束。
    • 变量类型:

      • public class Demo03 {
        
        //实例变量  :从属于对象【通过类去使用】
            
            String name;
            int age;
        
        //类变量  static  随着类一起出现一起消失
            
            static double salary=2500;//不用New就可以调用
        
            //main方法
            public static void main(String[] args) {
        
                //调用实例对象
                //变量类型  变量名字
                Demo03 demo03=new Demo03();
                System.out.println(demo03.name);//===null  输出了默认值
                System.out.println(demo03.age);//====0  输出了默认值
                //【布尔值  默认是false】
                //【除了基本类型,其他的默认值都是null】
        
                //类变量  static
                System.out.println(salary);
        
            }
        
            public void add(){
        //局部变量  必须声明和初始化值
                
                int i=10;
                System.out.println(i);//在add方法中有效
            }
        }
        
        
  • 常量(Constant)

    • 是什么:是一个特殊的变量,初始化(initialize)后不能够被改变。

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

      • public class Demo04 {
        
            static final double PI=3.14;
            static final double PI02=3.14;
            //static是修饰符,不存在先后顺序
            
            public static void main(String[] args) {
                System.out.println(PI);
                System.out.println(PI02);
            }
        }
        
  • 变量的命名规范

    • 所有变量,产量见名知意。
    • 类成员变量:首字母小写和驼峰原则:daySalary
    • 局部变量:首字母小写和驼峰原则
    • 常量:大写字母与下划线:AMX_VALUE
    • 类名:首字母大写和驼峰原则:Man,GoodMan
    • 方法名:首字母小写和驼峰原则:run(),runRun()
5.运算符(Operator)

  • 算术运算符:+,-,*,/,%,++,–

    • public class Demo05 {
      
      //关于++与——
      
          public static void main(String[] args) {
              //关于自增自减的 一元运算符(只需要一个数字)
              int a=3;
              int b=a++;//a+1  执行完代码后,先给b赋值,再自增
              
              System.out.println(a); //a=a+1      4
      
              int c=++a; //执行完这段代码前,先自增,再给b赋值
              System.out.println(a);//     5
              System.out.println(b);//     3
              System.out.println(c);//     5
      
      		//幂运算 2^3   Math工具类
              double pow=Math.pow(2,3);
              System.out.println(pow);//====>8  很多幂运算使用工具类来用
      
          }
      }
      
      
  • 赋值运算符:=

  • 关系运算符:>,<,<=,>=,!=

  • 逻辑运算符:&&,||,!

    • //与  或  非
              boolean a=false;
              boolean b=true;
      
              System.out.println("a&&b:"+(a&&b));  //a&&b:false//逻辑与运算,两个变量都为真,结果才为true
              System.out.println("a||b:"+(a||b));  //a||b:true//逻辑或运算,两个变量有一个为真,结果才是true
              System.out.println("!a&&b:"+(!a&&b)); //!a&&b:true //如果为真则是假
      
              //短路运算
              int c=5;
              boolean d=(c<4)&&(c++<4);
              System.out.println(d);//  false
              System.out.println(c);//   5  表明当与运算中出现false时则停止运行
      
  • 位运算符:&,|,^,~,>>,<<,>>>

    • //位运算符
              /*
              * A= 0011 1100
              * B= 0000 1101
              * A&B = 0000 1100 除非对应位都是1,否则为0   且运算
              * A|B = 0011 1101 对应位上只要有1,输出为1   或运算
              * A^B = 0011 0001 相同位上相同为0,不同为一  非运算
              *  ~B = 1111 0010 对应位上反转   取反
              *
              * 关于左移右移  <<   >>
              *
          面试题
              *   2*8 怎么算最快?
              * */
              System.out.println(2<<3);//====16
          //解释面试题
              /*
               *  0000 0000  0
               *  0000 0001  1
               *  0000 0010  2
               *  0000 0011  3
               *  0000 0100  4
               * 。。。。。。。
               *  0000 0100  8
               *  0000 1000  16
               * 左移右移相当于进行2的次方运算,   硬件底层操作效率极高
               */
      
      
  • 条件运算符: ?,:

    • // x ? y : z   如果x为真则结果为y,否则为z   精简代码并且加快执行速度
      int score =40;
      String type = score<60 ?"不及格":"及格";
      System.out.println(type);
      
  • 扩展运算符: +=,-=,*=,/=s

    • //扩展运算符
      int f=10;
      int g=20;
      
      f+=g; //f=f+g
      f-=g; //f=f-g
      System.out.println(f);
      
      //*******字符串连接符  + ,String 后面全部定义为字符串*************
              System.out.println(""+f+g);//===1020
              System.out.println(f+g+"");//===30
      
6.包机制,JavaDoc

  • 包机制 Package

    • 本质:就是一个文件夹

    • 一般利用公司域名倒置作为包名

      • www.baidu.com=====> 包名:com.baidu.com
    • 使用import可以完成导包工作

      • import java.util.Date; //调用时间工具
        import java.util.*;   //*表示通配符
        
  • JavaDoc

    • 是什么:用来生成自己的API文档

    • 参数信息:

      • @author:作者
      • @version:版本号
      • @since:指明需要的Jdk版本
      • @param:参数名
      • @return:返回值情况
      • @throws:异常抛出情况
    • 演示

      • package javaDoc;
        /**
         * @author Ziyang
         * @version 1.0
         * @since 1.8
         */
        
        public class javaDoc {
        
            String name;
            /**
             * @param name
             * @return
             * @throws Exception
             */
            public String test(String name)throws Exception{
                return name;
            }
        }
        
        
        

        如何查看自己的API文档

        E:\javaAndSql\Idea\javaSE2020.10.3_Demo01\javaSE01_基本数据类型\src\javaDoc>javadoc -encdoing UTF-8 -charset UTF-8 javaDoc.java
        
        找到自己的类的位置===》使用smd打开类,使用javadoc javaDoc.java就可以编辑自己的Index页,打开index页面查看自己的API文档
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值