Java基础

注释

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

  • 平时写代码一定要注意规范。

  • Java中的注释有三种:

    1. 单行注释

    2. 多行注释

    3. 文档注释

  //单行注释 :只能注释一行文字   
  // 注释内容
  //我是单行注释
     
  //多行注释:可以注释一段文字  
  /* 注释内容 */
  /*
  我是多行注释
  */
 ​
  //JavaDoc:文档注释  
  /** 注释内容 */
  /**
  * @Description HelloWorld
  * @Author 小羊是头猪
  */

 

标识符

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

关键字

不能使用保留关键字来命名类、方法或变量。

将Java关键字进行分类,并将Java关键字含义整理成表,如下表所示:

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

命名规则

  1. 所有的标识符都应该以字母(A-Z或a-z)下划线(_),美元符号($)开头。但是不能以数字开头。

  2. 首字符后可以跟字母(A-Z或a-z)、下划线(_)、美元符($)或数字的任何字符组合。

  3. 不能使用java中的关键字做标识符。

  4. Java标识符大小写敏感,长度无限制。注意:不能使用java中的关键字做标识符。

数据类型

  • 强类型语言

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

  • 弱类型语言

java的数据类型分为两大类:

  1. 基本类型

    Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

    数据类型字节大小默认值
    byte 1个字节 0
    short 2个字节 0
    int 4个字节 0
    long 8个字节 0L
    float 4个字节 0.0f
    double 8个字节 0.0d
    char 2个字节 'u0000'
    boolean 1位 false
  2. 引用类型

    • 引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。

    • 对象、数组都是引用数据类型。

    • 所有引用类型的默认值都是null。

    • 一个引用变量可以用来引用任何与之兼容的类型。

查看源图像

类型转换

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

    低--------------------------------------------------------------------->高

    byte,short,char —> int —> long —> float —> double

  • 运算中,不同类型的数据先转换为同一数据类型,然后进行运算。

 

强制类型转换

  //强制转换  (类型)变量名  高-->低
  int i = 128;
  byte b = (byte)i;
  System.out.println(b);//-128,溢出

自动类型转换

 //自动转换   低-->高

注意点

 /*
 注意点:
 1.不能对布尔值进行转换
 2.不能把对象类型转换为不相干的类型
 3.在把高容量转换到低容量的时候,强制转换
 4.转换的时候可能存在内存逸出,或者精度问题
  */
 //操作比较大的数的时候,注意溢出问题
 //JDK新特性,数字之间可以用下划线分割
 int money = 10_0000_0000;
 int years = 20;
 int total1 = money * years;//-1474836480,计算的时候溢出了
 long total2 = money * years;//默认是int,转换之前已经存在问题了
 long total3 = money * ((long)years);//先把一个数转换成long
 System.out.println(total1);//-1474836480
 System.out.println(total2);//-1474836480
 System.out.println(total3);//20000000000

变量

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

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

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

     type varName [=value][{varName[=value]}];
     //数据类型 变量名 = 值; 可以用逗号隔开来声明多个同类型变量。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。

  • 变量名必须是合法的标识符。

  • 变量声明是一条完整的语句,因此每个声明都必须以分号结束。

变量作用域

  1. 类变量

  2. 实例变量

  3. 局部变量

 public class Variable {
    static int allClicks = 0; //类变量
    String str = "HelloWorld"; //实例变量
    public void method(){
        int i = 0; //局部变量
    }
 }

变量的命名规则

  • 所有变量、方法、类名:见名知意

  • 类成员变量:首字母小写和驼峰原则:monthSalary

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runRun()

常量

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

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

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

运算符

  • Java 运算符

    计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:

    • 算术运算符

    • 关系运算符

    • 位运算符

    • 逻辑运算符

    • 赋值运算符

    • 其他运算符

     

    算术运算符

    算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

    表格中的实例假设整数变量A的值为10,变量B的值为20:

    操作符描述例子
    + 加法 - 相加运算符两侧的值 A + B等于30
    - 减法 - 左操作数减去右操作数 A – B等于-10
    * 乘法 - 相乘操作符两侧的值 A * B等于200
    / 除法 - 左操作数除以右操作数 B / A等于2
    % 取模 - 左操作数除以右操作数的余数 B%A等于0
    ++ 自增 - 操作数的值增加1 B++ 或 ++B 等于 21
    -- 自减 - 操作数的值减少1 B-- 或 --B 等于 19

 

自增、自减 相关注意点

 //++  -- 自增  自减   一元运算符
 int a = 3;
 int b = a++;//执行完这行代码后,先给b赋值,再自增
 ​
 System.out.println(a);//4
 ​
 int c = ++a;//执行完这行代码后,先自增,再给c赋值
 ​
 System.out.println(a);//5
 System.out.println(b);//3
 System.out.println(c);//5

逻辑与运算 相关注意点

 int c = 5;
 boolean d = (c<4)&&(c++<4);//逻辑与运算:第一个表达式为false,不再执行第二个表达式。
 System.out.println(d);//false
 System.out.println(c);//5

位运算符

符号描述运算规则
& 与 两个位都为1时,结果才为1
| 或 两个位都为0时,结果才为0
^ 异或 两个位相同为0,相异为1
~ 取反 0变1,1变0
<< 左移 各二进位全部左移若干位,高位丢弃,低位补0
>> 右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)
 /*
 A = 0011 1100
 B = 0000 1101
 ------------------
 A&B = 0000 1100
 A|B = 0011 1101
 A^B = 0011 0001
 ~B = 1111 0010
 ​
 面试题:如何最快计算2*8
 <<   *2
 >>   /2
 ​
  */
 int a = 2;
 a = a << 3;
 System.out.println(a);//16

 

更多文章请关注《万象专栏》