JAVA基础2

2022年05月11日 阅读数:3
这篇文章主要向大家介绍JAVA基础2,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

关键字

关键字 含义
byte 基本数据类型之一,字节类型。可存储在[-128,127]范围之内的整数值
short 基本数据类型之一,短整数类型。能够存储16位带符号的整数
int 基本数据类型之一,整数类型。能够存储32位的整数值
long 基本数据类型之一,长整数类型。能够存储64位的带符号整数
float 基本数据类型之一,单精度浮点数类型。能够存储单精度浮点值
double 基本数据类型之一,双精度浮点数类型。能够存储双精度浮点值
char 基本数据类型之一,字符类型。char变量能够存储一个Unicode字符
boolean 基本数据类型之一,布尔类型。能够是true或false
abstract 代表类或者成员方法具备抽象属性。能够修饰类或方法,abstract类能够扩展(增长子类),但不能直接实例化。abstract方法不在声明它的类中实现,但必须在某个子类中重写
class 声明一个类。类是面向对象的程序设计方法的基本构造单位。类一般表明某种实际实体,如几何形状或人。类是对象的模板。每一个对象都是类的一个实例
extends 代表一个类型是另外一个类型的子类型,这里常见的类型有类和接口。用在class或interface声明中,用于指示所声明的类或接口是其名称后跟有extends关键字的类或接口的子类
final 用户说明最终属性,代表一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量。能够应用于类,以指示不能扩展该类(不能有子类)。能够应用于方法,以指示不能重写任何子类中的方法
implements 代表一个类实现了给定的接口。implements关键字在class声明中使用,以指示所声明的类提供了在implements关键字后面的名称所指定的接口中所声明的全部方法的实现
interface 接口。用来声明新的Java接口,接口是方法的集合
private 一种访问控制方式:私用模式。private关键字是访问控制修饰符,能够应用于类、方法或字段(在类中声明的变量)
protected 一种访问控制方式:保护模式。protected关键字是能够应用于类、方法或字段(在类中声明的变量)的访问控制修饰符
public 一种访问控制方式:共用模式。public关键字是能够应用于类、方法或字段(在类中声明的变量)的访问控制修饰符
static 代表具备静态属性。能够应用于内部类(在另外一个类中定义的类)、方法或字段(类的成员变量)
void 声明当前成员方法没有返回值。void关键字表示null类型
break 提早跳出一个块。用于提早退出for、while或do循环,或者在switch语句中用来结束case块。(break老是退出最深层的while、for、do或switch语句。)
case 用在switch语句之中,表示其中的一个分支。用来标记switch语句中的每一个分支
continue 回到一个块的开始处。用来跳转到for、while或do循环的下一个迭代。continue老是跳到最深层while、for或do语句的下一个迭代
default 默认,例如,用在switch语句中,代表一个默认的分支。用来标记switch语句中的默认分支
do 用在do-while循环结构中。用于指定一个在每次迭代结束时检查其条件的循环
else 用在条件语句中,代表当条件不成立时的分支。老是在if-else语句中与if关键字结合使用。else子句是可选的,若是if条件为false,则执行该子句
for 一种循环结构的引导词。用于指定一个在每次迭代结束前检查其条件的循环
if 条件语句的引导词。有条件地执行代码块。条件的计算结果必须是布尔值
return 从成员方法中返回数据。return关键字会致使方法返回到调用它的方法,从而传递与返回方法的返回类型匹配的值
switch 分支语句结构的引导词。switch语句用于基于某个表达式选择执行多个代码块中的某一个
while 用在循环结构中。用于指定一个只要条件为真就会重复的循环。
catch 用在异常处理中,用来捕捉异常。用来在try-catch或try-catch-finally语句中定义异常处理块
finally 用于处理异常状况,用来声明一个基本确定会被执行到的语句块。用来定义始终在try-catch-finally语句中执行的块。finally块一般包含清理代码,用在部分执行try块后恢复正常运行
throw 抛出一个异常。用于引起异常
throws 声明在当前定义的成员方法中全部须要抛出的异常。throws关键字能够应用于方法,以便指出方法引起了特定类型的异常
try 尝试一个可能抛出异常的程序块。用于包含可能引起异常的语句块
import 代表要访问指定的类或包。import关键字使一个包中的一个或全部类在当前Java源文件中可见。能够不使用彻底限定的类名来引用导入的类
instanceof 用来测试一个对象是不是指定类型的实例对象。用来肯定对象所属的类
new 用来建立新实例对象。用于建立类的新实例
package 包。package关键字指定在Java源文件中声明的类所驻留的Java包
volatile 代表两个或者多个变量必须同步地发生变化。volatile关键字用于表示能够被多个线程异步修改的成员变量
transient 声明不用序列化的成员域。transient关键字能够应用于类的成员变量,以便指出该成员变量不该在包含它的类实例已序列化时被序列化
this 指向当前实例对象的引用。用于引用当前实例
synchronized 代表一段代码须要同步执行。synchronized关键字能够应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护
super 代表当前对象的父类型的引用或者父类型的构造方法。用于引用使用该关键字的类的超类
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的。能够应用于方法,以指示该方法是用Java之外的语言实现的
enum 枚举
assert 断言,用来进行程序调试
const 保留关键字,没有具体含义
goto 保留关键字,没有具体含义
false 布尔值,严格来讲属于关键字
true 布尔值,严格来讲属于关键字
null 空值,严格来讲属于关键字

