3 _jayjune

尚未进行身份认证

The harder you work, the luckier you will be

等级
博文 39
排名 13w+

sql优化

写明查询具体某几列,减少*的使用,表名过长时,尽量使用表的别名*和列名一样2,在业务密集的SQL当中尽量不采用IN操作符,用EXISTS方案代替。in和exists的区别:如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是...

2019-03-23 16:50:55

java中读写锁的使用(ReadWriteLock)

一、在JDK文档中关于读写锁的相关说明ReadWriteLock维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有writer,读取锁可以由多个reader线程同时保持。写入锁是独占的。所有ReadWriteLock实现都必须保证writeLock操作的内存同步效果也要保持与相关readLock的联系。也就是说,成功获取读锁的线程会看到写入锁...

2018-05-18 15:09:47

java 静态代理和动态代理

1、动态代理(DynamicProxy)  代理分为静态代理和动态代理,静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很多的代理,每一个都这么手动的去创建实属浪费时间,而且会有大量的重复代码,此时我们就可以采用动态代理,动态代理可以在程序运行期间根据需要动态的创建代理类及其实例,来完成具体的功能。  其实方法直接调用就可以完成功能,为什么还要加个代理呢?...

2018-03-05 21:01:11

Unicode和UTF-8

ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关

2017-10-15 23:00:08

JVM 中的永久代

PermGen(永久代)绝大部分Java程序员应该都见过“java.lang.OutOfMemoryError:PermGenspace“这个异常。这里的“PermGenspace”其实指的就是方法区。不过方法区和“PermGenspace”又有着本质的区别。前者是JVM的规范,而后者则是JVM规范的一种实现,并且只有HotSpot才有“PermGenspace”,

2017-10-15 09:52:11

二叉树前序,中序,后序遍历

今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。首先,我们看看前序、中序、后序遍历的特性:前序遍历:1.访问根节点2.前序遍历左子树3.前序遍历右子树中序遍历:1.中序遍历左子树2.

2017-09-12 22:57:47

Linux下添加新网卡eht3

1、修改配置文件vim/etc/udev/rules.d/70-persistent-net.rules这里定义了四个网卡,其中NAME为eth3的网卡为我们自己新增的网卡,复制eth3对应的mac地址00:0c:29:16:5c:0b3、接下来修改/etc/sysconfig/network-scripts/ifcfg-eth3文件,将mac地址修改成与70-persistent-net.r

2017-09-11 16:47:39

二叉树的前序、中序和后序遍历

1.前根序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。ABDHECFG2.中根序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。HDBEAFCG3.后根序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点。HDEBFGCA

2017-09-11 11:27:50

堆排序

1.堆原理1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。可以看出,其实堆排序的数据都是存储在数组中的,只是我们操作的时候把它用作完全二叉树进行排序。3.堆的存储一般都用数组来表示堆,i结

2017-09-11 11:17:07

java并发编程

http://www.cnblogs.com/paddix/p/5374810.html

2017-09-07 21:10:51

String 内存分配

看了好多文章,网上大多数文章写的不是很详细,结合很多文章之后,写下自己的理解从一个例子开始Strings=newString("myString");其中字符串常量是”myString”,在编译时被存储在常量池(常量池在方法区)的某个位置。在解析阶段,虚拟机发现字符串常量”myString”,它会在一个内部字符串常量列表中查找,如果没有找到,那么会在堆里面创建一个包含字符序列[myS

2017-09-04 16:07:16

LintCode - 数组 - 132 Pattern

描述Givenasequenceofnintegersa1,a2,…,an,a132patternisasubsequenceai,aj,aksuchthati<j<kandai<ak<aj.Designanalgorithmthattakesalistofnnumbersasinputandcheckswh

2017-09-01 22:44:13

Java内存区域划分

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。java虚拟机运行时数据区一、程序计数器程序计数器可以看做是当前线程所执行的字节码的行号指示器。在JVM的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。

2017-09-01 12:15:22

linux下安装mysql

安装环境:系统是centos6.51、下载    下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads    下载版本:我这里选择的5.6.33,通用版,linux下64位    也可以直接复制64位的下载地址,通过命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6

2017-04-23 11:55:55

freemarker常用标签

一、FreeMarker模板文件主要有4个部分组成1、文本,直接输出的部分2、注释,即<#–…–>格式不会输出3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。 1、文本,直接输出的部分FTL指令规则FreeMarker有三种FTL标签,这

2017-04-12 21:00:55

solr schema.xml 加入中文分析器 IKAnalyzer 就找不到solrcore

solr-4.10.3兼容IKAnalyzer2012_u6.jar会出现问题,换用IKAnalyzer2012FF_u1.jar即可解决问题

2017-04-01 16:49:33

spring @Autowired与@Resource 的区别

1、@Autowired与@Resource都可以用来装配bean.都可以写在字段上,或写在setter方法上。 2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false),如果我们想使用名称装配可以结合@Qualifie

2017-02-26 16:05:31

failed to read candidate component class

大多数原因都是因为spring3.x不被jdk1.8支持,所以解决办法就是改变工程的jdk版本在eclipse选择到要改变jdk版本web工程,右键–>properties–>ProjectFacets–>java改为1.7

2017-02-25 22:33:39

springmvc解决乱码问题(get和post)

1.post提交出现的中文乱码问题解决办法:在web.xml中添加过滤器<filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param

2017-02-06 12:31:39

锁、事务、隔离级别--readonly

为什么需要锁?因为数据库要解决并发控制问题。在同一时刻,可能会有多个客户端对Table1.rown进行操作,比如有的在读取该行数据,其他的尝试去删除它。为了保证数据的一致性,数据库就要对这种并发操作进行控制,因此就有了锁的概念。锁的分类从对数据操作的类型(读\写)分读锁(共享锁):针对同一块数据,多个读操作可以同时进行而不会互相影响。写锁(排他锁):当当前写操作没有完成前,它会阻断其他写锁和读锁。从

2017-01-01 16:31:41
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!