自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis与memcached的区别

redis与memched的区别 比较内容 redis memcached 数据类型 String、list、set、zset、hash 简单数据类型(k/v),也可存储 网络IO模型 单线程,多路IO复用模型 多线程,非阻塞IO复用的网络模型 数据存储及持久化 支持,用快照模式或者AOF方式实现 不支持,数据都存于内存中 集群模式 原生支持cluster 没有原生的集运模式,需要依靠客户端来实现往集群中分片写入数据 数据一致

2023-07-06 17:17:08 433

原创 js获取table某一列的全部值

js获取table某一列的全部值1.页面代码:<table width="99%" border="0" cellpadding="0" cellspacing="1" class="biaocss3 " id="showM...

2019-06-28 15:53:17 6324 2

原创 jsp实现将选中的多选框的table列动态加载到另一个页面特定位置或者特定table里面

jsp实现将选中的多选框的table列动态加载到另一个页面特定位置或者特定table里面页面代码,后台获取的数据,将每一行的字段值赋予checkbox的attr1......9, <table width="99%" border="0" cellpadding="0" cellspacing="1" class="biaocss...

2019-06-28 15:43:07 1034

原创 java生成二维码

String shopbase64s = QrCodeUtil.createQrCode(shopUrls);//生成二维码的地址url以下是封装的工具类,可直接使用,所需要的jar包core-3.3.3.jarimport java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import ja...

2019-06-14 16:26:15 449

原创 java实现将图片转为base64格式

logoImgUrl = getImgStr(url);//图片链接 public static String getImgStr(String imgFile) { ByteArrayOutputStream data = new ByteArrayOutputStream(); try { // 创建URL...

2019-06-14 15:54:25 3363 2

原创 java实现对象克隆

1、实现Cloneable接口,重写Clone()方法,方法修饰符用public;2、利用序列化,实现Serializable接口;

2019-04-16 17:16:29 142

原创 BIO、NIO与AIO的区别

BIO:同步且阻塞,一个连接一个线程,使用于多线程中,适用连接数少且固定的架构;NIO:同步非阻塞,一个请求一个线程,多使用于单线程或者少量使用于多线程,适用于连接数量多且连接比较短(轻连接)的架构;AIO:异步非阻塞,一个有效请求一个线程,多使用于连接数量多且连接比较长(重连接)的架构;...

2019-04-16 17:11:06 190

原创 java创建线程池的方式有哪些

1、NewSingleThreadExecutor:创建一个单线程的线程池,只有一个线程工作,保证所有任务的执行顺序按照任务的提交顺序执行;2、NewFixedThreadPool:创建固定大小的线程池,每次提交一个任务就从线程池中拿一个线程,直到线程达到线程池的最大大小。线程池的大小一旦达到最大值就会保持不变,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程;3、newCach...

2019-04-16 17:01:22 806

原创 同步与异步的区别

同步:当请求时,需要处理完所有的操作,结果返回到客户端,这个过程中页面出现假死状态,不能有任何其他操作,如果关闭浏览器就会中断程序执行;例如:表单提交。异步:请求时,,后端程序已经进入启动执行状态,不用等待所有操作完成就会响应客户端。例如:ajax请求。...

2019-03-13 13:19:04 176

原创 jQuery 选择器

jQuery选择器分为四种:基本选择器:是jQuery中最常用的选择器,也是最简单的选择器,它是通过id,class和标签名等进行DOM元素查询的,id是唯一的,class可以重复使用。层次选择器:如果我们想通过元素之间的关系来获取特定的元素,那么层次选择器是一个非常好的选择。层次选择器的书写规则:【1】$("div span") 集合元素 eg:选取div里面的所有span元素;【2】$...

2019-03-12 01:50:37 335

原创 数据库死锁

