JAVA基础语法

JAVA基础语法

注释、标识符、关键字

注释

  • 单行注释

    // 这是一个注释
    
  • 多行注释

    /*
       这是一个多行注释
       这页是注释
    */
    
  • JavaDoc:文档注释

     /**
             * 
             * @Author Meteorlu
             * @Description 这是一个描述
             */
    
    

标识符

  • 关键字
  • 注意点
  1. 所有标识符应以字母,$,或者下划线(_)开始
  2. 首字符之后可以是字母,$或下划线(_)或数字的任何字符组合
  3. 不能使用关键字作为变量名或方法名
  4. 标识符大小写敏感
  5. 可以使用中文名,但一般不建议,也不建议使用拼音,很low

数据类型

强弱类型语言分类

  • 强类型语言

​ 要求变量使用严格符合规定,所有变量都必须定义且初始化后才能使用

  • 弱类型

    不严格要求变量,如Visual Basic、JavaScript

JAVA的两大数据类型

  • 基本类型

    1. 数值类型:整数类型(byte int short long)

      //注意事项
      long num1 = 30L;
      
      //进制
      int i = 10; //十进制
      int j = 010; //八进制
      int k = 0x10; //十六进制
      int l = 0b1; //二进制
      
    2. 浮点类型:浮点类型(float double)

      float num2 = 50.4F;
      double num6 = 3.141592654;
      //注意事项
      float f = 0.1f;  //0.1
      double d = 1/10; //0.1
      System.out.println(f==d); //false
      
      float d1 = 23131323123213f;
      float d2 = d1 + 1;
      System.out.println(d1==d2); //true 
      //上述问题产生的原因是 浮点数是有限、离散的,有舍入误差
      //最好完全避免使用浮点数进行比较
      //替代方法是使用  BigDecimal类进行比较
      
    3. 字符类型: char String(不是关键词)

      char c1 = 'a';
      char c2 = '中';
      
      System.out.println(c1); //a
      System.out.println((int)c1); //97
      System.out.println(c2); //中
      System.out.println((int)c2); //20013
      //所有的字符本质还是数值
      //编码:Unicode 2字节 65536
      //转义字符
      // \n 换行
      // \t 制表符
      
    4. Boolean类型: true false

      boolean flag = true;
      if(flag==true){}
      if(flag){}  //等价于上一行
      //less is more!
      
  • 引用类型

    1. 接口
    2. 数组

类型转换

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

​ 低 --------------------------------------------------------> 高

​ byte,short,char -> int -> long -> float -> double

从低到高,需要强制转换。

从高到低,自动转换。

int i =128;
byte b = (byte)i;  
//强制转换(高到低) (类型)变量名
System.out.println(i); //128
System.out.println(b); //-128  
//因为byte取值范围为-128~127

System.out.println((int)23.7);     //23
System.out.println((int)-45.89f);  //-45 

int money = 10_0000_0000;
System.out.println(money); //1000000000 (不会显示下划线)
//JDK7新特性,数字之间可以用下划线分割
int years = 20;
int total = money*years; //-1474836480,计算时发生溢出
long total2 = money*year; //-1474836480,默认为Int,转换前已经溢出
//解决方案
long total3 = money*((long)years);//先把一个数转换为Long

注意事项

  1. 不能对布尔值进行转换;
  2. 不能把对象类型转换为不相干的类型;
  3. 在把高容量转换到低容量的时候,强制转换;
  4. 转换可能存在内存溢出,或者精度问题;
  5. 操作比较大的数时候,注意溢出问题;

变量

  • Java是一种强类型语言,每个变量都必须声明其类型;

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

    type varName [=value] [{,varName[=value]}];
    //数据类型 变量名 = 值; 可以用逗号隔开来声明多个同类型变量(不建议这么做)。
    
  • 注意事项:

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

变量的作用域

public class Variable{
    static int allClicks = 0;  //类变量
    String str = "hello!";     //实例变量
    public void method(){
        int i= 1;  //局部变量
    }
}
  • 局部变量:必须声明和初始化值,仅在本方法内可以调用
  • 实例变量:从属于对象,如果不进行初始化,则为该类型的默认值。(0 0.0 false,除了基本类型,其他都是Null)
  • 类变量 static :从属于类,必须加关键字 static

常量

​ 常量(Constant):初始化后不能再改变值。可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

用法:

final 常量名 = 值;
final double PI = 3.14;
static final double PI = 3.14;
final static double PI = 3.14;
//修饰符不存在先后顺序

变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰命名法 monthSalary
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线 MAX_VALUE
  5. 类名:首字母大写和驼峰原则 GoodType
  6. 方法名:首字母小写和驼峰原则 run() toRun()

运算符

  • 算数运算符:+ - * / % ++ --

    int a=10,b=20;
    System.out.println(""+a+b);   //1020
    System.out.println(a+b+"");   //30
    
  • 赋值运算符:=

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

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

    //短路运算
    int c = 5;
    boolean d = (c<4)&&(c++<4);  //执行到c<4便不再执行c++<4
    System.out.println(d); //false
    System.out.println(c); // 5
    
  • 位运算符(了解):& | ^ ~ >> << >>>

    /*
      A = 0011 1100
      B = 0000 1101
      
      A&B = 0000 1100 与运算
      A|B = 0011 1101 或运算
      A^B = 0011 0001 异或运算(相同时取0,相异时取1)
      ~B  = 1111 0010 取反
      =====================================
      计算2*8的最快方法
      2*8=16 2*2*2*2
    */
      System.out.println(2<<3); //16
    // 0000 0010 ->  0001 0000  左移3位
    
  • 条件运算符: ? :

    // x ? y :z
    //若x==true,则结果为y,否则结果为z
    System.out.println(80<60?"不及格":"及格"); //及格
    
  • 扩展赋值运算符: += -= *= /=

     a += b; //a = a + b
    
  • 幂运算:使用Math类

    double pow  = Math.pow(3,2); //计算2 的三次方
    

包机制

  • 命名一般为域名的反写,如:com.baidu.baike
  • 包命名用 package关键字定义
  • 使用import 关键字导入包,且Import必须放在package下面

《阿里巴巴JAVA开发手册》

posted @ 2021-03-17 22:36  MeteorLu  阅读(36)  评论(0)    收藏  举报