JavaSE基础语法

标识符和关键字

关键字

在这里插入图片描述

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

标识符注意点

  • 所有的标识符都应该以字母、美元符$、或者下划线 _ 开始。

  • 首字符之后可以是字母、美元符$、或者下划线 _或数字的任何字符组成。

  • 不能试用关键字作为变量名或方法名。

  • 标识符是大小写敏感的

  • 可以用中文或者拼音,但不建议

    public static void main(String[] args) {
       		// 大小写十分敏感
    		String Name = "灰灰";
        	String name = "灰灰";
        	String _name = "灰灰";
        	String $name = "灰灰";
        	String _1_name = "灰灰";
        
    
        	// 不合法命名
        	/*
        	String 123abc = "灰灰";
        	String -abc = "灰灰";
        	String #abc = "灰灰";
        	 */
    }
    

数据类型

  • 强类型语言

    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
  • Java的数据类型分为两大类

    • 基本类型(Primitive type)

    • 引用类型(Reference type)

    • 在这里插入图片描述

    • public static void main(String[] args) {
          	// 八大基本数据类型    
          	// 整数 
          	int num1 = 10; // 最常用
          	byte num2 = 20;
          	short num3 = 30;
          	long num4 = 40L; // long类型在最后加L
      
          	// 小数;浮点数
          	float num5 = 50.1F; // float类型在最后加F
          	double num6 = 3.14159265358;
          
          	// 字符
          	char name = '灰';
          	// 字符串  String不是关键字,是一个类
          	String name2 = "灰灰";
      
          	// 布尔值
          	boolean flag = true;
          	boolean flag2 = false;
          
      }
      

类型转换

由于Java是强类型语言,所以要进行有些运算时要用到类型转换

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

按照容量高低如下排序

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

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

  • 强制类型转换

    • // 强制转换:(类型)变量名     高---->低
      public static void main(String[] args) {
              int i = 120;
              byte b = (byte)i;
           	System.out.println(i); // 120
              System.out.println(b); // 120
      }
      
  • 自动类型转换

    • public static void main(String[] args) {
          	// 低---->高
              int i = 120;
              double d = i;
           	System.out.println(i); // 120
              System.out.println(d); // 120.0
      }
      
  • 注意点

    1. 不能对布尔值进行转换
    2. 不能把对象类型转换为不相干的类型
    3. 高容量转换到低容量时,强制转换
    4. 转换时可能存在内存溢出/精度问题
    
    • 精度问题:浮点数转换整数直接取整数部分,不会四舍五入

    • System.out.println((int)23.9);      // 23
      System.out.println((int)-45.89F);   // -45
      
    • 溢出问题:操作比较大的数的时候,注意溢出问题

    • public static void main(String[] args) {
              // JDK7新特性,数字可以用下划线分割
              int money = 10_0000_0000;
              int years = 20;
              int total = money*years; // -1474839480,计算时溢出了
              long total2 = money*years; // 默认是int,转换之前已经存在问题
      
              long total3 = money*((long)years);
              System.out.println(total3); // 20000000000√
      }
      

变量

  • Java时强类型语言,每个变量必须声明其类型

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

  • 	int a = 10;
    // 数据类型 变量名 = 值;
    // 可以用逗号隔开生命多个同来型变量,但不建议
    
  • 注意事项:

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

变量作用域

  • 类变量

  • 实例变量

  • 局部变量

    • public class Demo07 {
          // 类变量 static:从属于类
          static double salary = 2500;
      
          // 实例变量:从属于对象;如果不自行初始化,自动设定对应类型默认值
          // 布尔值:默认false      除了基本类型,其他默认值都是null
          String name;
          int age;
      
          // main方法
          public static void main(String[] args) {
              // 局部变量:必须声明和初始化值
              //         只在当前的{}内可用
              int i = 10;
              System.out.println(i);
      
              // 调用实例变量
              // 变量类型  变量名字 = new Demo07();
              Demo07 demo07 = new Demo07();
              System.out.println(demo07.age);     // 0
              System.out.println(demo07.name);    // null
      
              // 调用类变量
              System.out.println(salary);
          }
      }
      

常量

  • 初始化后不能再改变值

  • 可以将常量理解为一种特殊的量,它的值被设定之后,在程序运行过程中不允许被改变。

    • final 常量名 =;
      final double PI = 3.14;
      
  • 常量名一般用大写字符

    • public class Demo08 {
          // static,final是修饰符,不存在先后顺序
          static final double PI = 3.14;
      
          public static void main(String[] args) {
              System.out.println(PI);
          }
      }
      

变量命名规范

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