死锁产生的场景:1、用户A先访问了a表,此时锁住了a表,然后再去访问了b表,此时用户B访问了b表,用户B当然也锁住了b表,当用户B访问a表示需要等待用户A释放a锁,而用户A访问b表示需要等待用户B释放b表的锁,这样就会产生死锁。解决办法:对于数据库的多表操作时,尽量按照同样的顺序进行处理,避免同时锁定两个资源,如操作A和B两张表时,总是按先A后B的顺序处理,必须同时锁定两个资源时,要保证在...

2019-03-12 01:33:25 193

原创 事务的隔离级别

事务的隔离级别由低到高的顺序: 1、Read uncommitted(读未提交的):最低级别,任何情况都无法保证; 2、Read committed(读已提交的):可避免脏读的发生; 3、Repeatable read(可重复读):可避免脏读和不可重复读的发生; 4、Serializable(串行化):可避免脏读、幻读、不可重复读的发生;...

2019-03-12 01:18:25 179

原创 JAVA中double和float类型精度丢失

JAVA中double和float类型精度丢失的主要原因: 我们所定义或者获取的double或float型数据其实是十进制的,计算机不能直接进行计算,需要将它转换成二进制才能识别计算;然而在转换成二进制的过程中,我们知道十进制整数转化为二进制(除2取余,逆序排列); 但是如果double和float类型值为小数的时候,十进制小数转二进制小数(乘2取整,顺序...

2019-03-12 00:10:36 667

原创 多线程产生死锁的四个必要条件

多线程产生死锁的四个必要条件1、互斥条件:任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。2、不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。3、请求和保持条件:进程每次申请它所需要的一部分...

2019-03-04 19:28:49 2103 1

原创 Lock和synchronized的区别

Lock和synchronized的区别1、Lock是接口,而synchronized是java的关键字;2、synchronized发生异常时,自动释放线程占有的锁,不会导致死锁现象的发生;Lock发生异常时,如果没有通过unLock()释放锁,可能会造成死锁现象,使用Lock需要在final...

2019-03-04 13:14:34 473

原创 ThreadLocal的作用是什么

ThreadLocal的作用1、ThreadLocal解决多线程的并发问题,是Thread的局部变量,使用它维护变量,会使该变量的线程提供一个独立的副本,可以独立修改,不会影响其他线程的副本、...

2019-03-04 12:59:54 3289

原创 volatile关键字的作用

volatile关键字的作用:1、volatile关键字主要用在多线程中,用来修饰变量,保证其在多线程中的可见性,每次读到volatile变量,一定是最新的数据。2、volatile关键字能禁止指令重排序,volatile不能保证之前访问语句的执行顺序,也不能保证之后的访问语句的执行顺序,它只能保证在它执行时,它前面访问语句执行完毕,且结果对它和之后的语句是可见性的...

2019-03-04 12:33:29 2278

原创 实现多线程的三种方法

实现多线程的三种方法:1、继承Thread,重写run()方法,调用start()方法启动线程;2、实现Runnable接口,实现run()方法,用new Thread(Runnable target).start()方法启动相应线程;3、实现Callable接口,实现call()方法,而且call()方法有返...

2019-03-04 12:15:32 496

原创 start()和run()方法的区别

start()和run()方法的区别:1、start方法用来启动相应的线程;2、run方法只是thread的一个普通方法,在主线程里执行;3、需要并行处理的代码放在run方法中,start方法启动线程后自动调用run方法;4、run方法必去是public的访问权限,返回类型为void。...

2019-03-04 12:03:19 6532

原创 Spring的七大事务传播行为

1、PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。2、PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。3、PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。4、PROPAGATION_REQUIRES_NEW:新...

2019-03-03 16:35:58 525

原创 static关键字的几种用法

就我们平常工作中用到的static关键字,静态变量和静态方法比较常见,我总结了一下static的多种用法:1、静态变量:存放在方法区,静态变量是属于类的,只有一个实例化对象,使用方式【类名.变量名】【对象.变量名】。2、静态方法:static方法直接用类名调用。3、静态代码块:用于初始化类,只会执行一次,由于JVM在加载类时会执行静态代码块,静态代码块先于主方法执行。4、静态内部类...

2019-02-27 18:50:54 837

原创 Oracle的索引类型

1. b-tree索引2. 位图索引(bitmap index)3. 基于函数的索引4. 分区索引和全局索引5. 反向索引(REVERSE)6. HASH索引

2019-02-25 17:33:37 282

原创 索引的数据结构

索引的数据结构包括 :1、B-树(B-tree):默认索引,以B树结构组织并且存放索引数据的,默认B树索引中的数据是以升序方式排序的,适合大量的增、删、改。2、散列(Hash):散列索引是访问数据库数据的非常快。集群键上不同值的数目必须在创建散列集群之前就需要在创建散列集群的时候指定这个值。使用散列索引必须要使用散列集群。3、k-d 树(k-d tree):利于范围查询,它有两维的数据...

2019-02-25 17:27:02 824

原创 不通过构造函数如何创建对象?

我们通常创建对象的方式有两种:new一个新的对象;或者是利用反射原理。       然而这两种都是通过构造函数创建对象的。如果不通过构造函数则使用对象的clone()方法,或者是用反序列化。...

2019-02-25 16:14:34 2209

原创 get与post的区别

1、get把参数放在url里,而post则是由request body传递参数;2、get方法向url添加数据;url的长度是受限制的(url的最大长度是 2048 个字符),而post没有限制;3、get的请求数据在逗暴露在url上,安全性比post差,容易暴露敏感信息;4、get请求只能进行url编码,而post支持多种编码方式;5、get产生一个TCP数据包;post产生两个...

2019-02-25 16:08:13 83

原创 join和split的区别

1、join()把一个数组的所有元素放入一个字符串里面。2、join()中的元素是由指定的分隔符进行分离开的。3、split()方法用来把一个字符串分割成字符串数组。4、然而stringStr.split('切割点',‘设置切割长度,否则整个字符串都会被分割,不考虑它的长度’);...

2019-02-25 15:42:25 9021

原创 spring中涉及的所有设计模式汇总

1、工厂方法模式:spring中的FactoryBean就是典型的工厂方法模式;2、单例:spring中的单例模式提供了全局的访问点BeanFactory,由于Spring的管理是任意的java对象,所以没有从构造器级别去控制单例;3、适配器(Adapter):Spring中aop的处理中,需要拦截器对象,需要适配对应的拦截器对象;4、包装器:Spring中用到的包装器模式在类名上有两...

2019-02-17 00:49:54 214

原创 notify()和notifyAll()的区别

1、notify()只能唤醒一个wait()线程,然而notifyAll()可以唤醒多个wait()线程;2、两个都必须在synchronized中使用,过程不释放锁;3、当每个线程都有特定锁的时候,只有等待这个锁的线程才能被唤醒,也就是线程2的notify()或notifyAll()不能唤醒线程1的wait();...

2019-02-17 00:21:31 3083

原创 wait与sleep的区别

1、wait()方法属于Object类,sleep()属于Thread类;2、wait()方法释放cpu给其他线程,自己让出资源进入等待池等待;sleep占用cpu,不让出资源;3、sleep()必须指定时间,wait()可以指定时间也可以不指定;sleep()时间到,线程处于临时阻塞或运行状态;4、wait()方法会释放持有的锁,不然其他线程不能进入同步方法或同步块,从而不能调用no...

2018-04-21 01:32:46 7927 4

原创 java实现图片jpg批量转换成pdf

简单实现jpg图片批量转换成pdf

2018-03-28 23:23:03 3259

原创 内部类的理解

内部类的定义: 通常我们把一个类放在另一个类的内部定义称为内部类。内部类的作用: 1.内部类提供了更好的额封装,只能让外部类直接访问,不允许同一个包的其他类直接访问。 2.内部类可以直接访问外部类的私有属性,内部类被当其成外部类的成员,但是外部类不能访问内部类的内部属性。内部类的分类:1.成员内部类(细分为两种):(1).非静态内部类:a.非静态内部类必须寄存在一个

2017-10-01 18:41:34 199

原创 接口与抽象类的区别

抽象类:1.抽象类不能实例化,及不能用new来实例化抽象类。2.抽象类可以包含属性、方法、构造方法,但是构造方法不能用new来实例,只能用来被子类调用。3.抽象类只能用来继承,而且是单继承。4.抽象方法必须被子类实现。5.抽象类实现了规范和具体实现的分离,通过abstract方法定义规范,要求子类必须定义具体实现。6.抽象类中成员可以是private,默认,protecte

2017-09-30 13:37:03 157

原创 LinkedList、ArrayList、 Vector的区别和详解

ArrayList:1.数组队列,是基于动态数组的数据结构,实现了可变大小的数组,允许元素null。2.每个ArrayList实例都有一个容量,ArrayList创建对象的时候,会有一个带有参数的构造器,而此参数就是ArrayList的长度,默认长度为10,当数据增加时,原来的长度不够用时,ArrayList就会实现自增长,将会创建一个更大的数组,数组长度为newLength = ol

2017-09-29 17:37:45 233

原创 object常用的方法有哪些

1.我们最常用的方法就是toString()方法,将对象信息变成字符串返回。class People{    String name = "Haixia";    int age = 21;}public class Text{    public static void main(String[] args)    {        People p 

2017-09-26 20:27:05 907

原创 String、stringbuffer、Stringbuilder的区别和讲解

String:String可以理解为字符串常量,因为它创建的对象是final修饰的,不能被继承,也不能被改变,所以线程是安全的,如果改变改变了它对象的值,也就相当于创新创建了一个新的对象,把原来的对象释放掉。StringBuilder与StringBuffer都继承自AbstractStringBuilder类,对象可以修改,不会产生新的对象。StringBuffer:字符串变量,对其对象...

2017-09-26 20:12:31 173

原创 引用传递和值传递的区别

引用传递:我们在调用方法时,把实际引用的参数地址传递给了方法中相对应的形式参数,而函数接收的是原始的参数值的内存地址;所以在方法执行中形参和实参内容相同,都指向同一个内存地址,注意的是在方法执行中对引用参数的操作会影响到实际的参数。值传递:调用方法时,实际参数把值传给了对应的形式势参数,函数接收的是原始值的复制,此时内存中出现两个相等的实际参数和形式参数,后续的方法执行中对参数的操作都是针对形

2017-09-26 19:50:05 598

原创 java的栈,堆,静态区的理解

栈:主要用来存储定义的变量,对象的引用(不是对象),函数调用的现场,而每个栈中的数据都是私有的,其他栈不能访问。堆:存储对象,一般有程序员释放,如果程序员没有释放,则程序结束后由系统自动回收。静态区:存放静态数据,全局数据和常量

2017-09-26 17:21:36 472

原创 int与Integer的区别以及转换

java是面向对象编程的语言,为了能够将这些基本数据类型当成对象操作,java为每个类型都引入了对应的包装类,integer就是int的包装类。1.int是数据基本类型存在栈内,而integer是作为对象存在堆里面的;2.Integer的默认值是null,而int的默认值却是0;3.声明integer的变量需要实例化,而申明int的变量不需要实例化;4.integer是对象,用一个

2017-09-26 16:21:10 1001

原创 bootstarp table对某一字段过长做截取处理

由于bootstrap table里面某个字段的值可能过长,会影响到table的布局,需要对field其进行攫取字符串长度处理, 我采用了formatter函数,对当前列的数据进行格式化操作,使用return 返回的value显示在单元格中;

2017-06-08 00:30:17 8585

空空如也

空空如也

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

TA关注的人

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