自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Semaphore类

1.简介 信号量通过一组许可证来控制对共享资源的访问。 如果需要,可以用acquire()方法获取许可,如果许可为0,那么会进行阻塞,通过使用release()方法释放许可,把许可归还给Semaphore,归还之后,阻塞的线程优惠醒来尝试获取许可。 2.api简介 Semaphore(int pe...

2020-06-03 14:49:43 6 0

原创 CyclicBarrier类

1.简介 可循环利用的屏障。 它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 ...

2020-06-03 14:18:07 8 0

原创 类CountDownLatch的使用

1.简介 允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。 一个CountDownLatch初始化为给定数。该await方法将阻塞,直到由于该countDown()方法的调用导致当前计数达到零为止,此后所有等待线程都被释放,并且随后的任何awaitreturn 调用都将立即释放 。...

2020-06-03 11:09:22 11 0

原创 redis常见的缓存问题(穿透、雪崩、击穿)

redis缓存穿透 简介 null值问题。缓存数据先从缓存查询,再从数据库查询。如果key值不存在,则从db中获取。这样大量的请求,缓存失效,给服务器造成压力。 解决方法 方法一:key值不存在的也保存在缓存中,设置短的过期时间,缓解db的压力。 方法二:布隆过滤器,即对一定不存在的key进行过...

2020-04-27 17:33:08 26 0

原创 redis持久化机制

1.什么是redis持久化? redis持久化是在指定时间间隔内,将redis内存中的数据写到磁盘中,如果redis服务器宕机了,可以从磁盘上读数据到内存中,从而恢复数据。 2.redis持久化的方式 2.1RDB方式 原理:linux虚拟机fork一个子进程,负责将rdb中的数据写到临时的rd...

2020-04-21 20:21:24 33 0

原创 redis的分布式锁

1.分布式锁 单应用中使用锁:(单进程多线程) synchronize、ReentrantLock 分布式应用中使用锁:(多进程多线程) 分布式锁是控制分布式系统之间同步访问共享资源的一种方式 2.分布式锁的实现方式 基于数据库的乐观锁实现分布式锁 基于zookeeper临时节点的分...

2020-04-21 12:36:38 32 0

原创 单例模式的双重检测

1.一般的单例模式如下: class Singleton{ private static Singleton singleton; private Singleton(){} public static Singleton getInstance(...

2020-04-07 17:56:58 26 0

原创 shiro注解解决按钮级别权限的校验

1.spring容器中注入shiro的权限解析器 <!--权限处理器,主要是用来处理传过来的权限信息的,里面只有一个方法 --> <bean id="userPermissionResolver" class="com.xdja.cssp.ecss....

2020-04-07 17:48:10 36 0

原创 redis配置文件详解

配置文件:redis.conf 1.设置保护模式 默认:protected-mode:yes 开启保护模式后,所有的外部ip都不能访问,只能本机访问。 2.设置外网访问链接 默认:bind 127.0.0.1 设置外网访问控制方法: 1.注释掉 #bind 127.0.0.1 并把protecte...

2020-03-31 22:08:00 13 0

原创 redis的安装

redis下载地址:https://github.com/MSOpenTech/redis/releases 1.解压tar包 2.make 注意:如果make报错的话 大家就可以看一下是不是报没有gcc的错 如果是报没有gcc的错,那就要先安装一个gcc 3.yum install gcc-...

2020-03-31 21:33:30 7 0

原创 java中内存泄漏的问题

1.什么是java中的内存泄露 内存泄漏定义:无用对象持续占有内存或无用对象的内存得不到释放,从而造成内存空间的浪费。 满足的条件: 1.对象与GCROOT的节点相连,不是垃圾对象; 2.对象是无用的 这些对象不会被GC所回收,然而它却占用内存 内存泄漏的根本原因:长生命周期的对象持有短生命周...

2020-03-26 19:40:00 30 0

原创 java如何判断一个对象是否存活

1. 引用计数法 引用计数器法:每个对象设置一个引用计数器,当对象被引用,计算器加1,当引用失效,计算器减一。当计数器为0时, 表示引用失效,也就是"死对象",可以被垃圾回收机制回收。 缺陷:无法解决循环依赖的问题。有两个对象A、B。当A引用B,B引用A时,那么此时A、B对象...

2020-03-26 19:19:08 14 0

原创 类加载机制

1.原理 JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构, 在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的java.lang.Class 对象, 作为方法区类数据的访问入口。 2.过程 VM类加载机制分为五个部分:加...

2020-01-13 16:17:22 33 0

原创 String中intern方法的作用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-08-30 15:04:16 32 0

原创 HttpClient的HttpGet、HttpPost、HttpPut、HttpDelete工具类

//Http的get请求方法 public static String httpGet(String listenIp, String service, JSONObject jsonStr) { String saveProxyUrl = "http://" ...

2019-06-26 16:40:28 82 0

原创 jdbc获取mysql、oracle数据库的表、字段、主键、唯一索引

根据数据库的四大参数获取指定库中的所有表 //根据数据库的参数获取指定库中的所有表 public static List<Map<String, String>> getDbTables(String driver, String url, String user, St...

2019-04-29 10:51:17 510 0

转载 IDEA版本控制工具VCS中使用Git,以及快捷键总结(不使用命令)

场景介绍: 工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三...

2019-01-07 09:39:45 177 0

原创 [ElementUI]el-table-column(表头)使用 :render-header 实现el-select(下拉框)

2018-12-15 09:49:17 4870 3

转载 Intellij idea怎么将项目导出成war包

&lt;link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-e4c7a3727d.c...

2018-10-17 11:32:08 1247 1

原创 ztree的创建和勾选

&lt;div id="div_tree" class="people_list mt10" style="width:100%;overflow:auto;"&gt; &lt;ul i...

2018-10-17 11:24:02 79 0

转载 配置Log4j(很详细)

&nbsp;来自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(Configuration File)就...

2018-09-26 15:03:07 78 0

转载 Tomcat启动过程原理详解

基于Java的Web 应用程序是 servlet、JSP 页面、静态页面、类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器。W...

2018-09-13 22:00:51 91 0

原创 实现一次更新多条数据

实现用一条sql去更新多条语句的前提是多条语句的条件不同,但是更新的字段及字段的值都是相同的,这样才能去更新。 public void updateMoreNumber(String[] ids){ StringBuffer sb = new StringBuffer("upd...

2018-04-08 17:33:45 5070 0

转载 Tomcat的overview界面浅析

Server Locations配置有三个选项: 1. Use workspace metadata (does not modify Tomcat installation)...

2018-04-04 10:54:49 404 0

转载 the import cannot be resolved问题

原文出自百度 1、clean项目,重新编译项目。 【解决】一般使用eclipse/myeclipse的菜单 project -&gt; clean ..可以解决。同时最好选中Build Automatically选项。...

2018-03-29 09:58:41 6592 0

转载 hibernate级联查询执行n+1次sqlt语句问题(内含解决办法,优化方式)

如果当SQL数据库中select语句数目过多,就会影响数据库的性能,如果需要查询n个Customer对象,那么必须执行n+1次select查询语句,下文就将为您讲解这个n+1次select查询问题。 在Session的缓存中存放的是...

2018-03-28 16:37:45 84 0

转载 ORACLE中CONNECT BY...START WITH...的使用

一、语法 大致写法:select * from some_table [where 条件1] connect by [条件2] start with [条件3]; 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要。 [...

2018-02-01 10:55:53 142 0

原创 14.链表的倒数第k个节点

PS:这是一道出境率极高的题目,记得去年参加校园招聘时我看到了3次,但是每次写的都不完善。 一、题目:链表的倒数第k个节点 题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依...

2018-01-30 17:24:11 105 0

转载 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)

【前面的话】 在网上经常看到有人对request.getSession(false)提出疑问,我第一次也很迷惑,看了一下J2EE1.3 API,看一下官网是怎么解释的。  【官方解释】   getSession  public HttpSession getSession(boolean cre...

2018-01-29 14:52:32 90 0

原创 [Err] 1093 - You can't specify target table 's1_test' for update in FROM clause

前提说明:数据库采用的是mysql。 数据库表格: 题目: 删除除了编号不同,其他信息都相同的冗余信息。 思路: 1.找出除了编号不同,其他信息不全相同的编号。 关键词:group by……having :分组查询,我对这个关键词的理解是:不同的行之间找出列相同的一项或者几...

2018-01-18 17:29:29 3963 0

原创 以activiti配置文件为例介绍Spring管理的bean工厂

配置工厂Bean 通常由应用程序直接使用new创建新的对象,为了将对象的创建和使用相分离,采用工厂模式,即应用程序将对象的创建及初始化职责交给工厂对象. 一般情况下,应用程序有自己的工厂对象来创建bean.如果将应用程序自己的工厂对象交给Spring管理,那么Spring管理的就不是普通的...

2018-01-10 11:14:59 240 0

原创 验证mysql的自动提交事务和手动提交事务(java版)

个人理解的一个事物:是一个Connection一系列的操作过程,如果是两个Connection连接在操作,那就是两个事物。事物的前提:数据库的存储引擎是innodb。事物的目的:保证数据的安全性。事物安全: 1.自动提交事务:每执行一条sql语句,就同步到数据库中。 2.手动提...

2017-10-25 21:29:29 17321 1

原创 希尔排序算法(java版)

希尔排序:直接插入排序的改良版,威力更强。 直接插入排序是每一移一个,比较相邻的两个 希尔排序第一次分堆是 n = n / 2为一堆的,也就是下标为i的元素和下标为i + n/2,i + n/2 +… < n的元素作为一堆的, 每次比较i 和 i + n /2 的元素,保证n[i] <...

2017-09-06 08:58:31 187 0

原创 直接插入排序(java版)

直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。                   – 《大话数据结构》                    package com.zhan...

2017-09-05 21:08:40 193 0

原创 堆排序算法(java版)

package com.duobang.headSort;import java.util.Arrays; import java.util.Random;public class MyHeapSort { public static void main(String[] args) { ...

2017-09-05 15:23:40 255 0

原创 大数相加问题(java版 )

两个大数相加,如果把数字转换成字符串,那么无论多大的数都可以相加了,将两位数做加法的过程用java代码模拟出来,那么这个问题就得到了解决。package com.zhangyike.bigNum;import java.util.Scanner;public class AndBigNumber ...

2017-08-04 09:34:30 451 0

原创 大数相乘问题(java版)

将两个大数保存到字符串中,他们相乘的结果也保存到字符串中,那么无论多大的数,都能够用这种方法去解决。首先看下我们数学上怎么去计算两个数字相乘的: 如果我们用程序把上面的过程写出来,那么这个问题就解决了。java代码如下:package com.zyk.model;import java.util...

2017-08-03 20:31:53 286 0

转载 mybatis解决sql注入问题

sql注入大家都不陌生,是一种常见的攻击方式,攻击者在界面的表单信息或url上输入一些奇怪的sql片段,例如“or ‘1’=’1’”这样的语句,有可能入侵参数校验不足的应用程序。所以在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性很高的应用中,比如银行软件,经常使用将sql语句全部...

2017-07-28 15:44:07 726 0

转载 如何解决sql注入的问题

Java防止SQL注入SQL 注入简介: SQL注入是最常见的攻击方式之一,它不是利用操作系统或其它系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法用户钻了SQL的空子,下面我们先来看下什么是SQL注入: 比如在一个登陆界面,要求用户输入用户名和密码: 用户...

2017-07-28 15:38:12 489 0

原创 将一个数转换成小于它的任意进制(java版)

//进制转换 public class RadixChange1 { public static void main(String[] args) { Scanner can = new Scanner(System.in); try { ...

2017-07-11 11:22:46 296 0

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