java
文章平均质量分 84
道生壹贰
道生一,一生二,二生三,三生万物。
展开
-
线程池基础知识
文章来源:https://mp.weixin.qq.com/s/HWoyHgZiUz7pqFhYxfLDNA公众号: yes的练级攻略什么是线程池?基于池化思想管理线程的工具。Java中的线程与操作系统线程是一比一的关系线程的创建和销毁是一个“重”的操作多线程是为了提高CPU的利用率线程的切换有开销,线程数的多少需要结合CPU核心数与I/O等待占比线程池的优点?降低资源消耗:重复利用已创建的线程,降低线程创建和销毁造成的损耗提高响应速度:任务到达时,无需等待创建线程即可立.转载 2021-06-28 17:23:37 · 140 阅读 · 0 评论 -
动态规划详解
动态规划(英语:Dynamic Programming 简称DP)是一种在数学,管理科学,计算机科学,经济学和生物信息中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。简单来说:给定一个问题,把它拆成一个个子问题,直到子问题可以直接解决。把子问题答案保存起来,减少重复计算。再根据子问题答案反推,得出原问题解的方法。动态规划最核心思想,就在于拆分子问题,记住过往,减少重复计算一只青蛙一次可以跳上一级台...转载 2021-05-13 14:55:46 · 398 阅读 · 0 评论 -
深入浅出Mybatis-XML映射器
Mybatis的真正强大在于它的语句映射,这是它的魔力所在;1.select查询语句标签<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id}</select>select元素属性属性描述id命名空间唯一标识符parameterType参数的类全限定名或别名,通过类型处理器解.原创 2021-04-29 16:16:08 · 352 阅读 · 0 评论 -
深入浅出Mybatis配置文件
简介什么是MybatisMybatis 是一款优秀的持久层框架;它支持自定义SQL,存储过程以及高级映射;Mybatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作;Mybatis可以通过简单的XML或注解来配置和映射原始类型,接口和Java POJO为数据库中的记录;特点简单易学:本身就很小且简单;灵活;解除SQL和程序代码的耦合,SQL和代码分离,提高可维护性;提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组建维护;原创 2021-04-27 16:43:29 · 603 阅读 · 0 评论 -
分布式锁
以下文章来源于公众号:艾小仙 作者:艾小仙1.什么是分布式锁?单机系统:可以通过synchronized或者ReentrantLock这些常规的加锁方式来实现。|分布式集群系统:单纯的本地锁无法解决问题,需要用到分布式锁。通常会引入三方组件或服务来解决这个问题。比如:数据库,Redis,Zookeeper等。通常来说,分布式锁要保证互斥性,不死锁,可重入等特点。互斥性:对于同一资源,任意时刻,都只有一个客户端能持有锁。不死锁:必须要有锁超时这种机制,保证在出现问题的时候释放锁,不会.转载 2021-03-28 18:16:21 · 348 阅读 · 0 评论 -
java中的关键字transient
阅读HashMap源码过程中,看到以下一行代码,对显眼的transient关键字产生好奇,于是上网查阅,看到一篇好文,便记录下来,以便之后查看。/** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. * (We also tolerate length zero in some operat.转载 2020-11-27 17:23:51 · 249 阅读 · 0 评论 -
如何决定使用HashMap还是TreeMap
问:如何决定使用HashMap还是TreeMap?介绍:TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap是按照Key值默认升序排序;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的,均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用在Map中插入,删除,定位元素。结论:TreeMa转载 2020-08-17 10:23:59 · 182 阅读 · 0 评论 -
多线程知识解析
1.synchronized的实现原理以及锁优化?</>synchronized的实现原理synchronized作用于【方法】或者【代码块】,保证被修饰的代码在同一时间只能被一个线程访问。synchronized修饰代码块时,JVM采用[monitorenter、monitorexit]来个指令来实现同步synchronized修饰同步方法时,JVM采用[ACC_SYNCHRONIZED]标记符来实现同步monitorenter、monitorexit或者ACC_SYNCHRON转载 2020-07-29 16:16:22 · 422 阅读 · 0 评论 -
权限系统设计方案
来源:cnblogs.com/iceblow/p/11121362.html前言1.权限模型2.授权流程3.表结构4.权限框架5.结语前言权限管理是所有后台系统都会涉及到的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的安全问题,如操作错误,隐私数据泄露等问题。目前在公司负责权限这块,所以队权限这块的涉及比较熟悉,公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心,订单中心,用户中心,仓库系统,小程序,多个APP等.转载 2020-05-29 14:50:38 · 1744 阅读 · 0 评论 -
Docker入门
容器简介什么是 Linux 容器Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。更加详细的来说,假定您在开发一个应用。您使用的是一台笔记本电脑,而且您的开发环境具有特定的配置。其他开发人员身处的环境配置可能稍有不同。您正在开发的应用依赖于您当前的配置,还要依赖于某些特定文件。与此同时,您的企业还拥有标准化的测试和生产环境,且具有自身的配转载 2020-05-27 17:44:27 · 832 阅读 · 0 评论 -
40道Java多线程问题总结
文章转载自 https://www.cnblogs.com/xrq730/p/5060921.html#!comments1.多线程有什么用发挥多核 CPU 的优势防止阻塞便于建模2.创建线程的方式?继承Thread类实现Runnable接口后者要好一点,因为实现接口的方式比继承类的方式更灵活,也能减少程序之间的耦合度,面向接口编程 也是设计模式6大原则的核心。3. start() 方法和 run() 方法的区别只有调用了 start() 方法,才会表现出多线程的特性,转载 2020-05-19 17:44:53 · 164 阅读 · 0 评论 -
HashMap面试问题
前言HashMap 是无论在工作还是面试中都非常常见常考的面试结构。比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到HashMap的,高频考题 **LRU Cache**是需要用到 LinkedHashMap 的。HashMap 用起来很简单,底层实现也不复杂,先来看几道常见的面试题吧。相信大家多多少少都能回答上来一点,不清楚的地方就仔细阅读文本吧。==...转载 2020-05-07 15:50:49 · 669 阅读 · 0 评论 -
Linux防火墙常用命令
首先得知道自己系统是什么版本的:cat /etc/redhat-releaseCentOS 6linux防火墙常用命令1.永久性生效,重启后不会复原开启:chkconfigiptables on关闭:chkconfigiptables off2.即时生效,重启后复原重启防火墙方式一:/etc/init.d/iptables restart方式二:service iptables...原创 2020-04-21 14:55:05 · 355 阅读 · 0 评论 -
一道java面试题
作者:方志宏https://zhuanlan.zhihu.com/p/57859872题目很简单,完成代码,判断一个整数是否是奇数:public boolean isOdd(int i)菜鸟:public boolean isOdd(int i){ if(i%2 == 1){ System.out.println("是奇数"); }else{ System.out.pr...转载 2020-03-25 10:46:54 · 189 阅读 · 0 评论 -
Springboot + redis + 注解 + 拦截器来实现接口幂等性校验
来源:jianshu.com/p/6189275403ed一,概念幂等性,通俗得说就是一个接口,多次发起同一个请求,必须保证操作只能执行一次比如:订单接口,不能多次创建订单支付接口,重复支付同一笔订单只能扣一次钱支付宝回调接口,可能会多次回调,必须处理重复回调普通表单提交接口,因为网络超时等原因多次点击提交,只能成功一次等等二,常见解决方案唯一索引 – 防止新增脏数据...转载 2020-02-14 14:32:40 · 208 阅读 · 0 评论 -
Mybatis十八连环问!!!
来自:开源中国,作者:祖大俊链接:https://my.oschina.net/zudajun/blog/7476821.#{}和${}的区别是什么?${}是properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如 ${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的...转载 2020-01-31 18:18:15 · 210 阅读 · 0 评论 -
java实现8种排序算法
转载自作者:KaelQ,www.jianshu.com/p/5e171281a3871.直接插入排序经常碰到这样一类的问题;:把新的数据插入到已经排好的数据列中。1.将第一个数和第二个数排序,然后构成一个有序数列。2.将第三个数插入进去,构成一个新的有序序列。3.对第四个数,第五个数…直到最后一个数,重复第二步。如何写成代码:1.首先设定插入次数,即循环次数,for(i...转载 2020-01-20 13:53:31 · 231 阅读 · 0 评论 -
SpringCloud多模块打包报错:Unable to find main class
解决方案:不使用springboot的maven插件改为使用普通的maven插件,使用springboot的maven插件意味着每个模块都需要有启动类,而使用普通的插件则不需要。<!-- 使用springboot的maven插件会报找不到主类错误 --> <!--<build> <plugins> <plugin> &...原创 2020-01-10 19:30:30 · 1200 阅读 · 0 评论 -
ArrayList集合为什么不能使用foreach增删改?
译者:奋斗的小程序员链接:http://suo.im/4XaI8Q编程过程中常常需要使用到集合,而ArrayList是我们常常使用的,但是最近在一次删除和增加中出现了一些问题,分享记录下。分下如下俩段代码List<String> arrayList1 = new ArrayList<String>();arrayList1.add("1");arrayList1...转载 2019-12-25 11:00:40 · 436 阅读 · 0 评论 -
理解悲观锁和乐观锁
以下文章来源于公众号:Java建设者,作者elliottsJava按照锁的实现分为乐观锁和悲观锁,乐观锁和悲观锁并不是一种真实存在的锁,而是一种设计思想,乐观锁和悲观锁对于理解java多线程和数据库来说至关重要,那么本片文章就来详细探讨以下这俩种锁的概念以及实现方式。悲观锁悲观锁 是一种悲观思想,他总认为最坏的情况可能会出现,它认为数据很可能会被其他人所修改,所以悲观锁在持有数据的时候总会把...转载 2019-12-15 17:19:31 · 230 阅读 · 0 评论 -
SpringBoot整合Scheduled(定时任务器)
原文:http://mrw.so/57DDRRScheduled 定时任务器:是Spring3.0以后自带的一个定时任务器。我们来看下在SpringBoot中我们怎么使用一、项目使用1.创建项目添加依赖创建一个SpringBoot项目,并添加如下依赖<dependencies> <dependency> <groupId>org...转载 2019-12-02 09:58:54 · 224 阅读 · 0 评论 -
基于Spring Boot 2.0 的微服务实战项目
基于Spring Boot 2.0 的微服务实战项目前言前言这里会用到Spring Cloud Netflix,该项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括Eure...转载 2019-11-15 11:01:03 · 285 阅读 · 1 评论