JAVA基础
注释
单行注释
单行注释只能注释一行的内容,这个用在注释信息内容较少的地方,
建议注释的双斜线与注释内容之间有且仅有一个空格。
// 这是注释的内容,请注意在双斜线之后有一个空格
多行注释
多行注释就是可以注释很多行的内容,一般首行和尾行为空。
注意:多行注释可嵌套单行注释,但多行注释不能嵌套多行注释和文档注释。
/*
这是注释的内容
*/
文档注释
文档注释也能注释多行内容,一般用在类,方法和变量上面,用来描述其作用(鼠标放在类和变量的上面即可自动显示出他们文档注释里面的内容)。
文档注释就是可以通过一个命令把文档注释里面的内容生成一个文档。
注意:文档注释里面可以嵌套单行注释,但是不能嵌套多行注释和文档注释,一般首行和尾行为空。
/**
*这里是注释的内容
*
*/
标识符和关键字
标识符
- 包名,类名,方法名,参数名,变量名等,这些符号被称为标识符。
- 标识符可以由字母、数字、下划线和美元符号组成
- 标识符不能以数字开头,不能是java中的关键字。
- 首字母之后可以是字母、美元符号、下划线、数字的任意组合。
- 标识符大小写敏感。
java标识符规则
-
包名统一使用 小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式
例:应用工具类包名为 com.alibaba.ei.kunlun.app.util 、类名为MessageUtils
-
类名和接口名每个单词首字母大写。
例:ArrayList
-
常量命名全部大写,单词之间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
例:MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
-
方法名、参数名、成员变量、局部变量统一使用lowerCameCase风格。
例:localValue / getHttpMessage() / inputUserid
关键字
-
关键字不能用于常量、变量、和任何标识符的名称。
-
所有的关键字都是小写。
-
程序中的标识符不能用关键字来命名
-
const和goto是保留关键字,在java中没有实际意义,但在程序中不能用来作为自定义的标识符。
-
true、false和null不属于关键字,他们是一个单独标识类型,不能直接使用。
类别 关键字 说明 访问控制 private 私有的 访问控制 protected 受保护的 访问控制 public 公共的 类、方法和变量修饰符 abstract 声明抽象 类、方法和变量修饰符 class 类 类、方法和变量修饰符 extends 扩充、继承 类、方法和变量修饰符 final 最终值,不可改变的 类、方法和变量修饰符 implements 实现(接口) 类、方法和变量修饰符 interface 接口 类、方法和变量修饰符 native 本地,原生方法(非java实现) 类、方法和变量修饰符 new 新,创建 类、方法和变量修饰符 static 静态 类、方法和变量修饰符 strictfp 严格,精准 类、方法和变量修饰符 synchronized 线程,同步 类、方法和变量修饰符 transient 短暂 类、方法和变量修饰符 volatile 易失 程序控制语句 break 跳出循环 程序控制语句 case 定义一个值以供switch选择 程序控制语句 continue 继续 程序控制语句 default 默认 程序控制语句 do 运行 程序控制语句 else 否则 程序控制语句 for 循环 程序控制语句 if 如果 程序控制语句 instanceof 实例 程序控制语句 return 返回 程序控制语句 switch 根据值选择执行 程序控制语句 while 循环 错误处理 assert 断言表达式是否为真 错误处理 catch 捕捉异常 错误处理 finally 有没有异常都执行 错误处理 throw 抛出一个异常对象 错误处理 throws 声明一个异常可能被抛出 包相关 try 捕获异常 包相关 import 引入 基本类型 package 包 基本类型 boolean 布尔型 基本类型 byte 字节型 基本类型 char 字符型 基本类型 double 双精度浮点型 基本类型 float 单精度浮点型 基本类型 int 整型 基本类型 long 长整型 基本类型 short 短整型 基本类型 super 父类,超类 变量引用 this 本类 变量引用 void 无返回值 保留关键字 goto 保留,不能使用 保留关键字 const 保留,不能使用 保留关键字 null 空
数据类型
分类
-
数值型
- 整数类型(byte,short,int,long)
- 浮点类型(float,double)
-
字符型(char)
-
布尔型(boolean)
-
引用数据类型
-
类(class)
-
接口(interface)
-
数组([])
类型 类型名称 关键字 占用内存 取值范围 作为成员变量的默认值 整型 字节型 byte 1字节 -128~127 0 整型 短整型 short 2字节 -32768~32767 0 整型 整型 int 4字节 -2147483648~2147483647 0 整型 长整型 long 8字节 -9223372036854775808~922372036854775807 0L 浮点型 单精度浮点型 float 4字节 -3.403E38~3.403E38 0.0F 浮点型 双精度浮点型 double 8字节 -1.798E308~1.798E308 0.0D 字符型 字符型 char 2字节 表示一个字符,如(‘a’,‘A’,‘家’) ‘\u0000’ 布尔型 布尔型 boolean 1字节 只有2个值,true和false false
-
转换
-
定义
-
数据类型的转换是在所赋值的数据类型和被变量接受的数据类型不一致时发生的,他需要从一种数据类型转换成另一种数据类型。
-
分类
-
隐式转换
- 定义
- 在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据
- 转换规则
- 数值型数据的转换:byte->short->int->long->float->double。
- 字符型转换为整型:char->int。
- 转换条件
- 自动类型转换的实现需要同时满足两个条件:1. 两种数据类型彼此兼容。2. 目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)。例如byte类型向short类型转换时,由于short类型的取值范围比较大,会自动将byte转换为short类型。
- 定义
-
显示转换
-
定义
- 当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。
-
语法格式
-
目标类型 变量名 = (目标类型)(被转换的数据);
举例:int a = (byte)(a+b);
-
-
注意
- 如果超出了被赋值的数据类型的取值范围得到的结果会与预期不同。
- 不建议强制转换,数据的精度会丢失。
-
-
-
变量
-
所有变量
-
成员变量
-
实例变量
-
作用域与对应实例的生存范围相同
-
访问修饰符可以修改实例变量
-
-
类变量
- 作用域与这个类的生存范围相同
- 静态变量可以通过ClassName.VariableName的方式访问
-
-
局部变量
访问修饰符不能用于局部变量,局部变量是在栈上分配的,局部变量没有默认值,所以局部变量必须在被声明后初始化才可以使用。
- 形参(方法签名中定义的变量)
- 作用域在整个方法内有效
- 方法局部变量
- 作用域是从定义该变量的地方生效,到该方法结束时失效
- 代码块局部变量(在代码块内定义)
- 作用域从定义该变量的地方生效,到该代码块结束时失效。
- 形参(方法签名中定义的变量)
-
运算符
- 算数运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:%%,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?,:
- 扩展赋值运算符:+=,-=,*=,/=
包机制
为了更好的组织类,java提供包机制,用于区别类名的命名空间
package pkg1[.pkg2[.pkg3...]];
为了能够使用某一个包,在写java程序的时候需要明确导入该包,使用"import"实现
import package1[.package2...].(classname|*);
注意:导入其他包一定要在包机制语句的下面
JAVADOC
javadoc命令是用来生成自己API文档的,使用方式:在目标文件目录下使用命令行输入javadoc +文件名.java 并可在后面加入参数。