![](https://img-blog.csdnimg.cn/b1c6feade6f549e5bb65bea8a2addc14.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 86
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
ylxblog
这个作者很懒,什么都没留下…
展开
-
int和Interger区别
int Interger原创 2022-11-26 09:59:06 · 721 阅读 · 0 评论 -
Maven命令
Maven命令:mvn -v: 查看maven版本mvn compile: 编译项目mvn test: 执行测试mvn package: 打包mvn clean: 删除target目录,这个文件夹中存放的是编译后的类及测试报告等mvn install: 安装jar包到本地仓库中原创 2020-06-23 22:47:42 · 76 阅读 · 0 评论 -
双向链表原理
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。双向链表的主要优点是对于任意给的结点,都可以很轻易的获取其前结点和后结点,其主要缺点是每个结点需要保存next和prev两个属性,因此需要更多的空间开销,同时结点的插入与删除操作也将更加耗时,因为...原创 2019-08-16 09:35:18 · 699 阅读 · 0 评论 -
多线程
1.并发和并行的区别(1)并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。(2)并发(concurrency):指在同一时刻只能有一条指令执行,但多个线程指令被快速的轮换执行,使得在宏观上具有多个线程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。(简而言之,并发是多个事件在同一时间段执行,而并行是多个事件在同一时间点执行...原创 2019-08-24 09:50:43 · 67 阅读 · 0 评论 -
哈希冲突解决方法
Java知识解决哈希冲突的常用方法:(1)开放定址法:当关键字的哈希地址 p=H(key)出现冲突时,以 p 为基础,产生另一个哈希地址 p1,如果 p1 仍然冲突,再以 p 为基础,产生另一个哈希地址 p2,循环此过程直到找出一个不冲突的哈希地址,将相应元素存入其中;(2)再哈希法:这种方法是同时构造多个不同的哈希函数,当哈希地址 Hi=RH1(key)发生冲突时,再计算 Hi=RH2(k...原创 2019-09-01 08:32:48 · 188 阅读 · 0 评论 -
贪心算法--集合覆盖
1.应用场景-集合覆盖问题假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号。2.贪心算法介绍(1)贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法;(2)贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)...原创 2019-08-09 23:57:09 · 618 阅读 · 1 评论 -
分治算法--汉诺塔
1.分治算法介绍(1)分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……(2)分治算法可以求解的一些经典问题: 二分搜索 大整数乘法 棋盘覆...原创 2019-08-09 23:41:56 · 729 阅读 · 0 评论 -
动态规划算法--01背包问题
1.应用场景-背包问题背包问题:有一个背包,容量为4磅 , 现有如下物品:(1)要求达到的目标为装入的背包的总价值最大,并且重量不超出;(2)要求装入的物品不能重复。2.动态规划算法介绍(1)动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法;(2)动态规划算法与分治算法类似,其基本思想也是将待求解问题分解...原创 2019-08-09 13:08:14 · 455 阅读 · 0 评论 -
ThreadLocal的理解
1.ThreadLocal原理 ThreadLocal相当于一个容器,用于存放每个线程的局部变量。ThreadLocal实例通常来说都是private static类型的。ThreadLocal可以给一个初始值,而每个线程都会获得这个初始化值得一个副本,这样才能保证不同的线程都有一份拷贝。 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为...原创 2019-08-03 10:03:12 · 248 阅读 · 0 评论 -
排序算法--归并排序
归并排序算法思路:归并排序用分治的思想,对给定的一组数据,利用递归与分治技术将数据序列划分成为越来越小的子序列,之后对子序列排序,最后再用递归方法将排好序的子序列合并为有序序列。合并两个子序列时,需要创建两个子序列加起来长度的临时数组,临时存储新的生成序列,再将临时数组中的数据重新存入原数组。算法原理图:图片来源:-- https://baike.sogou.com/v8340582.ht...原创 2019-07-10 13:34:04 · 125 阅读 · 0 评论 -
剑指offer--第一个只出现一次的字符
问题:问题:(第一个只出现一次的字符) 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).思路:法一:用哈希表的方式来统计字符出现的次数,时间复杂度O(n).代码实现:public int FirstNotRepeatingChar(String str) { if(str ==...原创 2019-07-09 16:38:47 · 63 阅读 · 0 评论 -
二叉搜索树与双向链表
问题:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:(递归)左-右-根1.将左子树构造成双链表,并返回链表头节点。2.定位至左子树双链表最后一个节点。3.如果左子树链表不为空的话,将当前root追加到左子树链表。4.将右子树构造成双链表,并返回链表头节点。5.如果右子树链表不为空的话,将该链表追加到root节点之...原创 2019-07-09 16:21:59 · 83 阅读 · 0 评论 -
剑指offer--两个链表的第一个公共结点
剑指offer–两个链表的第一个公共结点问题:输入两个链表,找出它们的第一个公共结点。思路:法一:(两条相交的链表呈Y型。可以从两条链表尾部同时出发,最后一个相同的结点就是链表的第一个相同的结点。可以利用栈来实现。时间复杂度有O(m + n), 空间复杂度为O(m + n))如果存在共同节点的话,那么从该节点,两个链表之后的元素都是相同的。也就是说两个链表从尾部往前到某个点,节点都是一样的。我...原创 2019-07-09 16:07:33 · 92 阅读 · 0 评论