IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java基础复习 -> 正文阅读

[Java知识库]Java基础复习

1. JDK、JRE、JVM的区别

jdk Java开发工具包

jre Java运行环境

jvm Java虚拟机

2.环境变量的解释

目的: 在任意路径下都可以执行相关命令

原理: 要执行命令,先在当前目录下查找,如果没有就去环境变量里PATH挨个查找。

3.Java的访问修饰符

public > protected > (default) > private

在这里插入图片描述

4.Java关键字有哪些

package,class,public,interface,instanceof,abstract等

特点:都是小写,在编译器中是蓝色

5.Java的基本数据类型?

short、int、double、float、long、byte、char,boolean

这8个基本数据类型每个对应一个包装类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3y9rsXM-1631027224137)(C:/Users/16015/AppData/Roaming/Typora/typora-user-images/image-20210907134716745.png)]

6.类,方法,常量,包名的命名规则

1.不能以数字开头

2.不能使用保留字

3.大小写敏感

4.类名建议首字母大写,如果有多个单词可以用_或者让第二个单词首字母大写

5.方法名首字母小写多个单词第二个单词首字母大写

6.包名用小写

7.常量名:全部大写,多个单词之间使用下划线连接

7.static 可修饰什么? static 修饰的 跟非static修饰的区别?

  1. static可以修饰属性,方法,代码块
  2. static随着类加载而加载
  3. static归类所用,非static归实例所有

8.final可以修饰什么?

  1. 类、变量、方法
  2. final修饰的类不能继承
  3. final修饰的方法不能重写
  4. final修饰的变量只能被赋值一次

9.为什么String 是 final 的 ?

  1. 从安全角度讲,使用final修饰可以保证共享变量安全性,就是禁止修改共享对象
  2. 从性能角度讲,使用final修饰字符串不可变,字符串池才可能实现。字符串池可以节约很多堆空间,因为不同的字符串变量都指向池中的同一个字符串。

10.String 和 StringBuffer,StringBuilder 的区别是什么?

  1. 安全角度:String > StringBuffer > StringBuilder
    1. String被final修饰不可变,线程安全
    2. StringBuffer对方法加了同步锁,线程安全
    3. StringBuilder没有对方法加同步锁,线程不安全
  2. 速度角度:StringBulider > StringBufffer > String
  3. 可变性: String被final修饰不可变,StringBuffer和StringBuilder都可变
  4. 性能角度:对String对象改变时都会生成一个新的String对象,然后指针指向新的对象。 StringBuffer每次操作的都是对象本身。StringBuilder相比较StringBuffer会更快一些,因为StringBuffer加了同步的关键字性能有所下降。

11.==和equals的区别

  1. ==在比较对象时它比较的是对象的地址值,看是否是同一个对象。比较基本数据类型或者他们的包装类对象时比较的是他们的值。
  2. equals在没有被重写时比较的是地址值,重写equals后比较的是值

12.自动拆箱、装箱介绍?

自动拆装箱就是基本数据类型与他的包装类间相互转换

自动装箱: Integer num = 1;

手动装箱:Integer num = new Integer(1);

自动拆箱:int num2 = num;

手动拆箱:int num2 = num.intValue();

13.值传递 和 引用传递

  1. 值传递就是将变量的值传给方法,方法执行结束后变量值不变
  2. 引用传递就是将变量的地址传给方法,方法执行过程中会对变量进行改变。

14.重载重写的区别

  1. 重载:重载发生在一个类中,同名不同参,其他(修饰符和返回类型)都无关
  2. 重写:重写发生在父子类中,方法和参数列表必须相同,返回值类型小于等于父类(父类返回A类,子类不能返回Object类),抛出异常小于等于父类,访问修饰符大于等于父类。

15.JVM中类加载的过程

java 类加载过程包括:加载–>验证–>准备–>解析–>初始化

16.介绍下反射

  1. 反射是指在运行状态中,可以获取任意一个类或对象的所有信息(类中声明的方法、属性、构造器)以及动态调用对象中方法。

  2. 反射的作用:可以增加程序的灵活性,避免将代码写死;

    ? 反射可以让程序进行自我检查自身信息。

17.接口和抽象类的区别

  1. 相同点:都不能被实例化,都可以定义抽象方法

  2. 不同点

    ? 接口使用interface声明,抽象类使用abstract class 声明,一个类可以实现多个接口,但只能继承一个抽象类

    ? 接口中不能声明构造器,抽象类中可以声明构造器(用于被子类调用)

    ? 抽象类中可以有带方法体的默认方法的。

18.介绍一些异常

异常顶级父类:Throwable它下面分为Error和Exception

编译期异常:写代码时编译器爆红

运行期异常:编译期不爆红,运行时出现非正常情况导致JVM停止

Throwable:

? |–Error: 重大的问题,我们处理不了。也不需要编写代码处理。比如说内存溢出。

? |–Exception: 一般性的错误,是需要我们编写代码进行处理的。

? |–RuntimeException: 运行时异常,这个我们也不需要处理。

? 其实就是为了让他在运行时出问题,然后我们回来修改代码。

? |-- NullPointerException 空指针异常,最常遇到

? |-- ArrayIndexOutOfBoundsException 下标越界异常

? |-- IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。

? |-- SQLException sql异常 非常熟悉的错误信息就是Unknown column xxx,这种错误的话,就是列名错了,还有就是 You have an error in your SQL syntax,check xxxx near xxx,这个错误就是sql语法错误,异常信息会指出来错误的具体地方

? |-检查异常/编译异常 : 对于检查的异常必须处理,可以采用捕获或抛出式解决

? |-- ClassNotFoundException 类找不到异常

? |-- FileNotFound 文件找不到异常,在文件操作的时候,一不小心路径写错了,或者是windows切换linux的时候,因为路径格式不一致,经常会有这个错误

? |–ParseException 解析异常,一般当日期字符串解析时与指定格式不一致就是出现这个问题

19.Java中的异常处理

? 一共有三种: 抛出式,捕获式,声明式

  1. throw

    在指定方法中抛出指定异常

例 if(a==b){

? throw new ClassNotFoundExecption();

}

2.throws

? 自己解决不了往上抛

public static void get() throws Exception{

}

  1. try…catch常用不多赘述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:40:35  更:2021-09-11 18:40:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:31:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码