java基础

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

 

posted @ 2021-11-17 20:01  小羊是頭豬  阅读(33)  评论(0)    收藏  举报