运算符

  • Java语言支持以下运算符
    • 算术运算符:+,-,*,/,%,++,–
    • 赋值运算符:=
    • 关系运算符:>,<,>=,<=,==,!= instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符: &,|,^,~,>>,<<,>>>
    • 条件运算符:?:
    • 扩展赋值运算符:+=,-=,*=,/=

算数运算符

  • 二元运算符(+,-,*,/,%)

    • public static void main(String[] args) {
              // 二元运算符
              int a = 10;
              int b = 20;
              int c = 25;
              int d = 25;
              System.out.println(a+b);
              System.out.println(a-b);
              System.out.println(a*b);
              System.out.println(a/b); // 0 int类型取整
              System.out.println(a/(double)b);  // 0.5
              // 取余,模运算
              System.out.println(c%a); // c/a=2...5
      
          }
      
  • 一元运算符(++,–)

    • public static void main(String[] args) {
              // ++ -- 自增,自减
              int a = 3;
              int b = a++; // 先把a赋值给b,在进行自增操作
              // a++   a = a+1
              int c = ++a; // 先进行自增操作,再将自增结果赋值给c
              System.out.println(a); // 5
              System.out.println(b); // 3
              System.out.println(c); // 5
          }
      

关系运算符

  • public static void main(String[] args) {
            // 关系运算符返回的结果: true/false 布尔值
            int a = 10;
            int b = 20;
            System.out.println(a>b); // false
            System.out.println(a<b); // true
            System.out.println(a==b);// false
            System.out.println(a!=b);// true
    }
    

逻辑运算符

  • public static void main(String[] args) {
            // 与(and)  或(or)  非(取反)
            boolean a = true;
            boolean b = false;
            // 逻辑与运算:两个都为真,结果才为真
            System.out.println(a && b);    //false
            // 逻辑或运算:两个变量有一个为真,则结果为真
            System.out.println(a || b);    //true
            // 逻辑非运算:真变假,假变真
            System.out.println(!(a && b)); //true
    
            // 短路运算
            //     &&  左边为真,右边执行;左边为假,右边不执行
            //     ||  左边为假,右边执行;左边为真,右边不执行
            int c = 5;
            boolean d = (c<4)&&(c++<4);
            System.out.println(d); // false
            System.out.println(c); // 5
        }
    

位运算符

  • public static void main(String[] args) {
            /*
            A = 0011 1100
            B = 0000 1101
            ------------------
            A&B = 0000 1100     与       对应位都是1是1,否则为0
            A|B = 0011 1101     或       对应位都是0为0,都是1为1,有一个1为1
            A^B = 0011 0001     异或     对应位相同为0,不同为1
            ~B  = 1111 0010     取反     0变1,1变0
             */
    
            /*
            <<左移  >>右移
            <<  *2
            >>  /2
            0000 0000 0
            0000 0001 1
            0000 0010 2
            0000 0011 3
            0000 0100 4
            0000 1000 8
            0001 0000 0
             */
            System.out.println(2<<3); // 16
        }
    

条件运算符/三元运算符

  • public static void main(String[] args) {
            // x ? y : z
            // 如果x==true,则结果为y,否则结果为z
            int score = 80;
            String type = score <60 ? "不及格" : "及格";
            System.out.println(type);
        }
    

扩展赋值运算符

  • public static void main(String[] args) {
            int a = 10;
            int b = 20;
            a += b; // a = a+b
            System.out.println(a); // 30
            a -= b; // a = a-b
            System.out.println(a); // 10 为什么不是-10,在这次运算前a已经变成30
        }
    

包机制

  • 包语句语法格式为

    • package pkg1[.pkg2[.pkg3...]];
      
  • 一般利用公司域名倒置作为包名; com.baidu.www

  • 在一个包中使用另一个包的成员,需要在程序中明确导入要使用的包。使用"import"语句可完成此功能

    • // 使用*会导入该包下的所有类
      import package1[.package2...].(classname|*);
      

JavaDoc

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
  • /**
     * @author Huihui   作者名
     * @version 1.0     版本号
     * @since 1.8       指明需要最早使用的jdk版本
     */
    public class Doc {
        String name;
    
        /**
         * @param name          参数名
         * @return              返回值情况
         * @throws Exception    异常抛出情况
         */
        public String test(String name) throws Exception{
            return name;
        }
    
        // 命令行生成javadoc文件: javadoc 参数 java文件
    }
    
  • 使用命令行生成文档

    • 在这里插入图片描述

    • 生成成功,打开目录中的index.html便能看到生成的文档

      在这里插入图片描述

  • 使用IDEA生成文档

    1. 在IDEA中选择Tools(工具),然后选择Generate JavaDoc(生成javadoc)

    在这里插入图片描述

    1. 配置各种参数

      在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值