标识符

  1. 凡是能够本身起名的都叫标识符(类名,变量名,函数名,接口名,包名…)
  2. 声明时必须遵照的规则
  • 由26个英文大小写,0-9,_和$组成
  • 数字不能开头
  • 不能是关键字和保留字
  • 严格区分大小写
  • 标识符不能包含空格

JAVA名称命名规范

  1. 包名:多单词组成时全部字母都小写
  2. 类名,接口名:多单词组成时单词首字母大写
  3. 变量名,方法名:多单词组成时第一个单词首字母小写,其余单词首字母大写
  4. 常量名:全部单词大写,多单词用_链接
  5. 命名时须要见名知意
  6. 中文也可命名,不推荐

变量

概念

  1. 内存中一个存储区域
  2. 变量中的数据能够变化
  3. 变量是程序中基本存储单元,包含变量类型,变量名和存储的值

语法

数据类型 变量名=值javascript

int myAge=20

注意

  1. 必须先声明后使用
  2. 变量的做用域,存储在{}
  3. 在做用域内不能重复声明

基本数据类型

基本数据类型

  1. 数值型
  • byte
  • short
  • int
  • long (long型变量是以大写L或小写l结尾)
  • float(float型变量是以大写F或小写f结尾)
  • double
  1. 字符型
  • char(内部只能写一个字符)
  1. 布尔型
  • boolean(两个值之一true或false)

引用数据类型

  • class
  1. 接口
  • interface
  1. 数组
  • []

字符串类型String

  1. String属于引用数据类型
  2. String引用时用“”
  3. String和八种数据运算’+‘是拼接成为字符串

基本数据类型之间的转换

自动类型提高

  1. 当小容量数据类型与大容量数据类型作运算时,结果自动提高为大容量数据类型
  2. byte,char,short=>int=>long=>float=>double
  3. 注:前面三个运算只能用int接受
class Test{
   
   
    public static void main (String[] args){
   
   
        byte a=10;
        byte b=1;
        byte c=a+b;
        System.out.println(c);
    }
}
//编译是显示错误: 不兼容的类型: 从int转换到byte可能会有损失
class Test{
   
   
    public static void main (String[] args){
   
   
        byte a=10;
        byte b=1;
        int c=a+b;
        System.out.println(c);
    }
}
//运行结果11

强制类型转换

  1. 自动类型提高运算的逆运算
  2. 须要使用强转符()
  3. 强制类型转换可能形成精度损失
