java基础语法学习

java基础语法

注释

  1. 项目结构复杂时,需要进行相关注释,注释不会执行,是给自己和别人看的。
  2. 写注释是一个非常好的习惯
  3. 注释分为:单行注释(//),多行注释(/* 中间输入要注释的内容 /),文档注释(avaDoc:文档注释 /* */ 中间可以加参数)
  4. 修改注释的颜色:file->Settings->Editor->Color Scheme->java->line comment(也可修改其他) 右侧进行修改可以修改颜色字体背景等

标识符

关键字

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceiofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

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

标识符注意

  1. 所有的标识符都应以字母(A-Z或者a-z),$,或者下划线(_)开始
  2. 首字母之后可以是字母、数字、下划线、$组合
  3. 不能使用关键字作为变量名或方法名
  4. 标识符大小写敏感
  5. 可以使用中文命名,一般不建议这样使用,也可以使用拼音,一般也不建议使用

数据类型

基础知识

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

  2. 弱类型语言:弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php,js等就属于弱类型语言

  3. java的数据类型分为两大类

    • 基本类型(primitive type)

      • 数值类型
        • 整数类型:byte占1个字节范围:-128127;short占2个字节范围:-3276832767;int占4个字节范围:-21474836482147483647;long占8个字节范围:-9223372036854775808923372036854775807
        • 浮点类型:float占4个字节;double占8个字节
        • 字符类型:char占2个字节
      • boolean类型:占一位其值只有true和false两个
    • 引用类型(reference type):类、接口、数组

      注意:对不同整数类型数据进行操作,有long类型返回long,否则返回int

  4. 注意点

    • int最常用
    • long类型要在数字后面加L
    • float类型要在数字后面加F
    • char类型中只存放一个字符
    • String不是关键字,是类
  5. 数据类型扩展

    • 整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x

      int i = 10;
      int i2 = 010;
      int i3 = 0x0061;
      System.out.println(i); //十进制
      System.out.println(i2); //八进制
      System.out.println(i3); //十六进制
      
    • 浮点数扩展:银行业务怎么表示?钱——利用BigDecimol 数学工具类

      //float  有限 离散 舍入误差 大约 接近但不等于
      //最好完全避免浮点数的比较
      float f= 0.1f;//0.1
      double d = 1.0/10;//0.1
      System.out.println(f==d);   //false
      
      float d1 = 212121545212122f;
      float d2 = d1+1;
      System.out.println(d1==d2);//true
      
    • 字符扩展:所有的字符本质还是数字。 编码 Unicode 表:97=a 65=A 2字节 0 - 65536 。一般 U0000 - UFFFF

      char c1 = 'a';
      char c2 = '中';
      System.out.println(c1);
      System.out.println((int)c1);
      System.out.println(c2);
      System.out.println((int)c2);
      //所有的字符本质还是数字
      //编码 Unicode 表:97=a 65=A 2字节 0 - 65536
      //U0000  -  UFFFF
      char c3 = '\u0061';
      System.out.println(c3);//a
      
      //转义字符:\t制表符 \n 换行
      
    • 布尔值扩展

      boolean flag = true;
      if (flag==true){} //新手
      if (flag){} //老手
      

类型转换

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

    -------------------------------->byte,short,char,int,long,float,double
    
  2. 运算中,不同类型的数据先转换为同一类型,然后进行计算。

  3. 强制类型转换

    int i = 128;
    byte b = (byte) i; //内存溢出
    //强制转换 (类型)变量名
    System.out.println(i);
    System.out.println(b);
    
  4. 自动类型转换

    int i1 = 128;
    double d = i1;
    //自动转换   低--->高
    System.out.println(i1);
    System.out.println(d);
    
  5. 注意点:

    • 不能对布尔值进行转换

    • 不能把对象类型转化为不相干的类型

    • 在把高容量转换到低容量的时候,强制转换

    • 转换的时间可能存在内存溢出或者精度缺失

      //精度缺失
      System.out.println((int)23.7); //23
      System.out.println((int)-45.7f); //-45
      
      //字符与数字之间的转换
      char c ='a';
      int e =1+c;
      System.out.println(e); //98
      System.out.println((char)e); //b
      
      
  6. 操作比较大的时候,注意溢出问题

    //JDK新特性, 数字之间可以用下划线分割
    int money = 10_0000_0000;
    int years = 20;
    int total = money*years; //-1474836480 ,计算得到时候溢出
    long total1 = money*years; //默认是int,转换之前已经存在问题了?
    long total2 = money*((long)years); //先把一个数转换为long
    System.out.println(total2);
    

变量

  1. 变量是什么:就是可以变换的量!

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

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

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

    • 每个变量都有类型,类型可以是基本类型也可以是引用类型。
    • 变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
    • 不提倡一行定义多个变量,为了提高程序的可读性
  5. 变量分为:局部变量、实例变量、类变量(static)

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

常量

  1. 常量:(Constant)初始化(initialize)后不能在改变值,不会动的值。

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

    final 常量名 =;
    final double PI = 3.14;
    //修饰符,不存在先后顺序
    static final double PI = 3.14; == final static  double PI = 3.14;
    
  3. 常量名一般用大写字符

变量的命名规范

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

运算符

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

    //二元运算符 
    //Ctrl+D   :  复制当前行到下一行
    int a = 10;
    int b = 20;
    int c = 25;
    System.out.println(a+b);
    System.out.println(a-b);
    System.out.println(a*b);
    System.out.println(a/(double)b); //因为定义的都为整数结果出现小数需要进行强转
    System.out.println(c%a);//取余数
    
    //++ -- 自增 自减 一元运算符
    int a = 3;
    int b = a++; //执行完这行代码后,先给b赋值,再自增
    //a = a+1
    System.out.println(a);
    //a = a+1
    int c = ++a; //执行完这行代码后,先自增,再给c赋值
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    
    
    //幂运算 2^3 2*2*2 = 8  很多运算会使用工具类来操作
    double pow = Math.pow(3,2);
    System.out.println(pow);
    
    
  • 赋值运算符=

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

    • 关系运算返回的结果: 正确,错误 布尔值
  • 逻辑运算符: &&,|,!

    //与(and) 或(or)  非(取反)
    boolean a = true;
    boolean b = false;
    System.out.println("a && b:"+(a&&b)); //同真为真否则为假
    System.out.println("a || b:"+(a||b)); //同假为假否则为真
    System.out.println("!(a && b):"+!(a&&b)); //真为假,假为真
    //短路运算,通过前半部分就能确定真假后就不执行后半句
    
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!! ! )

    /*
    A = 0011 1100
    B = 0000 1101
    ---------------
    A&B = 0000 1100  全为1是1否则为0
    A|B = 0011 1101  全为0是0否则为1
    A^B = 0011 0001  相同为0,不同为1
    ~B =  1111 0010
    效率极高
    <<  左移相当于*2
    >>  右移相当于/2
     */
    
  • 条件运算符?︰

    // x ? y : z
    //如果x==true,则结果为y,否则结果为z
    int score = 50;
    String type = score <60?"不及格":"及格";  //十分常见
    System.out.println(type);
    
  • 扩展赋值运算符:+=,-=,*=,/=

    int a = 10;
    int b = 20;
    a+=b; // a = a+b
    a-=b; // a = a-b
    System.out.println(a);
    
    //字符串连接符 +  , String
    System.out.println(""+a+b);
    System.out.println(a+b+"");//字符串前正常运算,字符串后拼接
    

请添加图片描述

包机制

  1. 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。本质是文件夹。
  2. 一般利用公司域名倒置作为包名
  3. 为了能使用包成员,我们需要在Java程序中明确导入该包,使用“import”语句
  4. 注意:package选在代码的最上方,导包快捷键Alt+F4,导入包下的所有类可以用*,建议学习阿里巴巴手册

Java Doc

  • 参数信息

    • @author 作者名
    • @version 版本号

    • @since 指明需要最早使用的jdk版本

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

  • 选中文件右击->选中Show in Explorer->打开对应的文件夹

  • 命令行生成Java Doc:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

  • IDEA生成Java Doc
    在这里插入图片描述
    在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小懒胖熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值