Java基础

注释

写注释是一个非常好的习惯,可以让别人跟自己更好的理解自己的代码。

可以搜索”有趣的代码注释“来看一些神注释。

  • 单行注释

    • 用//标识单行注释

      //这是一行单行注释。
      
  • 多行注释

    • 用/**/来表示多行注释

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

    • 用/** */来标识文档注释可以用来加东西

      /**
      *@Description HelloWorld
      *@Author 沐辰
      */
      

标识符

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

  • 所有的标识符以字母、$、下划线(_)开始

  • 首字符后可以是字母、$、下划线或数字的任何字符组合

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

  • 标识符大小写敏感

  • 可以用汉字,但不推荐使用,也可以用拼音,不推荐。

    String $hello = "Hello World";
    String _hello = "Hello World";
    String hello = "Hello World";
    String Hello = "Hello World";
    

关键字

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

数据类型

  • 强类型语言

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

  • Java的数据类型分为两大类

    • 基本类型
      • 数值类型
        • 整数类型:byte占1个字节,short占2个字节,int占4个字节,long占8个字节。
        • 浮点类型:float占4个字节,double占8个字节。
        • 字符类型:char占2个字节。
      • boolean类型:占1位,值只有true和false两个。
    public class demo2 {
        public static void main(String args[]){
            //八大基本类型。
    
            //整数
            int num1 = 10;//最常用
            byte num2 = 10;
            short num3 = 30;
            long num4 = 30L;//Long类型要在数字后面加L
    
            //小数:浮点数
            float num5 = 10.1F;//float类型要在数字后面加个F。
            double num6 = 123.213;
    
            //字符
            char name = 'A';
            //字符串,String不是关键字,是类。
            String name2 = "沐辰";
    
            //布尔值:是非
            boolean flag = true;
        }
    }
    
    • 引用类型:类、接口、数组。

数据类型拓展

  • 整数拓展

    • 进制:二进制0b,八进制0,十六进制0x
    	  int i = 10;
            int i2 = 010;
            int i3 = 0x10;
            System.out.println(i);
            System.out.println(i2);
            System.out.println(i3);
    
  • 浮点数拓展;如银行业务,钱。

    • float 有限 离散 舍入误差 大约 接近但不等

    • double

    • 最好完全避免浮点数进行比较

      float f = 0.1f;
      double f2 = 0.1;
      System.out.println(f==f2); //false;
      System.out.println(f);
      System.out.println(f2);
      
  • 字符拓展

    • 所有字符本质还是数字

    • Unicode编码表,每个字符都有对应的数字。U0000~UFFFF

      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等。

  • 布尔值扩展

    Less is more

    下面的两个if是等效的。

    boolean flag = true;
    if(flag == true){}
    if (flag){}
    
  • 字符串扩展

    • ”==“比较的是字符串的地址,new String会开辟新的地址存储字符串,导致sa、sb的地址不同。
    • 字符串比较是否相同要用equal。
    String sa = new String("Hello World!");
    String sb = new String("Hello World!");
    System.out.println(sa == sb); //false
    String sc = "Hello World!";
    String sd = "Hello World!";
    System.out.println(sc == sd); //true
    

类型转换

JDK7的新特性,可以数字之间可以使用下划线分割:100_0000_0000。

  • 由于Java是强类型语言,所以进行某些运算的时候,会进行类型转换。字节大小从低到高。

    • byte,short,char->int->long->float->double
  • 运算过程中,不同类型的数据先转化为同一类型再进行运算。

  • 强制类型转换:(类型)变量名 高--低

  • 自动类型转换:自动进行 低--高

  • 注意:

    1. 不能对布尔类型进行转换。
    2. 不能把对象类型转换为不相干的类型。
    3. 高容量转换为低容量时,使用强制转换。
    4. 转换的时候可能会出现内存溢出或者精度问题。

变量

  • 变量就是可以变化的量
  • Java是强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    • 变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须一分号结束。

变量作用域

  • 类变量:static。
  • 实例变量:从属于对象,如果不进行初始化,这个类型的默认值 0、0.0;布尔值默认false;出了基本类型,其余都是null。
  • 局部变量:必须声明和初始化值。

常量

  • 常量:初始化后不能再改变值,不会变动的值。

  • 可以理解为特殊的变量,在程序运行过程中不允许被改变。

  • 定义方法:

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

变量的命名规范

  • 所有的变量、方法、类名:见名知意。
  • 类成员变量:首字母小写和驼峰原则,即小驼峰,除了第一个单词以外,后面的单词首字母大写。
  • 局部变量:小驼峰原则。
  • 常量:大写字母和下划线:MAX_VALUE。
  • 类名:首字母大写和驼峰原则,即大驼峰。
  • 方法名:小驼峰原则。

包机制

包的本质是文件夹。

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

  • 包语句的语法格式为:

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

  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。“import“语句。

    import pkg1[. pkg2[. pkg3...]].(classname|*)
    

JavaDoc文档生成

  • javadoc命令是用来自己生成API文档的。
  • 参数信息:
标签 说明 JDK 1.1 doclet 标准doclet 标签类型
@author 作者 作者标识 包、 类、接口
@version 版本号 版本号 包、 类、接口
@param 参数名 描述 方法的入参名及描述信息,如入参有特别要求,可在此注释。 构造函数、 方法
@return 描述 对函数返回值的注释 方法
@deprecated 过期文本 标识随着程序版本的提升,当前API已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API。 包、类、接口、值域、构造函数、 方法
@throws异常类名 构造函数或方法所会抛出的异常。 构造函数、 方法
@exception 异常类名 同@throws。 构造函数、 方法
@see 引用 查看相关内容,如类、方法、变量等。 包、类、接口、值域、构造函数、 方法
@since 描述文本 API在什么程序的什么版本后开发支持。 包、类、接口、值域、构造函数、 方法
链接到某个特定的成员对应的文档中。 包、类、接口、值域、构造函数、 方法
当对常量进行注释时,如果想将其值包含在文档中,则通过该标签来引用常量的值。 √(JDK1.4) 静态值域

Dos命令生成注释文档

在代码中写完文档注释之后,可以通过Dos命令,在当前文件夹下生成对应的JavaDoc文档。

命令为:javadoc [选项] [软件包名称] [源文件]

例如:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

IDEA生成注释文档

Tools -> Generate JavaDoc -> 选择要生成的包、选项 -> 生成

注意:

  • 路径中不可以有中文,否则报错。
  • Local可以填写语言,zh_CN问中文。
  • Local下面的Other...可以填入其他选项,如:-encoding UTF-8 -charset UTF-8 。

各种编码规范推荐阅读《阿里巴巴Java开发手册》
《阿里巴巴Java开发手册》下载

posted @ 2022-03-02 23:11  洛沐辰  阅读(24)  评论(0编辑  收藏  举报