- 博客(16)
- 收藏
- 关注
原创 2分钟使用LinkedHashMap实现一个简单的LRU算法
LRU(Least Recently Used)最近最久未使用。设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说:设计一个k-v容器,对一个经常查询的key使其保持最新;当容器满数据时,淘汰容器最老的数据。public class LRUCache { public static void main(String[] args) ...
2020-03-27 15:55:23
269
原创 CountDownLatch类模拟多线程并发获取一个单例对象
文章目录CountDownLatch类简介1. 准备工作线程2.创建测试类3.准备单例类3.1 线程不安全类(懒汉式)3.2 线程安全类(双重检测)CountDownLatch类简介先看看1.8源码里面对CountDownLatch的描述:A synchronization aid that allows one or more threads to wait untila set...
2020-03-20 16:55:00
366
原创 java的几种动态代理实现
文章目录1 基于jdk的动态代理1.1 准备父接口1.2 准备实现类(被代理类)1.3 代理对象生成方法1.4 生成代理对象1.5 控制台输出2 基于cglib的动态代理2.1 准备类(被代理类)2.2 代理对象生成方法2.3 生成代理对象2.4 控制台输出1 基于jdk的动态代理这里的动态代理是为某接口进行代理,有两个对象被代理类,代理类被代理类: 指被代理的某个接口的实现类代理类: 指...
2020-03-10 17:03:46
410
原创 jdbc连接mysql数据库,查询结果封装进实体类
文章目录1 新建实体类2 新建表3 插入数据4 连接数据库并测试5 控制台输出1 新建实体类public class MessageContent { private Integer id; private String title; private String message; private Date createDate; @Override...
2020-02-28 17:49:49
1370
原创 java实现给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数
java实现给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数示例1:输入:[9, 99, 9, 53, 564, 34, 5, 94, 56]输出:9999945656455334示例2:输入:[30,30304,304,303]输出:3043033030430示例3:输入:[0,0,0]输出:0思路分析:1.多个数组成最大数,可以看成一种特殊的冒泡排序,通过比较把...
2020-02-28 16:15:46
3920
原创 java实现合并多个线段,计算多个线段的实际覆盖长度
算法: 计算多个线段实际覆盖的长度。例如:线段组1:{{1, 2}, {2, 3}, {3, 5}, {4, 10.5}, {11, 13}}的长度为[1,10.5],[11,13]的长度为11.5;线段组2:{{1, 5}, {4, 5}, {0.7, 6}, {0.9, 1.5}}的长度为[0.7,6]的长度为5.3;思路分析:1.由题意知道: 要求实际长度,凡是两个线段有重叠的地...
2020-01-21 10:04:21
1860
原创 java实现升序数组中元素不重复的二分查找
算法: 二分查找,求给定一个 n 个元素有序的(升序)元素不重复的整型数组 和一个目标值 ,写一个函数搜索数组中的 目标值,如果目标值存在返回下标,否则返回 -1。思路分析:1.以查找[1,2,3,4,5,6,7,8,9]中的8为例,数组记为nums2.首先从索引nums[0]-nums[8]的区间即[1,9]中找这个8,发现8可能在数组内2.先拿数组中间的值nums[4]=5跟8比较...
2020-01-20 10:25:11
851
原创 java实现旋转图像算法:给定一个n×n的二维矩阵,将它顺时针旋转90°
旋转图像算法:给定一个n×n的二维矩阵,将它顺时针旋转90°例如:输入:[1, 2, 3][4, 5, 6][7, 8, 9]输出:[7, 4, 1][8, 5, 2][9, 6, 3]输入:[1, 2, 3, 4][5, 6, 7, 8][9, 10, 11, 12][13, 14, 15, 16]输出:[13, 9, 5, 1][14, 10, 6, 2][...
2020-01-19 17:33:59
1229
原创 java实现给定一个没有重复数字序列,进行全排列
题目: 给定一个没有重复数字的序列,返回它所有可能的全排列输入: [1,2,3,4]输出: [[1, 2, 3, 4], [1, 2, 4, 3], [1, 3, 2, 4], [1, 3, 4, 2], [1, 4, 2, 3], [1, 4, 3, 2],[2, 1, 3, 4], [2, 1, 4, 3], [2, 3, 1, 4], [2, 3, 4, 1], [2, 4, 1, 3...
2020-01-19 15:34:04
1223
1
原创 java实现一种多key对单value的数据篮子
实现数据篮子:多key对应1value,并提供put,get,remove等方法例如:key1=“张三”key1,key2=“李四”key1,key2,key3=“王五”…思路:1.通过拓展map实现key-value键值对存储2.put方法可变参数个数为n且至少为2,形如map.put(key1,key2,key3,…,value),key为1到(n-1)参数,第n个为value...
2020-01-17 16:01:23
1370
原创 java实现两大数相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。例如:输入: num1 = “2”, num2 = “3” 输出: “6”输入: num1 = “1234”, num2 = "56"输出: “69104”思路如下: 先确定个位数>再确定十位数>再确定百位数>…可参考我的另外一篇文章:java...
2020-01-17 15:03:10
1347
原创 java实现两个大数相加
使用java的几种基本类型计算大数(比long类型的最大数还大)的时候,编译器就会报错:我们知道,java的基本数据类型有8种,而整型有4种数据类型byteshortintlong二进制长度8163264数的范围[-27,27-1][-215,215-1][-231,2^31-1][-263,263-1]最小数-128-32768-2...
2020-01-17 14:14:03
1392
原创 java实现整数1-3999转罗马数字
整数1-3999转罗马数字的一种解我来用几张表格列举思路(仅仅考虑了1-3999奥)罗马字母对应的整数(表1):罗马数IVXLCDM整数1510501005001000列举1-10,(表2)罗马数IIIIIIIVVVIVIIVIIIIXX整数12345678910其中发现其中...
2020-01-17 10:59:48
310
原创 spring-boot+jpa+mysql自动建表
1 搭建好spring-boot工程pom.xml文件的主要依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ...
2019-12-24 15:16:47
440
1
原创 linux下安装jdk1.8
linux下安装jdk1.81 下载1.1 有下载链接1.2 没有下载链接2解压3 修改配置4 安装完成前言,阿里云服务器上部署应用,系统是CentOS7.3,需要准备mysql5.7,jdk8环境,本来想使用wget命令从oracle官网下载jdk1.8的.tar.gz包,省去自己上传的步骤。后来发现下载的jdk数据包不完整且只有5M左右。后续解压报错,这也是预料之内。无奈从本地从找了一个j...
2019-12-19 12:39:43
262
原创 一个简单的linux系统下筛选文件打包的shell脚本
简单的linux系统下筛选文件打包的shell脚本一.源文件准备二.源目录准备三.脚本准备1. 创建脚本文件start.sh2. 编辑脚本start.sh2.1 申明局部变量2.2 申明数组2.3 `linux`下的`for`循环遍历数组2.4 `linux`下判断数组是否为空2.5 全部代码2.赋给脚本start.sh可执行权限3.执行脚本start.sh4.解压缩简单描述:从一个文本文件中...
2019-11-28 16:46:11
1030
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人