![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java复习
文章平均质量分 79
林寻星辰
这个作者很懒,什么都没留下…
展开
-
java面试题(十三)之多线程篇
启动子线程后,立即调用该线程的join()方法,则主线程必须等待子线程执行完成后再执行。Thread类提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完为止。join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有的小问题都得到处理后,再调用主线程来进一步操作。原创 2023-02-06 22:28:30 · 735 阅读 · 0 评论 -
java面试题(十二)之多线程篇
参考答案在线程的生命周期中,它要经过新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。尤其是当线程启动以后,它不可能一直“霸占”着CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、就绪之间切换。当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时它和其他的Java对象一样,仅仅由Java虚拟机为其分配内存,并初始化其成员变量的值。原创 2023-02-06 09:55:39 · 327 阅读 · 0 评论 -
java面试题(十一)IO流篇
参考答案ArrayList的底层是用数组来实现的,默认第一次插入元素时创建大小为10的数组,超出限制时会增加50%的容量,并且数据以 System.arraycopy() 复制到新的数组,因此最好能给出数组大小的预估值。按数组下标访问元素的性能很高,这是数组的基本优势。直接在数组末尾加入元素的性能也高,但如果按下标插入、删除元素,则要用 System.arraycopy() 来移动部分受影响的元素,性能就变差了,这是基本劣势。原创 2023-02-04 10:06:19 · 692 阅读 · 0 评论 -
java面试题(十)集合篇
参考答案ArrayList的底层是用数组来实现的,默认第一次插入元素时创建大小为10的数组,超出限制时会增加50%的容量,并且数据以 System.arraycopy() 复制到新的数组,因此最好能给出数组大小的预估值。按数组下标访问元素的性能很高,这是数组的基本优势。直接在数组末尾加入元素的性能也高,但如果按下标插入、删除元素,则要用 System.arraycopy() 来移动部分受影响的元素,性能就变差了,这是基本劣势。原创 2023-02-04 09:40:50 · 218 阅读 · 0 评论 -
java面试题(九)集合篇
参考答案它基于hash算法,通过put方法和get方法存储和获取对象。存储对象时,我们将K/V传给put方法时,它调用K的hashCode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量(超过Load Facotr则resize为原来的2倍)。获取对象时,我们将K传给get,它调用hashCode计算hash从而得到bucket位置,并进一步调用equals()方法确定键值对。原创 2023-02-04 09:26:21 · 358 阅读 · 0 评论 -
java面试题(八)
参考答案Throwable是异常的顶层父类,代表所有的非正常情况。它有两个直接子类,分别是Error、Exception。Error是错误,一般是指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图使用catch块来捕获Error对象。在定义方法时,也无须在其throws子句中声明该方法可能抛出Error及其任何子类。原创 2023-02-03 09:34:14 · 326 阅读 · 0 评论 -
java面试题(七)
在Java中,Set接口代表无序的、元素不可重复的集合,HashSet则是Set接口的典型实现。当向HashSet中加入一个元素时,它需要判断集合中是否已经包含了这个元素,从而避免重复存储。由于这个判断十分的频繁,所以要讲求效率,绝不能采用遍历集合逐个元素进行比较的方式。实际上,HashSet是通过获取对象的哈希码,以及调用对象的equals()方法来解决这个判断问题的。HashSet首先会调用对象的hashCode()方法获取其哈希码,并通过哈希码确定该对象在集合中存放的位置。原创 2023-02-03 09:02:50 · 314 阅读 · 0 评论 -
java面试题(六)
参考答案首先,Java是单继承的,指的是Java中一个类只能有一个直接的父类。Java不能多继承,则是说Java中一个类不能直接继承多个父类。其次,Java在设计时借鉴了C++的语法,而C++是支持多继承的。Java语言之所以摒弃了多继承的这项特征,是因为多继承容易产生混淆。比如,两个父类中包含相同的方法时,子类在调用该方法或重写该方法时就会迷惑。准确来说,Java是可以实现"多继承"的。因为尽管一个类只能有一个直接父类,但是却可以有任意多个间接的父类。这样的设计方式,避免了多继承时所产生的混淆。原创 2023-02-03 08:45:48 · 199 阅读 · 0 评论 -
java面试题(五)
参考答案Java数据类型包括基本数据类型和引用数据类型两大类。基本数据类型有8个,可以分为4个小类,分别是整数类型(byte/short/int/long)、浮点类型(float/double)、字符类型(char)、布尔类型(boolean)。其中,4个整数类型中,int类型最为常用。2个浮点类型中,double最为常用。另外,在这8个基本类型当中,除了布尔类型之外的其他7个类型,都可以看做是数字类型,它们相互之间可以进行类型转换。原创 2023-02-02 22:59:51 · 267 阅读 · 0 评论 -
离散数学笔记
这是当初考离散时整理的笔记,其中包含了自己对于一些知识点的体悟。纸质笔记只有一份,不易分享。因此把它拍照整理后放到这里。这样既能帮助到更多被离散折磨的学弟学妹们🥺,又能当作纸质笔记的一个备份。本文主要是助离散期末考试只求低分飘过的小可爱们一臂之力~ 如若对自己的成绩有更高的要求,那么本文能做的最多也只是帮助你回顾一下基础知识而已。一般来说,离散考试的难度主要是在于题目所涉及的知识点数量太过繁杂,并不在于知识点会考多深。所以考前最重要的是了解每个知识的概念和简单运用,这样基本就能够通过考试。不过。转载 2023-01-08 15:09:14 · 689 阅读 · 0 评论 -
近代史纲要
只有在新民主主义革命的进程中,在中国共产党的领导下,在以马克思列宁主义普遍真理和中国革命的具体实践相结合的毛泽东思想的正确指引下,中国人民才顺利地推翻了三座大山在旧中国的统治。党的十一届三中全会以来,我们总结我国经验,同时借鉴国际经验,以巨大的政治勇气、理论勇气、实践勇气实行改革开放,经过艰辛探索,形成了党在社会主义初级阶段的基本理论、基本路线、基本纲领、基本经验,建立和完善社会主义市场经济体制,坚持全方位对外开放,推动社会主义现代化建设取得举世瞩目的伟大成就。同时,也让中国的有识之士思想进步,原创 2023-01-02 19:41:19 · 1384 阅读 · 0 评论 -
牛客java刷题知识点总结(八)
抽象类可以有构造方法,接口中不能有构造方法抽象类中可以有普通成员变量,接口中没有普通成员变量一个类可以实现多个接口,但只能继承一个抽象类。含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。原创 2022-12-22 14:51:30 · 741 阅读 · 0 评论 -
牛客java刷题知识点总结(七)
instance是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例。我们考虑的时候,左边的对象如果是父类的引用指向子类的对象,我们用子类对象的范围来判断!原创 2022-12-17 19:43:58 · 246 阅读 · 0 评论 -
牛客java刷题知识点总结(六)
把类加载的过程放到Java虚拟机外部去实现,让应用程序决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。原创 2022-12-16 19:04:17 · 518 阅读 · 0 评论 -
牛客java刷题知识点总结(四)
3.接口与接口之间的关系为继承,既可以单继承,也可以多继承。匿名内部类多用于外部类其中的属性非简单数据类型或者数据包装类型时,一种实现手段,可以使代码更紧凑,可以实现接口,也可以继承抽象类,但是不可能有构造函数,当做属性用即可。B----------一个类只能继承一个一个抽象类,但可以实现多个接口;A----------抽象类不一定含有抽象方法,接口中的方法都是抽象方法。D----------抽象类可以含有私有成员变量,接口不含有私有成员变量。C----------抽象类和接口中的方法都没有方法体。原创 2022-12-10 21:31:20 · 565 阅读 · 0 评论 -
牛客java基础刷题笔记(三)
抛InterruptedException的代表方法有:关于对象成员占用内存当你创建一个新的实例对象时,它会得到一块新的内存空间。但是类中的静态成员变量是所有对象共有的,也就是在一片属于类的存储空间中,被所有对象共有。servlet在多线程下其本身并不是线程安全的。如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,原创 2022-12-06 15:55:42 · 260 阅读 · 0 评论 -
牛客java刷题知识点总结(二)
-d destination 目的地-s source 起源地javac -d 指定放置生成的类文件的位置javac -s 指定放置生成的源文件的位置A.StringBuilder线程不安全,StringBuffer线程安全。B.同时用 abstract和final就会自相矛盾。C.Hashmap中的value可以之null,get(key)==null有两种情况,一是key不存在,二是该key中存的是null,所以应该使用map.containskey(key)返回的true/false来判断是否存在这个原创 2022-12-06 15:54:03 · 143 阅读 · 0 评论 -
初级算法之数组
默认第一天买是价格最低的时候,最大利润为零.遍历数组,如果当前的价格低于初始的价格,就把当前加个赋值给最低价,否则就判断当前价格减去买入的最低价的差值和最大利润比较.给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。//先反转全部的元素。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。原创 2022-11-26 23:05:14 · 158 阅读 · 0 评论 -
牛客java刷题知识点总结(一)
字节型 : 0 -2^7—-2^7-1 byte b=10;字符型 : ‘ \u0000′ 0—-2^16-1 char c=’c’;原创 2022-11-20 21:37:46 · 165 阅读 · 0 评论 -
java基础
String 是 Java 中基础且重要的类,被声明为 final class,是不可变字符串。因为它的不可变性,所以拼接字符串时候会产生很多无用的中间对象,如果频繁的进行这样的操作对性能有所影响。StringBuffer 就是为了解决大量拼接字符串时产生很多中间对象问题而提供的一个类。它提供了 append 和 add 方法,可以将字符串添加到已有序列的末尾或指定位置,它的本质是一个线程安全的可修改的字符序列。在很多情况下我们的字符串拼接操作不需要线程安全,所以 StringBuilder 登场了。原创 2022-11-14 21:03:33 · 304 阅读 · 0 评论 -
super和this的区别(java版)
子类和父类中变量或方法名称相同时,用 super 关键字来访问。可以理解为 super 是指向自己父类对象的一个指针。在子类中调用父类的构造方法。this 是自身的一个对象,代表对象本身,可以理解为 this 是指向对象本身的一个指针。在同一个类中调用其它方法。this 和 super 不能同时出现在一个构造方法里面,因为 this 必然会调用其它的构造方法,其它的构造方法中肯定会有 super 语句的存在,所以在同一个构造方法里面有相同的语句,就失去了语句的意义,编译器也不会通过。原创 2022-10-17 19:31:53 · 116 阅读 · 0 评论 -
java数组的总结
arrayA 是用于比较的第一个数组,arrayB 是用于比较的第二个数组。原创 2022-10-15 21:15:48 · 302 阅读 · 0 评论 -
Java的正则表达式详解
正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作,是一种可以用于模式匹配和替换的规范。一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。原创 2022-10-07 10:21:47 · 127 阅读 · 0 评论 -
java中String、StringBuffer和StringBuilder类的区别详解
String 是 Java 中基础且重要的类,被声明为 final class,是不可变字符串。因为它的不可变性,所以拼接字符串时候会产生很多无用的中间对象,如果频繁的进行这样的操作对性能有所影响。StringBuffer 就是为了解决大量拼接字符串时产生很多中间对象问题而提供的一个类。它提供了 append 和 add 方法,可以将字符串添加到已有序列的末尾或指定位置,它的本质是一个线程安全的可修改的字符序列。原创 2022-10-07 10:09:36 · 154 阅读 · 0 评论 -
java中jvm ,jre,jdk三者有什么区别?
语言的开发运行,也离不开 Java 语言的运行环境 JRE。没有 JRE 的支持,Java 语言便无法运行。当然,如果还想编译 Java 程序,搞搞小开发的话,JRE 是明显不够了,这时候就需要 JDK。其实啊,JDK 就是 JRE 加上一些常用工具组成的。JDK 不仅能运行已经被编译好了的 Java 程序,还能支持我们编译 Java 程序(JDK=JER+各种工具)。原创 2022-10-07 10:04:21 · 163 阅读 · 0 评论