Java基础语法

Java基础语法

JDK新特性,数字之间可以用下划线分割,如1_0000_0000。不影响数值。

JAVA中的三种注释

书写注释是一个非常好的规范

  • 单行注释
//单行注释
  • 多行注释
/*多行注释
多行注释
多行注释*/
  • 文档注释
/**
 * 
 * 
 * 
 * 
 * */

标识符和关键字

关键字

标识符

  • Java所有的组成部分都需要名字。类名、变量名、方法名都被称为标识符

  • 所有标识符都应该以字母,美元符($),下划线(_)组成

  • 首字母之后可以是字母,美元符,下划线或数字的任何字符组合

  • 标识符大小写敏感

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

  • 尽量使用英文

数据类型

  • JAVA是一种强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义在使用

JAVA数据的基本类型(primitive type)

数值类型

  • 整数类型

    • byte:1个字节
    • short:2个字节
    • int:4个字节
    • long:8个字节//数字后面加L
  • 浮点类型(小数)

    • float:4个字节
    • double:8个字节
  • 字符类型

    • char:2个字节

    • String:非关键字

布尔类型

  • boolean:占一位,其值为true或者false

拓展:

  • 进制(二进制0b、十进制、八进制0、十六进制0x)

    int i=10 ;
    int i2=010;//八进制0
    int i3=0x10;//十六进制0x
    System.out.println(i);
    System.out.println(i2);
    System.out.println(i3);
    /*
    10
    10
    10
    */
    
    
  • float表示字长有限、离散,具有舍入误差性质。

    最好完全避免使用浮点数进行比较

    银行系统一般使用BigDecimal数学工具类

    float f = 0.1f;
    double d = 1.0/10;
    System.out.println(f==d);
    //output 
    false
    
    float d1 = 212121121212121212;
    float d2 = d1 + 1;
    System.out.println(d1==d2);
    //output 
    true
    
  • 强制类型转换(所有的字符本质都是数字)

    char c='a';
    System.out.println((int)c);
    //output 
    97
    
  • Unicode编码(U0000-UFFFF)

    char c='\uoo61';
    System.out.println(c);
    //output 
    a
    
  • 转义字符

    \t //制表符
    \n //换行
    
  • 布尔值扩展

    boolean flag = true;
    if(flag==true){} 
    if(flag){}       
    //行2与行3,意义相同,完全等价
    

JAVA数据的引用类型(reference type)

    • 关于对象的思考
    String a= new String("Hi");
    String b= new String("Hi");
    System.out.println(a==b);
    //output 
    flase
    
  • 接口

  • 数组

类型转换

  • JAVA为强类型语言,所以运算需要进行类型转换

  • 优先级由低到高

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

  • 自动类型转换(低容量到高容量)

  • 强制类型转换(高容量到低容量)

    (需要的类型)原类型
    
  • 强制类型转换中可能存在内存溢出、精度问题

    int i=128;
    byte b = (byte)i; //内存溢出
    //output
    -128
    
    System.out.println((int)23.7);
    System.out.println((int)-45.89f);
    //output
    23
    -45
        //精度丢失
    
  • 不能对布尔值进行转换

  • 不能转换不相干的类型

变量

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

  • 变量名必须是合法的表示符

    type varName = value;
    
  • 常量(关键字final)

    public class Hello {
        static final int PI=3.14;//在类中定义静态常量
        //main方法
        public static void main(String[] args) {
            System.out.println(PI);
        }
    }
    

变量的作用域

  • 局部变量

    public class Hello {
        //main方法
        public static void main(String[] args) {
            int i = 10;//局部变量,定义于方法内部,作用于方法内部
            System.out.println(i); 
        } 
    }
    
  • 实例变量

    public class Hello {
        String name;//实例变量:从属于对象;默认值为0、0.0、null、flase
        int age;
        //main方法
        public static void main(String[] args) {
        }
        //其他方法
        public void add(){
            //调用实例变量前需要执行以下操作
            Hello hello = new Hello();
            System.out.println(hello.name);//输出实例变量
        }
    }
    
  • 类变量

    public class Hello {
        static int a=10;//类变量,关键词static
        //main方法
        public static void main(String[] args) {
            System.out.println(a);//在方法内可直接调用
        }
    }
    

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量、局部变量、方法名:首字母小写和驼峰原则、nameAdd
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则

运算符

  • 算术运算符进行算术运算时,当有long时结果为long类型,否则为int类型
  • 自增自减运算符:a++代码执行后;++a代码执行前
  • 幂运算:Math.pow(a,b),借用Math工具类中的pow方法
  • 逻辑运算符
    • 与:两个变量都为真,结果才为真
    • 或:两个变量都为假,结果才为假
    • 非:若真为假,若假为真
  • 短路运算
    • 在与运算中,若第一个变量为假,则不用看第二个变量,程序短路,直接判断为假。
  • 位运算
    • 按位进行与或非运算
    • 异或运算:相同为0,不同为1
    • <<左移相当于*2;>>右移相当于/2;例:2<<3 == 8
  • a+=b 相当于a=a+b
  • 当+旁边出现String类型,则为连接符
  • x?y:z相当于:如果x为真,则结果为y,否则为z

包机制

  • 一般用公司的域名倒置作为包名,com.baidu.www
  • 导入包:import com.xxx.xxx.*; // *为通配符,导入包中所有

JavaDoc

package com.xia.base;
/**
* @author xia
* @version 1.0
* @since 1.8
*/
public class Demo01 {
   String name;
   /**
    * @param name
    * @return
    * @throws Exception
    */
   public String test(String name) throws Exception{
       return name;
   }
}
  • IDEA生成:Tools
posted @ 2020-12-13 22:57  Mr0Fly  阅读(51)  评论(0)    收藏  举报