- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 Java基础知识学习记录
Java基础知识学习记录抽象类和接口抽象类是对某些类的共性抽象出来,接口是对某个行为进行抽象,抽象类被继承体现出 is-a(是不是)关系, 接口实现体现了can-do(行不行)关系。抽象类和接口的区别主要有:抽象类用abstract定义, 接口使用interface.抽象类被继承的关键字是extends,实现接口的关键字是implements一个类只能继承一个抽象类,但是可以实现多个接口抽象类的成员变量访问修饰无限制,接口中成员变量属性必须是public static final抽象类的成
2021-06-10 17:19:47
142
原创 ThreadLocal学习记录
ThreadLocal学习记录ThreadLocal之前理解的一直很模糊,决定花点时间好好学习一下。最初接触ThreadLocal是在JVM的引用类型谈到弱引用(Weak Reference)的时候,会出现内存泄漏、脏数据等问题。首先ThreadLocal从字面看是线程本地变量的意思,它不是一个线程,只是为每个线程维护了一个独立的变量副本。这个副本的数据是当前线程独享的,也就是说每个线程只可以访问自己的变量副本,同时进行各种操作时不会影响其他线程的变量副本。...
2021-06-01 22:00:29
116
原创 hashCode与equals的理解
在学习HashMap的时候,HashMap在存自定义键对象的时候,需要重写hashCode和equals方法。hashCode和equals之间到底存在什么联系,为什么重写了euqals就必须重写hashCode方法呢。首先hashCode方法和equals方法是一起来判断某两个对象是否相等。其实之前一直会比较“==”和equals两种方法的不同。“ == ” 是比较两个基本数据类型或者引用变量是否相等,比较的是对应内存中所存储的数值是否相等;如果是引用类型的对象,就是比较两个对象是否指向同一块存储空间,
2021-05-30 23:37:20
227
原创 Comparable和Comparator
ComparableComparable接口,进行元素的排序,通常是自己和自己比较,相当于内比较器,就是将比较器写在类里面,比较方法是compareTo()。比如Integer或者String对象可以进行排序,实际上就是实现了Comparable的compareTo()方法,实现了自然排序。当需要对自定义对象进行排序,需要按照自定义的方式进行排序,我们就可以在自定义的类实现Comparable接口,然后重写compareTo方法。比如:public class Student implements C
2021-05-28 21:38:18
91
原创 ArrayList的fail-fast和fail-safe机制
ArrayList的fail-fastfail-fast是集合中比较常见的错误检测机制。一般在对集合元素进行遍历的时候发生。打个不恰当的比喻,正在清点仓库的每样物品,突然被加塞进来或者被拿走了一些,为了保证清点结果准确,当作清点有误,要重新开始。对于ArrayList来说,首先它是线程不安全的,快速失败机制也常见于多线程的情况,单线程也会发生。ArrayList的快速失败发生的前提是必须是用了迭代器进行遍历。下面用几种情况说明发生的原理。1. 单线程-普通for遍历import java.util.A
2021-05-16 11:22:07
470
原创 5.13某互联网厂笔试题复现
第一题题目大意:给出一组有序的旅游景点,到达该景点会获取不同的分数作为奖励。参加比赛的选手都从第一站开始,自动会获取该景点的分数。每位参赛者会有一组数值一样的卡片,每张卡片上有一个数字1,2,3或者4,不同的数字代表前进的步数。如何使用卡片前进,会使得获得的分数最大。输入:scores数组代表当前给出的各个景点的分数cards数组代表当前给出的卡片求获得的最高的分数思路:线性DP求解首先统计出每个卡片数字的个数,保存在一个一维数组中然后创建一个四维的dp数组,数组的索引就是每个卡片数
2021-05-14 15:33:42
72
原创 华为实习技术面手撕代码
手撕代码–任务调度器(Leecode 621):给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。力扣(LeetCode)基本思
2021-05-11 19:20:41
4172
原创 服务器使用出现的问题记录(持续记录更新)
服务器使用出现的问题记录1. Anaconda 创建虚拟环境出现问题解决办法:一开始直接将错误信息上网搜索,发现清一色的博客是说需要修该anaconda的配置文件—~/.condarc 。该文件是根目录下的隐藏文件,记录了anaconda的下载源、虚拟环境存储路径、包缓存路径等信息,按要求修改后没有任何作用。不过有收获的是,将虚拟环境的存储地址和缓存地址修改到容量更大的盘中,避免之后创建更多的虚拟环境,导致当前盘容量不够。折腾半天,ping命令以下查看网络,发现根本没联网。因为一直使用校园网连接的,
2021-05-10 10:20:41
291
原创 约瑟夫环问题与进阶
手撕代码----约瑟夫环问题据说著名犹太历史学家 Josephus 有过以下故事:在罗马人占领乔塔帕特后,39 个犹太人与 Josephus 及他的朋友躲到一个洞中,39 个犹太人决定宁愿死也不要被敌人抓到,于是决定了一种自杀方式,41 个人排成一个圆圈,由第 1 个人开始报数,报数到 3 的人就自杀,然后再由下一个人重新报 1,报数到 3 的人再自杀,这样依次下去,直到剩下最后一个人时,那个人可以自由选择自己的命运。这就是著名的约瑟夫问题。现在请用单向环形链表得出最终存活的人的编号。题目链接输入描述
2021-04-26 16:56:43
261
原创 HashMap学习记录
HashMap不管是JDK7还是JDK8,HashMap都是通过链表+哈希表的结构实现的,JDK8对链表结构做了优化,满足条件会将链表转化成红黑树。HashMap的常用操作是put()方法、get()方法、resize()、hash()方法。JDK8中的HashMap底层实现1. new HashMap():public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0)
2021-04-24 19:28:02
200
1
原创 JVM故障处理工具
JVN故障处理工具jps(JVM Process Status Tool) 虚拟机进程状况工具功能: 列出正在运行的虚拟机进程,并显示虚拟机执行主类名称,和这些进程的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)。使用方法: jps [options] [hostid] , options 表示不同的参数,根据需要的信息选择不同的参数;hostid 表示远程查看。options信息描述-q只输出进程 ID即LVMID,忽略主
2021-04-20 15:15:49
321
原创 JDBC学习记录(一)
JDBC学习记录JDBC-----Java Data Base Connection , java与数据库的访问连接。使用IDEA,数据库使用MySQL,基本的安装和简单的使用这里不作详细的记录。一、 JDBC基础1.导包java需要通过第三方jar包,完成MySQL数据库的访问。下载安装的MySQL对应版本的第三方包,通过IDEA导入即可。这里安装了较新的版本的M有SQL,下载了对应的jar包。2.数据库连接与关闭初始化数据库驱动Class.forName("com,mysql.cj.jd
2021-04-17 17:00:49
98
原创 服务器配置记录
服务器配置记录最近实验室购买了新的服务器,配置中发生若干问题,记录下踩的坑。1. 连接服务器工具我使用的是XShell软件,可以使用的软件很多软件的上手使用很快,不难。XShell可以使用校园邮箱进行申请,免费试用。2. 进入系统第一次连接上服务器进入,使用cat /etc/issue命令查看系统版本,CentOS 7.6。然后查看了硬盘大小,cpu信息等。当查看显卡信息的时候,发现没有任何信息,显卡的驱动没有装,原生的系统,不是安装制作好的镜像。3. 安装显卡驱动(坑)已经提前知道了服务器
2021-04-09 00:07:10
112
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人