- 博客(13)
- 资源 (14)
- 收藏
- 关注
原创 LeetCode——3.无重复字符的最长子串
LeetCode题目地址 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1: 输入: “abcabc...
2019-11-25 23:38:37 140
原创 LeetCode——2.两数相加
题目 描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 ->...
2019-11-18 11:31:12 101
原创 Java并发编程——Spring的线程安全
Spring没有保证bean的线程安全 1.线程安全问题的由来: 线程安全问题都是由全局变量及静态变量引起的 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的; 若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。 2.spring不保证bean的线程安全 Spring没有保证这些bean的线程安全,需要由开发者自己编写解决线程...
2019-11-17 17:46:00 426
原创 Java并发编程——多线程的最佳实践
1.尽量使用本地变量 尽量使用本地变量,而不是创建一个类或实例的变量。 定义在函数内部的变量就是本地变量; 2.尽量使用不可变类 String、Integer等。不可变类可以降低代码中需要的同步数量; 3. 最小化锁的作用域范围:S=1/(1-a+a/n) 该公式称为:“阿姆达尔定律"或"安达尔定理”。 其中:a:并行计算部分所占比例;n:并行处理结点个数;S:加速比; 当1-a等于0时...
2019-11-17 14:41:14 347
原创 算法——排序算法类模板
package algorithms.example; /** * @Author: zjtMeng * @Date: 2019/11/14 22:15 * @Version 1.0 */ public class Example { /** * 排序算法的实现 * @param a 待排序的数组 */ public static void...
2019-11-15 00:24:22 224
原创 后端获取http请求中的参数
1.参数在请求url上,如:http://{host:port}/mnagement//{ruleId} 方法:在入口方法的参数前面,使用@PathVariable注解,并且变量名与url中大括号中变量名一致,即可直接传入该方法中 获取其中{ruleId}的示例代码: //对应请求:http://{host:port}/mnagement/10086,获取url中的10086 @Req...
2019-11-14 12:54:43 3387
原创 SpringBoot+Mybatis 配置多数据源
目的: 在springBoot项目中添加database1数据库和database2数据库 第一步:修改application.properties配置文件 1. 在application.properties文件中追加了以下内容 #mysql database1数据库 spring.datasource.database1.url=jdbc:mysql://10.10.10.10/data...
2019-11-14 11:32:07 190
原创 剑指offer——变态青蛙跳
题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法; 规律: 一级台阶:1 = 2^0; 二级台阶:2 = 2^1; 三级台阶:4 = 2^2; 四级台阶:8 = 2^3 … n级台阶:count = 2^(n-1) 代码实现 public class Solution { /** * 运行时间:17ms ...
2019-11-12 11:23:31 94
原创 剑指offer——青蛙跳
问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 方法一:递归 public class Solution1 { /** * 运行时间:489ms * 占用内存:9308k * @param target * @return */ public int J...
2019-11-12 00:04:53 112
原创 剑指offer——斐波那契数列
题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 方法一:递归求解(不推荐) public class FibonacciDemo1 { public static int Fibonacci(int n) { if (n==0) return 0; el...
2019-11-11 23:24:53 169
原创 Git命令操作
工作区 ----- git add ----> 暂存区 ----- git commit----> 仓库 一、仅本地操作 1.本地创建文件,其中“-p”确保目录名称存在,不存在的就建一个。 mkdir-p demo_git #创建demo_git文件夹 2.git init .:在当前路径内初始化一个git仓库 #进入demo_git文件夹内 cd demo_git ##...
2019-11-04 11:31:31 141
原创 Java并发编程——死锁与并发最佳实践
一、死锁 1.产生的必要条件 互斥条件:进程对锁分配的资源进行排他性使用; 请求和保持条件:线程已经保持了一个资源,但是又提出了其他请求,而该资源已被其他线程占用; 不剥夺条件:在使用时不能被剥夺,只能自己用完释放 环路等待条件:资源调用是一个环形的链; 2.死锁示例 示例代码: /** * 一个简单的死锁类 * 当DeadLock类的对象flag==1时(td1),先锁定o1,睡眠500...
2019-11-03 18:59:35 200
原创 Java并发编程——线程池Executor
一、线程池Executor 1. 传统 new Thread的弊端 每次new Thread 新建对象,性能差; 线程缺乏统一管理,可能无限制的新建线程,相互竞争,可能占用过多的系统资源导致死机或者OOM(out of memory内存溢出),这种问题的原因不是因为单纯的new一个Thread,而是可能因为程序的bug或者设计上的缺陷导致不断new Thread造成的。 缺少更多功能,如更多执行...
2019-11-03 15:34:12 290
12306抢票Python代码,内含视频教程
2019-02-24
mybatis 3.2.7核心包、依赖包、数据驱动包
2018-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人