自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 牛客-SHELL10-第二列是否有重复

题干:给定一个 nowcoder.txt文件,其中有3列信息,如下实例,编写一个shell脚本来检查文件第二列是否有重复,且有几个重复,并提取出重复的行的第二列信息:实例:20201001 python 9920201002 go 8020201002 c++ 8820201003 php 7720201001 go 8820201005 shell 8920201006 java 7020201008 c 10020201007 java 8820201006 go 97结果:

2022-05-24 15:13:39 326

原创 MAC IDEA常用快捷键

这里写自定义目录标题前言快捷键前言自从干了开发这记性是一天不如一天,很多IDEA快捷键几天不用就都忘了,写篇博客记录一下,防止每次忘了都要去往上去搜,也给他人提供一个参考。快捷键常用快捷键作用Ctrl + Option + H查看方法调用链Ctrl + Option + T生成代码块Ctrl + H查看类或接口的继承结构Command + F12查看类内所有方法Command + Shift + U将选中字符转换成大小写Command +

2022-05-07 16:07:21 1036

原创 使用ThreadMXBean发现死锁

利用JDK自带的ThreadMXBean发现程序中出现的死锁。import java.lang.management.ManagementFactory;import java.lang.management.ThreadInfo;import java.lang.management.ThreadMXBean;import java.util.concurrent.TimeUnit;public class FindDeadLock implements Runnable { i

2020-05-23 02:41:38 379

原创 必然发生死锁的代码

实现思路在实现代码之前我们需要先了解死锁是什么,死锁发生在并发情况下,具体的表现是两个线程相互持有对方所需要的的资源,又不主动释放,导致程序陷入无尽的阻塞。所以必然死锁的程序就是在模拟这个过程。具体代码import java.util.concurrent.TimeUnit;public class DeadLock implements Runnable { int flag = 0; Object lock1 = new Object(); Object lo

2020-05-23 02:23:54 333

原创 LeetCode 167号问题:两数之和 II - 输入有序数组

题目描述给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11,...

2020-03-06 21:22:43 92

原创 LeetCode 26号问题:删除排序数组中的重复项

题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。...

2020-03-06 20:54:41 103

原创 优化后的冒泡排序

该冒泡排序经过了两次优化,第一次优化增加了一个标志位用来判断是否发生了交换,第二次优化对边界判定进行了优化。具体的优化解释这篇博客写的挺好的,我写不了人家那么好,所以就不写了,大家可以直接去这篇博客参考。博客地址:https://blog.csdn.net/wubingju93123/article/details/81215984 public static void swapS...

2020-02-09 00:00:06 97

原创 三种常见的插入排序

直接插入排序 public static void insertSort(int[] array) { if (array == null || array.length <= 1) { return; } int temp = 0; int insertIndex = 0; ...

2020-02-08 23:26:08 167

原创 生产者消费者模式

用wait和notifyAll来实现生产者消费者模式(关键在于队列的创建)import java.util.ArrayList;import java.util.Date;import java.util.LinkedList;import java.util.List;public class Demo02_生产者消费者模式 { public static void m...

2019-12-12 17:33:43 87

原创 两个线程交替打印1-100之间的奇偶数

实现一:synchronized关键字实现(缺点:效率低)实现思路:让两个线程来争夺同一把锁,如果抢到锁只有满足自己的奇偶判定条件才打印(注:&方式判断奇偶更高效)public class Demo04_两个线程交替打印奇数_纯synchronized { private static Object lock = new Object(); private sta...

2019-12-12 17:25:32 763

原创 Thread和Runnable哪个好

简单粗暴的回答:Runnable好,那为什么好呢?主要有三点1.从代码的架构层面来说,具体的执行任务应该跟线程的创建执行解耦(代码架构)2.使用继承Thread的方式的话,那么每次想新建一个任务只能新建一个独立的线程,而这样做的损耗会比较大(比如从头开始创建一个线程,执行完毕以后再销毁等,如果线程的实际工作内容,也就是在run()函数里只是简单的打印一行文字的话,那么可能线程的实际工作内容还不...

2019-12-11 12:08:28 715

原创 创建线程方式到底有几种

相信好多小伙伴都在搜索过创建线程的方式,网上给的说法也是什么都有(有说两种的、三种的、四种的、五种的...),这些观点肯定让好多小伙伴产生迷惑。那我要说的是:这些答案不能说错,只能说不对。那我凭什么这么说呢?我的根据是Oracle的官方文档。文档是最有权威的。那有的小伙伴可能又有疑问了,那为什么其他的不属于创建线程的方式呢?其实是因为他们底层都直接或者间接的利用了Thread类或者Runn...

2019-12-11 11:57:27 323

原创 IntelliJ IDEA动感插件之activate-power-mode

首先感谢大家来看我的文章。这次我给大家介绍的是IDEA的一款插件activate-power-mode,它可以让写代码有一种酷炫的感觉。话不多说,来看截图。怎么样,是不是有一种很炫的感觉的。是不是有心动的小伙伴?那下面我来介绍一下这个插件是怎么安装的:第一步,我们需要先把电脑开机...(),额,开玩笑的,当然不是。第一步我们需要先把IDEA启动,然后依次选择菜单栏中的File-&...

2019-12-06 18:12:09 2546 1

原创 Mybaits执行insert语句,数据库出现两条一样的记录解决办法

由于刚开始学习Mybaits,所以对Mybaits有点不熟练,在执行insert方法时遇到了两个问题,跟大家分享一下。问题一:执行insert方法时,显示测试通过,但是数据库却无数据。代码如下:// 以上省略导包代码public class MybatisTest { private InputStream is; private SqlSession sqlSess...

2019-12-05 11:01:08 5213 2

原创 Maven环境下Mybaits入门配置

本次配置前提需要先安装好Maven一、Mybaits环境搭建1、先创建一个普通的Maven工程,并在pox.xml文件中配置Mybaits坐标。坐标官方地址https://mybatis.org/mybatis-3/zh/getting-started.html2、创建Mybaits的主配置文件SqlMapConfig.xml。并配置数据库的核心信息。<?xml versi...

2019-12-04 13:24:06 196

原创 Java运行时数据区

Java虚拟机划分的运行时数据区有5部分:本地方法区、虚拟机栈、本地方法栈、堆、程序计数器,程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。一、程序计数器当前线程所执行的字节码的行号指示器,字节解释器通过改变这个计数器的值来选取下一条需要执行的字节码指令。每个线程之间都有一个独立的程序计数器,它们之间互不影响、独立存储。此内存区域是唯一一个在Java虚拟机规范中没有规定任...

2019-12-03 14:21:11 107

原创 Java中的死锁

一、什么是死锁死锁是指两个或者两个以上的线程在执行过程中,由于竞争互斥资源或者由于彼此通信而造成的一种阻塞的现象。发生死锁后若无外力作用,两个线程都将无法运行。二、死锁发生的四个条件1、互斥条件2、请求与保持条件3、不剥夺条件4、循环等待条件三、常见修复策略1、避免策略(推荐)哲学家就餐的换手方案、转账方案。通过hashcode来决定获取锁的顺序、冲突时需要加‘加时赛’。...

2019-12-03 11:58:07 147

原创 IntelliJ IDEA控制台中文乱码解决

原因:现在我们开发中使用的编码都是UTF-8编码,但是windows默认编码是GBK,在这种情况下,当打印中文字符时,就可能会出现乱码。解决方法:第一步:.打开IDEA安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions。分别在这两个文件末尾添加-Dfile.encoding=UTF-8第二步:打开IDEA,依次选择File&gt...

2019-12-03 11:36:37 143

原创 自己封装的JDBCUtil工具类

作者语:水平有限,欢迎各位大佬不吝赐教。import java.io.Closeable;import java.io.IOException;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;public...

2019-11-25 12:01:27 159

原创 从排序数组中删除重复项【O(n)级别算法】

题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例...

2019-11-05 12:36:56 368 1

原创 摔手机

x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=...

2018-04-14 08:09:02 594

原创 分糖果

问题描述  有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:  每个小朋友都把自己的糖果分一半给左手边的孩子。  一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。  反复进行这个游戏,直到所有小朋友的糖果数都相同为止。  你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入格式  程序首先读入一个整数N(2&lt;N&lt;100),...

2018-03-29 22:29:04 409

原创 《兰顿蚂蚁》问题求解

问题描述  兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。  平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。  蚂蚁的头部朝向为:上下左右其中一方。  蚂蚁的移动规则十分简单:  若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;  若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。  规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下...

2018-03-28 17:02:26 301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除