class Test2{
   
   
    public static void main (String[] args){
   
   
        double a=12.3;
        int b=(int) a;
        System.out.println(b);
    }
}
//12
  1. 注:整型常量默认类型int,小数常量默认double

进制之间转换

  1. 二进制以0b和0B开头
  2. 十进制
  3. 八进制以0开头
  4. 十六进制以0x和0X开头
  5. 在输出时计算机会自动转换为10进制输出
class Test3{
   
   
    public static void main (String[] args){
   
   
        int a=0b1011;
        int b=123;
        int c=0123;
        int d=0x123;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}
//11
//123
//83
//291

运算符

算术运算符

运算符 含义
+ 正号表示加运算,有字符串参与,表示拼接字符串
- 减号表示减运算
* 表示相乘运算
/ 表示相处运算
% 模表示取余运算
++ 加一运算,在前加一再运算,在后运算再加一
减一运算,在前减一再运算,在后运算再减一
class Test4{
   
   
    public static void main (String[] arges){
   
   
        int num1=12;
        int num2=5;
        int result1=num1/num2;
        System.out.println(result1);
        //2,除法后的数据类型为int会精度损失
        double result2=num1/num2+0.0;
        System.out.println(result2);
        //2.0
        
        double result3=num1/(num2+0.0);
        System.out.println(result3);
        //2.4
        double result4=double(num1)/num2;
        System.out.println(result4);
        //2.4除数或被除数先转换为浮点数,获得的就是浮点数
        
    }
}

注:取模运算符号与被模数符号相同
示例:一个数拿到他的百,十,个位数java

class Test4{
   
   
    public static void main (String[] arges){
   
   
        int num=427;
        int bai=num / 100;
        int shi=num % 100 / 10;
        int ge=num % 10;
        System.out.println(bai);
        System.out.println(shi);
        System.out.println(ge);
        //4
        //2
        //7
    }
}

赋值运算符

运算符 含义
= 将左边直接赋值给右边
+= 将左变加右边赋值给右边
-= 将左边减右边赋值给右边
/= 将左边除以右边赋值给右边
*= 将左边除以右边赋值给右边
%= 将左边取模右边赋值给右边
class Test5{
   
   
    public static void main(String[] arges){
   
   
        int a1,a2;
        a1=a2=10;
        System.out.println(a1);
        //10
        System.out.println(a2);
        //10
        short num=10;
        //num =num +2//编译错误
        num +=2;
        System.out.println(num);
        //12
        
        int a=12;
        a +=(a++) + (++a)
        //a=12 + 12 + 14
        System.out.println(a);
        //38
    }    
}

比较运算符

运算符 含义
== 判断是否相等
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
instanceof 检查是不是类的对象

逻辑运算符

运算符 含义
& 逻辑与
&& 短路与
| 逻辑或
|| 短路或
! 逻辑非
^ 逻辑或非(二者不相同为true)
class Test5{
   
   
    public static void main(String[] arges){
   
   
        boolean a1=false;
        int num1=10;
        if(a1 & num1 ++>0){
   
   
            System.out.println("大于0");
        }else{
   
   
            System.out.println("小于0");
        }
        System.out.println(num1);

        boolean a2=false;
        int num2=10;
        if(a2 && num1 ++>0){
   
   
            System.out.println("大于0");
        }else{
   
   
            System.out.println("小于0");
        }
        System.out.println(num2);

    }    
}
//小于0
//10
//小于0
//11
//也就是短路逻辑在第一个条件知足后就不执行完后面操做了

位运算符

运算符 含义
<< 左移
>> 右移
>>> 无符号右移
& 与运算
| 或运算
^ 异或运算
~ 取反运算

注:位运算是对整数的二进制进行运算(每次左移乘2)web

三元运算符

格式:(条件表达式)? 表达式1 :表达式2;
注:与if-else区别数组

  • 三元运算符要求必须返回一个结果
  • 三元运算符能够简化位if-else
  • 表达式1与表达式2是同一种类型
  • 三元运算符能够嵌套
下一篇: JAVA基础1