Java基础
一串烦恼丝
这个作者很懒,什么都没留下…
展开
-
Java基础:多线程
1、创建线程的几种方法?答案:1)、继承Thread类;2)、实现Runable接口;3)通过 Callable 和 Future2、Runnable 和 Callable 有什么区别?答案:1)、Runnable接口实现的多线程中的run()方法是没有返回值的,仅是为了执行run()中的方法;2)、Callable接口实现的call()方法,是有返回值的。3、多线程的生命周期?答案:新建——>可运行——>运行——>阻塞——>死亡...原创 2021-07-27 22:59:34 · 56 阅读 · 0 评论 -
Java基础:throw 和 throws 的区别?
(1)throw:在方法体内部,表示抛出异常,由方法体内部的语句处理;throw 是具体向外抛出异常的动作,所以它抛出的是一个异常实例;(2)throws:在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理;表示出现异常的可能性,并不一定会发生这种异常。...原创 2021-07-27 22:39:27 · 92 阅读 · 0 评论 -
Java基础:运行时异常和受查异常的区别?
运行时异常:在编译时和正常代码一样,只有当程序运行到异常处时,才会报出错误。受查异常:在编译的时候,就已经发现了错误,会强制添加处理机制原创 2021-07-26 22:57:14 · 96 阅读 · 0 评论 -
Java基础:Error 和 Exception 的区别?
Error 类和 Exception 类的父类都是 Throwable 类。主要区别如下:Error 类: 一般是指与虚拟机相关的问题,如:系统崩溃、虚拟机错误、内存空间不足、方法调用栈溢出等。这类错误将会导致应用程序中断,仅靠程序本身无法恢复和预防;Exception 类:分为运行时异常和受检查的异常。...原创 2021-07-26 22:50:05 · 73 阅读 · 0 评论 -
Java基础:try-catch-finally 中那个部分可以省略?
catch 可以省略。try 只适合处理运行时异常,try+catch 适合处理运行时异常+普通异常。也就是说,如果你只用 try 去处理普通异常却不加以 catch 处理,编译是通不过的,因为编译器硬性规定,普通异常如果选择捕获,则必须用 catch 显示声明以便进一步处理。而运行时异常在编译时没有如此规定,所以 catch 可以省略,你加上 catch 编译器也觉得无可厚非。...原创 2021-07-26 22:49:02 · 2758 阅读 · 0 评论 -
Java基础:try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
会。程序在执行到 return 时会首先将返回值存储在一个指定的位置,其次去执行 finally 块,最后再返回。因此,对基本数据类型,在 finally 块中改变 return 的值没有任何影响,直接覆盖掉;而对引用类型是有影响的,返回的是在 finally 对 前面 return 语句返回对象的修改值。...原创 2021-07-26 22:46:54 · 647 阅读 · 0 评论 -
Java基础:finally 是不是一定会被执行到?
不一定。举例如下:1、程序在进入try语句之前就已经出现异常,就会直接结束,不会执行finally代码块中的代码。2、当程序在 try 块中强制退出时,也是不会去执行 finally 块中的代码,比如在 try 块中执行 exit 方法。...原创 2021-07-26 22:45:00 · 376 阅读 · 0 评论 -
Java基础:finally 块中的代码什么时候被执行
在 Java 语言的异常处理中,finally 块的作用就是为了保证无论出现什么情况,finally 块里的代码一定会被执行。由于程序执行 return 就意味着结束对当前函数的调用并跳出这个函数体,因此任何语句要执行都只能在 return 前执行,因此 finally 块里的代码也是在 return 之前执行的。此外,如果 try-finally 或者 catch-finally 中都有 return,那么 finally 块中的 return 将会覆盖别处的 return 语句,最终返回到调用者那里原创 2021-07-26 22:42:24 · 267 阅读 · 0 评论 -
Java基础:字节和字符的区别?
字节是存储容量的基本单位;字符是数字、字母、汉字以及其他语言的各种符号;1 字节 = 8 个二进制单位,一个字符由一个字节或多个字节的二进制单位组成。原创 2021-07-26 22:28:59 · 109 阅读 · 0 评论 -
Java基础:super 关键字的作用?
(1)访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。(2)访问父类的成员:如果子类重写了父类的某个方法,可以通过使用 super 关键字来引用父类的方法实现。(3)this 和 super 不能同时出现在一个构造函数里面,因为 this 必然会调用其它的构造函数,其它的构造函数必然也会有 super 语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。...原创 2021-07-26 22:27:34 · 423 阅读 · 0 评论 -
Java基础:Java 中的参数传递时传值呢?还是传引用?
Java 的参数是以值传递的形式传入方法中,而不是引用传递。当传递方法参数类型为基本数据类型(数字以及布尔值)时,一个方法是不可能修改一个基本数据类型的参数。当传递方法参数类型为引用数据类型时,一个方法将修改一个引用数据类型的参数所指向对象的值。即使 Java 函数在传递引用数据类型时,也只是拷贝了引用的值罢了,之所以能修改引用数据是因为它们同时指向了一个对象,但这仍然是按值调用而不是引用调用。...原创 2021-07-26 22:24:02 · 595 阅读 · 0 评论 -
Java基础: & 和 && 的区别?
Java中&& 与 & 都表示逻辑运算 "与",两边的逻辑运算都为true时,最后结果才会是true,否则是false。&&:有短路功能,当第一个表达式的值为 false 的时候,则不再计算第二个表达式。&:不管第一个表达式结果是否为 true,第二个都会执行。除此之外,& 还可以用作位运算符:当 & 两边的表达式不是 Boolean 类型的时候,& 表示按位操作。...原创 2021-07-26 22:20:07 · 129 阅读 · 0 评论 -
Java基础:集合
Java中的集合框架分为两大类:1、collection,集合,用来存储元素2、map,用来存储键值对的映射collection集合的子类主要有三个:List、Set、queue(队列)List接口主要的实现类:ArrayList、LinkedListArrayList:底层的数据结构是基于数组来实现的,LinkedList:底层的数据结构是基于链表来实现的,...原创 2022-11-27 18:35:47 · 152 阅读 · 0 评论 -
Java基础:String、StringBufferStringBuilder之间的区别?
1、String是不可变字符,改变字符串相当于新创建一个堆内存2、StringBuffer,字符串可变,线程同步,安全性比较高,但是性能<StringBuilder3、StringBuilder,字符串可变,线程不同步,线程不安全,但是性能优于StringBuffer...原创 2021-07-21 00:46:28 · 77 阅读 · 0 评论 -
Java基础:重载(overload)与重写(override)的区别
重载(overload):就是重新载入的意思,必须具备以下三个要素1、在同一个类中;2、方法名相同;3、参数列表不同;返回值可相同可不同;最常用的地方:构造函数应用重载比较多重载规则:1、被重载的方法必须改变参数列表(参数个数或类型不一样);2、被重载的方法可以改变返回值类型3、被重载的方法可以改变方法修饰符4、被重载的方法可以声明新的或更广的检测异常5、方法可以在一个类中或者一个子类中重载6、无法以返回...原创 2021-07-21 00:29:37 · 170 阅读 · 0 评论 -
Java基础:JDK、JRE、JVM 三者之间的关系?
JDK(Java Development Kit):是 Java 开发工具包,是整个 Java 的核心,包括了 Java 运行环境 JRE、Java 工具和 Java 基础类库。JRE( Java Runtime Environment):是 Java 的运行环境,包含 JVM 标准实现及 Java 核心类库。JVM(Java Virtual Machine):是 Java 虚拟机,是整个 Java 实现跨平台的最核心的部分,能够运行以 Java 语言写作的软件程序。所有的 Java 程序会首先被编译为原创 2021-07-20 23:49:30 · 66 阅读 · 0 评论 -
Java基础:面向对象的三大特性?分别解释下?
面向对象的三大特性:继承、封装、多态封装:是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。通俗来说,就是将一大堆实现逻辑,放在一个盒子里面。我们使用的时候,只需要调用封装好的盒子即可。封装的优点:1、良好的封装能减少耦合 2、类内部的结构可以自由修改 3、可以对成员变量进行更精确的控制 4、隐藏信息,实现细节继承:就是子类继承父类的特征和行为,使得子...原创 2021-07-20 23:42:22 · 1392 阅读 · 0 评论 -
Java基础:解释下什么是面向对象?面向对象和面向过程的区别?
面向对象是一种基于面向过程的编程思想,是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。由执行者变为指挥者,在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动。区别:1、编程思路不同:面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。2、封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。3、面向对象具有继承性和多态性,而面向原创 2021-07-20 23:11:23 · 1648 阅读 · 0 评论