java
文章平均质量分 75
little-peter
这个作者很懒,什么都没留下…
展开
-
IDEA调试技巧总结
Debug技巧原创 2022-08-09 06:57:05 · 674 阅读 · 0 评论 -
IDEA频繁闪退解决
窗外下着小雨,很舒服的天气。打开IDEA想敲一会代码,可是它频繁闪退,最终我使用了以下方法解决了问题。顺手记录一下!一般IDEA闪退,可能是以下几种情况导致的:我们出现问题时可以依次尝试内存问题找到idea安装目录下的idea64.exe.vmoptions文件(图片中最后一个)我们可以将参数Xmx设置为750或者更大比如1024.保存后重启idea,(我的问题就是这样解决的)。查看可能出现的原因我们打开cmd,在bin目录下找到idea.bat,然后回车。这里提示初始化vm出错,无法为原创 2022-05-19 23:29:09 · 17066 阅读 · 1 评论 -
详讲Thread类及其常见方法
文章目录1.1Thread类的常见方法1.2Thread的常见属性1.3启动一个线程-start()start()和run()方法的区别1.4中断一个线程1.5等待一个线程-join()1.6获取当前线程引用1.7休眠当前线程Thread类是jvm用来管理线程的一个类,换句话说,也就是每个线程都有唯一的Thread对象与之关联。1.1Thread类的常见方法//简单示例Thread t1=new Thread(); Thread t2=new Thread(new Runnable()原创 2021-12-25 23:39:18 · 1011 阅读 · 0 评论 -
Maven的使用
步骤1.新建一个project。2.选择maven,3.一定记得重写,否则我们的设置不会生效原创 2021-11-29 22:35:06 · 1116 阅读 · 0 评论 -
HashMap如何与冲突作斗争
1.哈希表1.1概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( log2N),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。当向该结构中:插入元素根据待原创 2021-11-14 22:49:52 · 1559 阅读 · 4 评论 -
Map与Set的使用及区别详解
1.Map的使用1.1关于Map的说明Map是一个接口类,该类没有继承自Collection,该类中存储的是<K,V>结构的键值对,并且Key一定是唯一的,不能重复。1.2关于Map.Entry<K,V>的说明Map.Entry<K, V> 是Map内部实现的用来存放<key, value>键值对映射关系的内部类,该内部类中主要提供了<key, value>的获取,value的设置以及Key的比较方式注意:Map.Entry<K,V原创 2021-11-08 20:49:09 · 1039 阅读 · 1 评论 -
多个维度解析常见的排序算法及其稳定性
1.基本概念1.1排序的稳定性(重要)两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。(经验)如果当前这个排序,在排序的过程中没有发生跳跃式的交换,那么我们认为这个排序是稳定的排序,比如堆排,就是不稳定的。稳定的排序也可被实现为不稳定的排序,但不稳定的则不可以变成稳定的排序。现实生活中的应用2.常用排序总览3.插入排序3.1直接插入排序-原理整个区间被分为有序区间无序区间每次选择无序区间的第一个元素,在有序区间内选择合适的原创 2021-11-01 22:33:07 · 1486 阅读 · 0 评论 -
Java对象的比较
文章目录1.问题2.元素的比较2.1基本类型的比较2.2对象的比较3.对象的比较3.1重写基类的equal3.2基于Comparable接口的比较3.3基于比较器比较(Comparator接口)3.4 三种方式对比4.面试一问在面试与实际开发过程中,对象的比较一直是一个重点且比较容易混淆的点,于是今天在此总结一下。1.问题在上一篇文章中我写到了优先级队列,如果没有看点此链接,优先级队列在插入元素时有个要求:插入元素不为null或者元素之间必须能够进行比较,为了简单起见,上次我们只是插入了Integer原创 2021-10-25 21:37:21 · 142 阅读 · 0 评论 -
堆(优先级队列)及TOPK问题详解
@[TOC]二叉树的顺序存储#存储方式老铁们首先声明一下,此堆非彼堆,jvm中有堆、栈等,属于存储结构,我们这里讨论的堆为数据结构。1.二叉树的顺序存储1.1存储方式使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。这种方式的主要用法就是堆的表示。1.2下标关系已知双亲(parent)的下标,则:左孩子(left)下标 = 2 * parent + 1;右孩子(right)下标 = 2 * parent + 2;原创 2021-10-22 22:58:42 · 437 阅读 · 0 评论 -
Java集合框架及常见问题
目标了解什么是集合框架了解学习集合框架的意义掌握集合框架相关接口和常见的实现类介绍Java 集合框架又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes。接口Collection :用来存储管理一组对象 objects ,这些对象一般被成为元素 elementsSet : 元素不能重复,背后隐含着查找/搜索的语义SortedSet : 一组有序的不能重复的元素List : 线性结构Queue :原创 2021-10-13 22:39:22 · 195 阅读 · 0 评论 -
关于二叉树,我们必须知道的
树的应用完全二叉树平衡二叉树搜索二叉树二叉树的存储方式二叉树的遍历方式原创 2021-09-27 22:17:12 · 210 阅读 · 0 评论 -
栈与队列:设计循环队列、括号匹配、栈与队列相互实现等问题的解决
栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出。此处不多写。如图:有效的括号思路注:括号匹配是使用栈解决的经典问题。举个例子,linux系统中,cd这个进入目录的命令我们应该再熟悉不过了cd a/b/c/../../这个命令最后进入a目录,系统是如何知道进入了a目录呢 ,这就是栈的应用所以栈在计算机领域中应用是非常广泛的。有的朋友经常会想学的这些数据结构有什么用,也开发不了什么软件,大多数同学说的软件应该都是可视化的软件例如APP、网站之类的,那都是非常上层的应用了原创 2021-09-25 20:42:48 · 374 阅读 · 0 评论 -
打家劫舍、斐波那契数、整数拆分(动态规划)
看视频总结的·动态规划的基本步骤:1.dp数组的定义和下标。2.递推公式。3.dp数组如何初始化,初始化也需要注意。4.确定遍历顺序,比较考究.。5.举例推导dp数组。用简单的题目来加深对以上方法的理解。斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n .原创 2021-09-01 20:30:09 · 396 阅读 · 1 评论 -
关于双指针方法的一些运用
有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]class Solution { public int[] sortedSquares(int[] nums) {//1.暴力解法,这个时间复杂度是 O(n + nl.原创 2021-08-20 16:52:06 · 200 阅读 · 1 评论 -
算法学习:二分查找
二分查找是非常基础的算法,但其并不简单,有很多细节需要掌握,因此自己结合资料进行了一些整理,在看完这些后,建议做几道给出的习题这样效果会更好。二分查找细节。二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4..原创 2021-08-19 00:58:34 · 140 阅读 · 0 评论 -
链表简单习题
链表反转给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点链表为空,返回头节点定义两个结点 pre 为 null ,cur指向头节点遍历链表时,定义临时结点存放 cur 的下一结点,同时让 cur 指向 pre因为要向后遍历,pre 向后移到 cur 的位置,cur 移到刚刚定义的临时结点位置 (达到链表反转效果) …(以此循环)最后因 cur == null 跳出循环, pre 在cur 的前一位,所以返回 pre 即可class Sol.原创 2021-08-18 15:09:49 · 248 阅读 · 1 评论 -
JSON介绍及简单使用
什么是JSON?JSON是JavaScript Object Notation的简称,是一种轻量的数据表示方法。与XML相比更加简洁直观,说白了就是元素会使用特定符号标注的一串字符串。var obj={a:‘hello’,b:‘world’};//这是一个对象,注意键名也可以使用引号包裹var json=’{“a”:“hello”,“b”:“world”}’;//这是一个JSON字符串,本质是一个字符串基本特征:使用{}包裹,{}表示这是一个对象,[]表示数组,里面会有多个属性,多个属性是以.原创 2021-08-15 20:10:57 · 149 阅读 · 0 评论 -
多线程小回顾
多线程的价值(1)发挥多核CPU的优势多线程可以真正发挥多核Cpu的优势,采用多线程的方式同时去完成·几件事而互不干扰,达到充分利用Cpu的目的。(2)防止阻塞从程序运行效率来看,单核CPU会由于运行多线程导致上下文的切换,而降低程序整体效率。但是单核CPU还是要用多线程,目的就是为了防止阻塞。比如现在是单核CPU单线程,进行数据读取,对端迟迟不返回且未设置超时时间,那么整个程序在数据返回之前就停止运行了。多线程可以防止这个问题,一条线程的代码执行读取数据阻塞,也不会影响其他任务执行。(3)效..原创 2021-08-14 23:01:01 · 137 阅读 · 1 评论 -
栈必刷习题及解析
有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:falseclass Solution { ...原创 2021-07-24 23:26:41 · 327 阅读 · 1 评论 -
Java内部类与Java程序的初始化
内部类 在Java语言中,可以把一个类定义到另外一个类的内部,在类里面的这个类就叫做内部类,外面的类叫做外部类。在这种情况下,这个内部类可以被看成外部类的一个成员(与类的属性和方法类似)。还有一种类被称为顶层(Top-level)类,指的是类定义代码不嵌套在其他类定义中的类。内部类主要有以下四种:静态内部类,成员内部类,局部内部类,匿名内部类。其定义方法如下:class outerClass{ static class innerClass{}//静态内部类 }...原创 2021-05-31 16:40:36 · 630 阅读 · 1 评论 -
字节序,object类
Java整形的字节序是?答:Big-Endian(大端)字节序是指多字节数据在计算机内存中存储或网络传输时的各字节存储顺序。通常有Little-Endian(小端)和Big-Endian(大端)两种方式。以下将分别对这两种方式进行介绍。(1)Little-EndianLittle-Endian(小端)是指低位字节存放在内存的低地址端,高位字节存放在内存的高地址端。例如,当按照小端模式存储时,十六进制数字表示 0x12 34 56 78在内存中的存储方式为:低地址-----------原创 2021-04-26 14:24:34 · 127 阅读 · 1 评论 -
MySQL5.7输入中文报错问题解决(my.ini)
今天在写sql语句碰到了以下问题,令我感到困惑。先看看示例sql语句,语句没什么错误use lalala;DROP TABLE IF EXISTS exam_result;CREATE TABLE exam_result (id INT,name VARCHAR(20),chinese DECIMAL(3,1),math DECIMAL(3,1),english DECIMAL(3,1));INSERT INTO exam_result (id,name, chinese, ma原创 2021-04-03 22:40:37 · 678 阅读 · 1 评论 -
数组的深拷贝和浅拷贝
基本数据类型特点:直接存储在栈(stack)中的数据引用数据类型特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。问题:以下四种拷贝方式中,哪一种拷贝方式速度最快?答:System.arraycopy,在源码当中我们可以看到,其被native所修饰,底层由c/c++所实...原创 2021-03-28 22:11:10 · 442 阅读 · 3 评论 -
Java接口的修饰符
Java接口的修饰符可以为(D)A.private B. protected C.final D.abstract接口:(1)接口用于描述系统对外提供的所有服务,因此接口中的成员常量和方法都必须是公开(public)类型的,确保外部使用者能访问它们;(2)接口仅仅描述系统能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;(3)接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量;(4)接口的中的变量是所有实原创 2021-01-23 00:16:11 · 2921 阅读 · 0 评论