Java基础

注释

  • 单行注释
        //单行注释,只注释当前行
    多行注释
        /*
    	多行注释
    	多行注释
    	多行注释
    	......
         */
    文档注释
        /**
        *  javadoc注释
        *  javadoc注释
        *  javadoc注释
        **/
    

标识符

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

标识符的命名规则:

标识符的命名规范:

关键字

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 用在循环结构中

数据类型

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

Java的数据类型分为两大类

基本数据类型 占用空间大小 字节范围 举例
byte 1 -128 ~ 127 byte num = 10;
short 2 -32768 ~ 32767 short num = 10;
int 4 -2147483648 ~ 2147483647 int num = 10;
long 8 long num = 10L;
float 4 -2147483648 ~ 2147483647 float num = 3.14F;
double 8 double num =3,14;
char 2 0 ~ 65535 char name = '国';
boolean 1 true、false boolean flag = true;
#什么是字节
    位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制
    字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
    1B(byte,字节) = 8bit(位)
    字符:是指计算机中使用的字母、数字、字和符号
    1bit表示1位
    1Byte表示一个字节 1B = 8b
    1024B = 1KB
    1024KB = 1M
    1024M = 1G
二进制【以0b开始】 十进制 八进制【以0开始】 十六进制【以0x开始】
int i = 0b10; int i = 10; int i = 010; int i = 0x10;

转义字符出现在特殊字符之前,会将特俗字符转换成普通字符

\n 换行符
\t 制表符
\' 普通的单引号
\\ 普通的反斜杠
\" 普通的双引号

类型转换

低 --------------------------------------------------> 高
   byte,short,char -> int -> long -> float -> double 
  • 大容量转换成小容量,需要进行强制类型转换,强制类型转换需要加”强制类型转换符“。

    加上强制类型转换符之后编译通过了,但是运行阶段可能损失精度。

    所以强制类型转换符谨慎使用,因为损失精度之后可能损失很严重。

  • 小容量可以自动转换成大容量,称为自动类型转换机制

#注意点
    1.不能对布尔值进行转换
    2.不能把对象类型转换为不相干的类型
    3.再把高容量换到低容量的时候,强制转换
    4.转换的时候可能存在内存溢出,或者精度问题

变量

变量是什么:就是可以变化的量!

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

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

type varName [= value][{,varName[= value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。
#注意事项
    1.每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    2.变量名必须是合法的标识符。
    3.变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

变量作用域:其实描述的就是变量的有效范围。在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。

public class Variable{
    static int allClicks = 0;  //类变量
    String str = "hello world";  //实例变量
    public void method(){
        int i = 0;  //局部变量
        //变量类型(引用类型)  变量名字  =  new Variable();
        Variable variable = new Variable();
        System.out.println(variable.str);
        System,out.println(allClicks);
    }
}

常量

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

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

final 数据类型 常量名 = 值;
final double PI = 3.14;

常量名一般使用大写字符。

运算符

算术运算符 + , - , * , / , % , ++ , --
赋值运算符 =
关系运算符 > , < , >= , <= , == , != , instanceof
逻辑运算符 && , || , !
位运算符 & , | , ^ , ~ , >>(右移/2) , <<(左移*2) , >>>
条件运算符 ?:
扩展赋值运算符 += , -= , *= , /=
++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要++运算结束,该变量中的值一定会自加1
++运算符出现在变量后。规则:先做赋值运算,再对变量中保存的值进行自加1。
++运算符出现在变量前。规则:先进行自加1运算,然后再进行赋值操作。
&逻辑与(两边的算子都是true,结果才是true)
|逻辑或(两边的算子只要有一个是true,结果就是true)
!逻辑非(取反,!false就是true,!true就是false,这是一个单目运算符)
^逻辑异或(两边的算子只要不一样,结果就是true)
&&短路与 
||短路或
#注意
    1.逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
    2.短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象
    3.短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象
+运算符在java语言当中有两个作用:
    1.加法运算,求和
    当“+”运算符两边的数据都是数字的话,一定是进行加法运算。
    数字 + 数字 ---> 数字【求和】
    2.字符串的连接运算
    当“+”运算符两边的数据只要有一个数据是字符串,一定会进行字符串连接运算。并且连接运算之后的结果还是一个字符串类型
    数字 + “字符串” ---> “字符串”【字符串拼接】
在一个表达式出现多个“+”,在没有添加小括号的前提之下,遵循自左向右的顺序依次运算。
public static void main(String[] args){
    int a = 10;
    int b = 20;
    System.out.println("" + a + b);  // 1020
    System.out.println(a + b + "");  // 30
}
#三元运算符/三目运算符/条件运算符
#语法规则:
    布尔表达式?表达式1:表达式2;
#三目运算符的执行原理
    1.当布尔表达式的结果是true的时候,选择表达式1作为整个表达式的执行结果
    2.当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果
boolean sex = false;
char c = sex?'男':'女';
System.out.println(c); //可以,女
char c = sex?"男":'女';  //编译错误,类型不兼容,"男"是字符串,'女'是字符
System.out.println(sex?"男":'女');  //可以,因为println()可以输出字符串或字符

包机制

 package pkg1[.pkg2[.pkg3...]];
import package1[.package2].(classname|*);

JavaDoc

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

@author 作者
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
javadoc -encoding UTF-8 -charset UTF-8 java文件名[Doc.java]
posted @ 2021-08-10 11:40  ionicbond  阅读(45)  评论(0)    收藏  举报