
Java基础
@阿颜
这个作者很懒,什么都没留下…
展开
-
数组和链表的区别
数组和链表的区别数组是将元素在内存中连续存储的数组优点: 因为数据是连续存储的,内存地址连续,所以在查找数据时,效率较高。数组缺点: 插入和删除效率低 可能浪费内存 内存空间要求高,必须有足够的连续内存空间。 数组大小固定,不能动态拓展链表是动态申请内存空间的,用的时候直接申请就行链表优点: 插入删除速度快 内存利用率高,不会浪费内存 大小没有固定,拓展很灵活。链表缺点: 不能随机查找,必须从第一个开始遍历,查找效率低...原创 2020-12-24 22:50:03 · 249 阅读 · 0 评论 -
&和&&的区别
&和&&的区别&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null原创 2020-12-22 22:29:01 · 1430 阅读 · 0 评论 -
String 类的常用方法
String类的常用方法equals():字符串比较indexOf():返回指定字符的索引charAt():返回指定索引处的字符replace():字符串替换trim():去除字符串两端空白split():分割字符串,返回一个分割后的字符串数组length():返回字符串长度toLowerCase():将字符串转换为小写toUpperCase():将字符串转换为大写substring():截取字符串getBytes():返回字符串的byte类型数组...原创 2020-12-19 10:21:35 · 99 阅读 · 1 评论 -
Java中常见的异常
Java中常见的异常算数异常类:ArithmeticExecption当出现异常的运算条件时,抛出此异常。如整数除以0时。空指针异常类型:NullPointerException调用空对象的实例方法访问或修改空对象的字段将 null 作为一个数组,并进行取长度、按索引访问元素等操作时类型强制转换类型:ClassCastException将一个类型转换成另一个类型,两个类型没有继承关系数组下标越界异常:ArrayIndexOutOfBoundsException使用超出数组下原创 2020-12-18 21:12:12 · 153 阅读 · 2 评论 -
Map集合的遍历方式(迭代方式)
Map集合的迭代方式1、可以获得Map实例中所有的Key组成Set集合(keySet()),随后使用迭代器iterator对key组成的Set集合进行迭代或者使用for-each方式进行迭代2、可以获得Map实例中所有的value组成Collection集合(被称作值集),随后使用迭代器iterator对Key组成的...原创 2020-12-18 14:59:31 · 448 阅读 · 2 评论 -
ArrayList LinkedList 和Vector 的区别
ArrayList LinkedList 和Vector 的区别相同点:都是java.util.List接口的实现类都是有序、可排序、可重复的集合都支持迭代器操作区别:1、实现接口不同ArrayList和Vector未实现Queue接口、Deque接口、不支持队列操作LinkedList实现了Queue接口和Deque接口,支持队列操作,同时支持栈操作2、内部实现不同ArrayList内部采用数组来存储元素Vector内部采用数组来存储LinkedList内部采用链表来原创 2020-12-14 22:49:08 · 307 阅读 · 0 评论 -
创建线程的方式
创建线程的方式1、继承Thread类自定义一个继承Thread类并重写其run()方法的类创建Thread实例(即创建Thread子类的实例)调用Thread实例的start()方法启动线程2、实现Runnable接口自定义一个实现Runnable接口并实现其run()方法的类创建Runnable实现类的实例创建Thread实例(将Runnable实例传递给Thread实例)调用Thread实例的start()方法启动线程3、利用线程池实现创建线程池创建任务通过创建Ru原创 2020-12-10 22:37:14 · 85 阅读 · 0 评论 -
Java中,访问修饰符
访问修饰符Java中,可以使用访问控制符来控制对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。1、公开的关键字:public访问范围:在任意位置都可以访问• 本类• 本包中其它类• 子类(本包和其它包)• 其它包的其它类2、受保护的关键字:protected访问范围:本类、本包内部、以及当前类的子类3、包私有包私有 也称作 默认的 或 缺省。关键字:没有关键字访问范围:本包内部如果某个字段没有显式访问修饰符,则默认就是 包私有。比如,下面这个字原创 2020-12-09 16:03:35 · 121 阅读 · 0 评论 -
Java中,this和super的区别
this 和 super 的区别相同:this和super都是与实例有关的使用this和super可以访问实例成员和类成员(虽然通过this和super可以访问类成员,但不建议使用)因此this和super都不能出现在static方法中和static代码块中(类初始化器)this和super都可以用于调用构造方法当通过this或super调用构造方法时,它们必须位于构造方法的第一行同一个构造方法内部this或super不能同时出现区别:所表示的实例不同this原创 2020-12-09 14:24:46 · 1662 阅读 · 1 评论 -
Java异常,Error 与 Exception 的区别是什么?
Java异常,Error 与 Exception 的区别是什么?相同点:都是java.lang.Throwable类的子类都是处理程序运行中发生的特殊情况不同点:严重程度:Error表示有JVM所无法预期的错误,是一种可能能恢复但恢复起来很困难的问题Exception表示JVM可预期的,是一种可以捕获并由在程序中做出处理的特殊情况处理方式不同:Error 通常无法在程序中予以处理,需要交给JVM来处理Exception 通常由程序员通过throw 或 catch原创 2020-12-09 10:38:20 · 144 阅读 · 0 评论 -
break、return和continue的区别
break、return和continue的区别相同点:三者都可以改变程序的执行流程不同点1、break 用于循环语句和switch语句break用于跳出循环语句(即终止循环语句)或跳出switch语句break语句之后没有使用任何标签时用于跳出循环或switch语句break语句之后有标签时用于跳出标签所标记的循环语句2、continue用于循环语句continue用于略过本次循环中的后续语句进行下次循环continue语句之后没有使用任何标签时用于略过本次循环后续语句进入下原创 2020-12-09 08:42:04 · 3484 阅读 · 0 评论 -
throw和throws的区别
throw和throws的区别异常类型throw表示抛出的异常的实例,throw (异常对象)throws表示抛出的异常的类型,[修饰符] 返回值类型 方法名 ([参数列表])[throws 异常类 ],异常类可以声明多个,用逗号分割。使用的位置throw出现在方法体throws出现在方法参数列表的后面使用方式throw要么和try-catch-finally语句配套使用捕获异常,要么与throws配套使用抛出异常。throws由处理异常的方法捕获作用不同throw用原创 2020-12-08 21:53:57 · 408 阅读 · 0 评论 -
抽象类和具体类的区别
抽象类和具体类的区别概念抽象类是指被abstract修饰符所修饰的类具体类则是指没有被abstract修饰符所修饰的类(即大家常说的普通类)相同点:抽象类和具体类的类体中都可以声明字段、方法、构造、初始化器、内部类抽象类和具体类都可以直接继承具体类抽象类和具体类都可以直接实现单个或多个接口区别:抽象类中可以声明抽象方法,具体类中不可以声明抽象方法抽象类不可以直接实例化,具体类可以直接实例化抽象类和直接继承抽象类,具体类继承抽象类时必须实现所有的抽象方法抽象类继承接口时可以不实现接口中原创 2020-12-08 19:11:42 · 5343 阅读 · 1 评论 -
抽象类和接口的区别
抽象类和接口的区别相同点都不能被初始化抽象类有构造但不允许实例化,构造供子类构造调用接口没有构造,因此绝对不可能被实例化无论是抽象类还是接口都是abstract修饰符修饰的区别抽象类接口构造有构造(供子类调用)没有构造初始化器可以有初始化器(类初始化器和实例初始化器)不能有抽象方法可以有抽象方法,也可以没有抽象方法可使用除了private以外的任意权限修饰符可以有抽象方法,也可以没有抽象方法只能是public修饰的常量可以有只能是常量原创 2020-12-07 20:25:09 · 93 阅读 · 0 评论 -
Java 中 final 、finally 的区别
final 、finally 的区别相同除了长的像,没有任何关系区别final关键字是个修饰符表示最终的,不可更改的1、被final修饰的类,没有子类2、被final修饰的方法,不能被重写3、被final修饰的变量,不能进行二次赋值 finally 关键字用于异常处理1、finally不能单独使用,必须和try...语句或try...catch语句连用2、程序运行时,不论是否发生异常,finally代码块都会执行3、除非遇到System.exit方法,否则finally代码块一定原创 2020-12-07 17:17:55 · 502 阅读 · 0 评论 -
override与overload的区别
override与overload的区别概念override 表示方法重写或方法覆盖对于子类从父类继承的、可见的实例方法中,如果子类重新声明了与其名称形同,参数形同,返回类型也相同的 方法时,就说子类重写或覆盖了父类了方法。overload 表示方法重载在某个类中存在多个名称相同但参数列表不同的方法时,就说这些方法相互构成重载参数列表不同是指,参数的个数,类型,顺序中至少有一项不相同。 相同点方法重载和方法重写都要求方法名称相同。方法重载和方法重写都是实现多态的一种方式。原创 2020-12-07 09:31:53 · 1572 阅读 · 0 评论 -
==与equals有什么区别
==与equals的区别相同点:1、 == 和equals都是用于完成比较操作2、 == 和equals的判定结果都是boolean值(true或false)不同点:1、 == 是个运算符,本质上用于比较两个值是否相等2、 ①、使用==运算符比较的值可以是基本类型的值,也可以是引用类型的值 ②、使用==运算符可以比较两个变量中存储的值是否相等 ③、使用==运算符可以直接比较两个字面量是否相等3、equals是个方法,用于比较当前对象是否与另一个对象相等 4、 ①、当前原创 2020-12-06 21:34:29 · 4392 阅读 · 0 评论 -
JDK和JRE的区别
JDK和JRE有什么区别JDK:Java Development Kit 的简称 Java开发工具包,提供了Java的开发环境和运行环境。JRE:Java Runtime Environment 的简称 Java运行时环境,为Java的运行提供了所需的环境。原创 2020-12-06 20:00:22 · 133 阅读 · 0 评论