前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java关键字和相关疑问总结

Java关键字和相关疑问总结

作者头像
李玺
发布2021-11-22 16:28:30
4701
发布2021-11-22 16:28:30
举报
文章被收录于专栏:爬虫逆向案例爬虫逆向案例

Java 关键字

类别

关键字

说明

访问控制

private

私有的

protected

受保护的

public

公共的

default

默认

类、方法和变量修饰符

abstract

声明抽象

extends

扩充,继承

final

最终值,不可改变的

implements

实现(接口)

interface

接口

native

本地,原生方法(非 Java 实现)

new

新,创建

static

静态

strictfp

严格,精准

synchronized

线程,同步

volatile

易失

程序控制语句

break

跳出循环

case

定义一个值以供 switch 选择

continue

继续

default

默认

do

运行

else

否则

for

循环

while

循环

if

如果

instanceof

实例

return

返回

switch

根据值选择执行

错误处理

assert

断言表达式是否为真

catch

捕捉异常

finally

有没有异常都执行

throw

抛出一个异常对象

throws

声明一个异常可能被抛出

try

捕获异常

包相关

import

引入

package

基本类型

boolean

布尔型

byte

字节型

char

字符型

double

双精度浮点

float

单精度浮点

int

整型

long

长整型

short

短整型

变量引用

super

父类,超类

this

本类

void

无返回值

保留关键字

goto

是关键字,但不能使用

const

是关键字,但不能使用

null

访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • public : 对所有类可见。使用对象:类、接口、变量、方法
  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

Java工具包数据结构

在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration)、 位集合(BitSet)、向量(Vector)、 栈(Stack)、字典(Dictionary)、哈希表(Hashtable)、 属性(Properties)

抽象类 - abstract

抽象类的特点:

  • 如果在一个类中定义了抽象方法,那么这个类就是抽象类;
  • 抽象类是无法实例化的,只能作为父类被继承使用;
  • 抽象类的构造器只能用于被实现的子类的构造器调用。

抽象类注意点

  • abstract 是不能修饰成员变量的;
  • 如果方法定义为 static,就不能使用 abstract 修饰符;
  • 如果方法定义为 private ,也不能使用 abstract 修饰符;

抽象类的作用:

  • 抽象类是多个子类的通用模板,子类在抽象类的基础上进行扩充,但是子类整体上会保留抽象类的行为方法(子类必须要实现抽象类的抽象方法否则会报错)。
  • 抽象类一般只是定义需要使用的方法,把不能实现的部分抽象成抽象方法,留给子类去实现。
  • 父类中可以有实现的方法,但是子类也是可以对已经实现的方法进行改造(override)但是如果在子类中还需要调用父类的实现方法,可以使用 super 关键字

implements和Interface的区别

implements 是实现借口的关键词! 而interface 是将一个类定义成借口的关键词!

goto 和 const

goto被称为无条件转移语句, const用来限定一个变量不允许被改变,产生静态作用。 但是在java中都是保留关键字,这些从c来的关键字都是保留使用,没有具体含义

Java的基本数据类型为什么不包括String

String是由基本类型char组成的,是一个类,它不是基本数据类型。

增强for循环和普通for循环区别

普通for循环遍历数组的时候需要索引(初值、条件、增长),普通for循环是能获取元素下标、通过下标遍历元素 增强for循环和python中的for循环一样,必须有被遍历的目标(如集合或数组),增强for 不能获取下标。

  • 当为ArrayLIst时,普通for的效率高于增强for
  • 当为LInkedList时,增强for的效率高于普通for

String [] 和 list 的区别

String[] 代表一维数组。String[][] 是二维数组。 String[] 数组是定长的、数组里面存放string型的值。 List 是一个集合,存放string类型的对象,只具有一个维度,但可根据需要自动扩充、修改、删除或插入数据。

switch case

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

  • 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。
  • 如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。如果后续的 case 语句块有 break 语句则会跳出判断。

( break 编译成字节码 就是 goto,对于机器码来说指令就是跳出。case > 通过逐个比较索引来匹配待跳转的行数,下标中没有这个关键字就依次返回所有输出,)

代码语言:javascript
复制
public class Test {
   public static void main(String args[]){
      int i = 1;
      switch(i){
         case 0:
            System.out.println("0");
         case 1:
            System.out.println("1");
         case 2:
            System.out.println("2");
         case 3:
            System.out.println("3"); break;
         default:
            System.out.println("default");
      }
   }
}
//>>> 输出结果:  1 2 3

java的抽象类和父类子类区别

父类是相对来说的,如果B类继承自A类,那么A类就是B类的父类,但是抽象类是一个绝对概念,只要使用abstract关键字声明的类都是抽象类。 抽象类不能够直接被实例化,一般来说,抽象类一定是某些类的父类,但是父类不一定是抽象类。

子类关系: 只要子类没有把从父类继承的抽象方法全部实现(注意是全部实现),就必须也变成抽象专类。 判断标准就是,非抽象子类中不能有抽象方法,如果有抽象方法,子类就必须是抽象类。如果子类添加了自己的抽象方法,子类也必须是抽象类,无论父类是不属是抽象类。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java 关键字
    • 访问控制修饰符
      • Java工具包数据结构
        • 抽象类 - abstract
          • implements和Interface的区别
            • goto 和 const
              • Java的基本数据类型为什么不包括String
                • 增强for循环和普通for循环区别
                  • String [] 和 list 的区别
                    • switch case
                      • java的抽象类和父类子类区别
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档