Java学习笔记-基础语法

基础语法

1.注释、标识符、关键字

1.1注释

注释并不会被执行,对所写的代码进行解释说明

书写注释是一个好习惯

注释的种类

  • 单行注释(//单行注释只能注释一行)
  • 多行注释(/* */)
  • 文本注释【JavaDoc】(/** */)

1.2 标识符与关键字

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

    Java关键字
标识符注意点
  • 所有标识符都应该以字母或$或“_”开始
  • 首字符之后可以是字母、$、_、或任何数字的字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感
  • 合法标识符举例:age、$salary、_value
  • 非法标识符举例:123abc、-salary、#abc
  • 可以使用中文命名,但一般不建议使用

2.数据类型

强类型语言
  • 要求变量的使用要严格符合规定,所有变量都必须先定义后使用
弱类型语言
  • 而弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过现行强制转换
Java的数据类型分为两大类

基本类型(primitive type)

class test01{
  public static void main(String[] args){
    //八大数据类型
    	//整数
    	int num1 = 10;//最常用
      byte num2 = 20;
      short num3 = 30;
      long num4 = 30L;//Long类型要在数字后面加个L

    //小数:浮点数
    float num5 = 50.1f;
    double num6 3.14159265358979;

    //字符
    char name = 'A';


    //字符串,String不是关键字是类
    //String namea="中国";

    //布尔值:是非
    boolean flag = true;
    //boolean flag = false;
  }
}
  • 引用类型(reference type)
    • 接口
    • 数组
扩展
public class test02{
  public static class void main(String[] args){
    //整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
		int i = 10;
		int i2 = 010;//八进制
		int i3 = 0x10;//十进制
		System.out.println(i);//10
		System.out.println(i2);//8
		System.out.println(i3);//16

		/*浮点数拓展 银行业务的表示
		  BigDecimal 数学工具类
		  float 有限 离散 舍入误差 大约 接近但不等于
		  double
		  最好完全避免使用浮点数进行比较
		*/
		float f = 0.1f;
		double d = 1.0/10.0;
		System.out.println(f == d);//false
		float d1 = 2333333333333333333f;
		float d2 = d1 + 1 ;
		System.out.println(d1 == d2);//ture

		//字符拓展
		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字节 表(97=a 65=A) 65536 Excel 2^16 = 65536
		  U0000 UFFFF
		*/
		char c3 = '\u0061';
		System.out.println(c3);//	a
		/*转义字符
		  \t		制表符
		  \n		换行符
		  ……
		*/
		System.out.println("Hello\nWord");
		/*Hello
		  World
		*/

    //对象 从内存分析
    String sa = new String("original:hello word");
    String sb = new String("original:hello word");
    System.out.println(sa==sb);//false
    String sc = ("original:hello word");
    String sd = ("original:hello word");
    System.out.println(sc==sd);//true

    //布尔值拓展
    boolean flag = true;
    if(flag){

}
  }
}

3.类型转换

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

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

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

  • 运算中,不同类型的数据先转化为同一类型,然后进行计算
  • 强制类型转换
  • 自动类型转换
    public class test03{
      public static void main(String[] args){
        int i = 128;
        byte b = (byte)i//内存溢出
    
        //强制转换	(类型)变量名	高->低
        //自动转换	低->高
        System.out.println(i);//	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
      }
    }
    
  • 常见问题
    class Untitled {
    	public static void main(String[] args) {
    		//操作数较大时注意溢出问题
    		//JDK新特性,数字之间可以用下划线分割
    		int money = 10_0000_0000;
    		int years = 20;
    		int total1 = money*years;//	-1474836480,计算的时候溢出了
    		long total2 = money*years;//默认是int,转换之前已经存在问题了
    
    		long total3 = money*((long)years);//先把一个整数转换为Long
    		System.out.println(total3);
    	}
    }
    

4.变量、常量

4.1 变量

  • 变量:计算机存储空间且里面的值不确定

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

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

    type varName [=value] [{,varName[=value]}]
    //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量
    
  • 注意事项

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

4.2 变量作用域

  • 类变量

  • 实例变量

  • 局部变量

    public class Test{
      //类变量 static
      static double salary = 2500;
    
      //属性:变量
    
      //实例变量:从属于对象;如果不初始化,会变成这个类型的默认值
      //布尔值:默认是false
      //除了基本类型,其余默认值都是null
      String name;//默认值 0
      int age;//默认值0.0
    
      //main方法
      public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i = 10;
    
        System.out.println(i);
        //变量类型
        Test test = new Test();
        System.out.println(test.age);
        System.out.println(test.name);
    
        //类变量 static
        System.out.println(salary);
      }
    }
    

4.3 常量

  • 常量(Constant):初始化(initialize)后不能改变值!不会变动的值
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,程序运行过程中不允许被改变。
public class Test{
    //常量定义方式: final 常量名=值
    //final是修饰符,不存在前后也可final static
    static final double PI = 3.14;
    public static void main(String[] args) {
        System.out.println(PI);        
    }
}
  • 常量名一般是用大写字符

4.4 变量的命名规范

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

5.运算符

  • Java语言支持如下运算符
    • 算术运算符:+,-,*,/,%,++,--
    • 赋值运算符:=
    • 关系运算符:>,<,>=,<=,==,!=,instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
    • 条件运算符:?:
    • 扩展运算符:+=,-=,*=,/=
public class Test02{
    public static void main(String[] args) {
        long a = 1234374364617247;
        int b = 123;
        short c = 10;
        byte d = 8;

        System.out.println(a+b+c+d);//Long
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int

        //幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作
        double pow = Math.pow(3,2);
        System.out.println(pow);//9

        //与(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;
        System.out.println("a && b:"+(b&&a));//逻辑与运算:两个变量都为真,结果才为真
        System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果就为真
        System.out.println("!(a && b):"+!(a&&b));//如果是真,则变为假,如果是假则变为真
        //短路运算
        int c = 5;
        boolean d = (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 = 1100 0011

                2*8 = 16 2*2*2*2
                << *2
                >> /2
                0000 0000   0
                0000 0001   1
                0000 0010   2
                0000 0100   4
                0000 1000   8
                0001 0000   16
                 */
        System.out.println(2<<3); //16  

        int a = 10;
        int b = 20;

        //条件运算符
        a+=b;//a = a+b
        a-=b;//a = a-b
        System.out.println(a);//30
        //字符串连接符 + ,String在前会将后面的拼接,前面的正常运算
        System.out.println(""+a+b);//1020
        System.out.println(a+b+"");//30

        //三元运算符
        //x?y:z
        //如果x==true,则结果为y,否则为z
        int score = 80;
        String type = score < 60?"不及格":"及格";
        System.out.println(type);//不及格                
    }
}

6.包机制、JavaDoc

6.1 包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
  • 包语句的语法格式为:
package pkg1[.pkg2[.pkg3]];
  • 一般利用公司域名倒置作为包名 www.baidu.com com.baidu.www
  • 为了能够使用一个包的成员,我们需要Java程序中明确导入该包。使用“import”语句可完成此功能
import package1[.package2...].(classname|*);
//*导入这个包下所有的类

6.2 JavaDoc

  • JavaDoc命令是用来生成自己的API文档的

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
  • 通过终端生成API文档

cd Java文件所在地址
javadoc -encoding UTF-8 -charset UTF-8 Java文件名.java
posted @ 2021-07-25 11:11  Skye-Z  阅读(40)  评论(0编辑  收藏  举报