Java02——基础

本文章是本人根据视频和网上资料整理所写笔记,可能有不通顺或遗漏的地方,请尽量参考学习来源处的链接去进行学习。

学习来源

【狂神说Java】Java零基础学习视频通俗易懂:https://www.bilibili.com/video/BV12J41137hu

菜鸟教程: https://www.runoob.com/

阿里巴巴Java开发手册

Javadoc---生成Javadoc文档 https://www.cnblogs.com/strive-19970713/p/11166441.html

注释

  • 平时我们编写代码,在代码量比较少的时候可以看懂,但是项目结构一旦复杂起来,我们就需要用到注释

  • 注释并不会被执行,是给我们写代码的人看的

  • 书写注释是一个非常好的习惯

  • Java中的注释有三种:

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

注释规约(参考阿里巴巴Java开发手册1.3):

下面列举几个我们常用且强制的

  • 类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用

  • 所有的抽象方法 ( 包括接口中的方法 ) 必须要用 Javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能

  • 所有的类都必须添加创建者和创建日期。

  • 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释 使用/ /注释,注意与代码对齐。

  • 所有的枚举类型字段必须要有注释,说明每个数据项的用途。

标识符和关键字

关键字:java中事先定义的,有特别意义的标识符,又被称为保留字

关键字注意点:

关键字不能用作变量名、方法名、类名、包名和参数

image-20210303204538818

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

标识符注意点:

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)或者下划线(_)开始
  • 首字符之后是字母(A-Z或者a-z),美元符($)或者下划线(_)或数字的任何字符组成
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感
  • 合法标识符距离:age、$salary、_value
  • 非法标识符距离:123abc、-salary、#abc
  • 可以使用中文命名,但是一般不建议
  • 可以使用拼音,但是也不建议

数据类型

  • 强类型语言(安全性搞)

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

    • 比如JavaScript、vb、php
    • 例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 123,而不需要显式转换
  • Java的数据类型分为两大类

    • 基本类型(八大基本数据类型)
      • 数值类型
        • 整数类型:byte 1字节(-128~127)、short 2字节、int 4字节、long 8字节
        • 浮点类型:float 4字节、double 8字节
        • 字符类型:char 2字节
      • boolean类型:占1位,值只有true和false两个
    • 引用类型
      • 接口
      • 数组
  • 整数拓展

    进制:

    • 二进制0b
    • 十进制
    • 八进制0
    • 十六进制0x
  • 浮点数拓展

    • float 大小优先、离散、含入误差、大约接近但不等于(如需比较,最好完全使用浮点数进行比较)

    • double

    • BigDecimal 数学工具类(银行业务一点要用这个

      float = 0.1f;//0.1
      double = 1.0/10;//0.1
      System.out.println(f==d);//false
      
      float d1 = 1212121213123123f;
      float d2 = d1 + 1;
      System.out.println(f==d);//true
      
  • 字符拓展

    • char

      • 所有的字符本质还是数字
      • 编码 默认Unicode(A=65 a=97) 2字节
      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
      char c3 = '\u0061';
      System.out.println(c3);//a
      
    • 转移字符

      • \t 制表符
      • \n 换行
      • ...
  • 布尔值拓展

    boolean flag = true;
    if(flag == true){} 相当于 if(flag) //Less is More! 代码要精简 写熟练前一种模式之后就要开始学会精简代码
    

类型转换

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

    低到高
    byte,short,char->int->long->float->double
    
  • 运算中,不同类型的数据先转化为同一类型,然后再进行运算

  • 强制类型转换

  • 自动类型转换

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换成不想干的类型
  3. 在把高容量转换成低容量的时候,强制转换,转换的时候可能存在内存溢出,或者精度问题
public static void main(String[] args){
    //操作比较大的数的时候,注意溢出问题
    //JDK7新特性,数字之间可以用下划线分割
    int money = 10_0000_0000;
    int years = 20;
    int total = money*years;//-1474836480,计算的时候溢出了
    long total2 = money*years;//默认是int,转换之前已经存在问题
    long total3 = money*((long)years);//先吧一个数转换成long
    System.out.println(total3);
}

变量和常量

变量

  • 变量是什么:急速可以变化的量!

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

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

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

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

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值

  • 所谓常量可以理解成一重特殊的变量,它的值被设定后,在程序运行过程中不允许被改变

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

命名规范

简而言之,参考阿里云Java规范

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

运算符

如图:

image-20210313165252521

运算操作都是往高类型转

自动升为混合运算类型中最高类型

比如:long a = 12345L; int b = 2;
a+b后的结果是long类型

短路运算

组合逻辑运算,如果前面结果就为false,那么后面就不会进行了

int a = 5;
boolean b = (c<4)&&(c++<4);
System.out.println(b);//结果为false
System.out.println(a);//结果为5

位运算

A = 0011 1100
B = 0000 1101
A&B = 0000 1100 与操作:相同保持相同,不同为0
A|B = 0011 1101 或操作:只要一个是1就为1,都是0才为0
A^B = 0011 0001 异或操作:相同为0,不同为1
~B = 1111 0010 取反:顾名思义

左移:<<  右移:>>  

带字符串运算

int a=10,b=20;
System.out.println(""+a+b); //结果是1020
System.out.println(a+b+"");//结果是30

Math

提供非常多的运算方法,一般在Java中涉及到复杂运算会使用这个工具类来操作!

自增和自减

重点(面试和笔试高频)

b=a++;先给b赋值,再自增

c=++a;先自增,再给c赋值

 public static void operator1(){
     //++ -- 自增,自减
     int a = 3;
     int b = a++; //先给b赋值,再自增
     //a++ => a = a + 1

    int c = ++a;//先自增,在给c赋值
    //++a => a+1

    System.out.println(a); // 5
    System.out.println(b); // 3
    System.out.println(c); // 5
}

另外补充:

a+=b; // a = a + b
a-=b; // a = a - b

三元运算符

必须掌握,开发常用

x  ?  y : z

如果x==true,则结果为y,否则结果为z

包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间

  • 宝语句的语法格式为:

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

  • 如果我们在Java程序中明确导入某个包,需要用到“import”语句

JavaDoc生成文档

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

    javadoc -encoding UTF-8 -charset UTF-8
    
  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指名需要醉倒使用的jdk版本
    • @param 参数名
    • @return 返回值
    • @throws 异常抛出
posted @ 2021-03-13 18:07  教长  阅读(47)  评论(0编辑  收藏  举报