自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql中int、bigint、smallint 和 tinyint的区别

使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的

2018-01-12 09:41:44 2359

转载 IntelliJ IDEA 14.0.3取消警告

File -> Settings -> Editor -> Inspections,选择对应的文件类型,取消勾即可

2017-10-25 17:28:15 1284

转载 Java过滤器(Filter)的工作原理和代码演示

一、Filter简介  Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。  Servlet API中提供了一个

2017-10-16 10:47:21 1779

转载 记一次跨域问题的解决方案

一、背景在公司空暇时间,笔者使用 AngularJS + SSM 方案编写一套权限控制系统。由于采用的是前后端分离的思想,前端页面服务启动的端口和后端服务启动端口不一致导致请求跨域问题的出现。在此,写下解决问题的流程。二、基础知识2.1 什么是同源URL 由协议、域名、端口和路径组成,如果两个 URL 的协议、域名和端口相同,则表示它们同源。2.2

2017-10-15 15:12:09 677

转载 如何在Intellij IDEA中拉svn分支?

由于用IDEA时间也不是特别长,对操作svn的一些东西,不是特别熟悉,特此记录一下,以做备忘。 先说下流程: 在IDEA里面对trunk代码拉分支熟悉了,其实很容易, (1)你trunk目录下的得有个你的releases项目 (2)在idea的工作空间下,按如下截图显示 (3)填一些拷贝的一些的信息: (4)在3的基础上,选则

2017-10-12 11:15:51 687

转载 Mysql之组合索引

对于任何DBMS,索引都是进行优化的最主要的因素。对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降。 如果对多列进行索引(组合索引),列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效的查找。例如: 假设存在组合索引(c1,c2),查询语句select * from t1 where c1=1 and c2=2能够使用该索引。查询语句select

2017-09-26 14:03:48 6974

转载 SQL优化之索引

SQL优化有很多方法,今天来说一说数据库索引。举例说明: 假设有一个图书Book表,里面有字段id,name, isbn等。如果图书数量巨大的话,我们通过isbn查询通常是比较慢的。 添加索引: create index index_isbn ON book (isbn);再次执行查询: 查询时间从0.134缩短到0.001,效果还是很明显的。

2017-09-26 13:56:37 253

转载 mysql创建索引

alter table message_text add index(from_id); alter table message_text add index(to_id);CREATE INDEX 语句用于在表中创建索引。 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。您可以在表中创建索引,以便更加快速高效地查询数据。 用户无法看到索引,它们只能被用

2017-09-26 13:54:17 555

原创 Linux下操作mysql数据库常用命令

1.进入安装mysql的bin目录,使用命令打开mysql窗口mysql -uroot -p1234562.显示mysql下的所有数据库show databases;3.选择要使用的数据库use gonghui-attendance-local4.显示要使用的数据库下的表show tables;5.建库create databse 库名;6.建表crea

2017-09-15 10:06:32 510

转载 Spring学习——Spring中定时器实现

在一些工作需要使用到定时器,Spring很好的集成了定时器的功能! 在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包, 下面介绍两种方式实现Spring定时器功能,一种是基于xml配置方式,一种是基于注解的方式,大家根据自己的项目

2017-09-13 15:35:47 342

转载 JAVA ThreadPoolExecutor线程池参数设置技巧

今天带来些干货,关于java线程池的参数设置。线程池是java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置。干货里的内容大多是参考别人的,加入了一些知识点的扩充和看法。希望能对多线程开发学习的童鞋有些启发和帮助。一、ThreadPoolExecutor的重要参数1、corePoolSize:核心线程数 * 核心线程会一直存活,及时

2017-09-12 13:37:19 1185 1

转载 Executor框架和线程池

在JDK5后主要提供的多线程处理都在java.util.concurrent包中,多线程的主要抽象不是Thread,而是Executor,Executor为接口,定义在java.util.concurrent包下,只定义了一个方法:public interface Executor { void execute(Runnable command); } 123它提供了

2017-09-12 11:09:03 314

转载 Tomcat线程池与NIO配置

每个web客户端请求对于服务器端来说就一个单独的线程,客户端的请求数量增多将会导致线程数就上去了,CPU就忙着跟线程切换。 而NIO则是使用单线程(单个CPU)或者只使用少量的多线程(多CPU)来接受Socket,而由线程池来处理堵塞在pipe或者队列里的请求.这样的话,只要OS可以接受TCP的连接,web服务器就可以处理该请求。大大提高了web服务器的可伸缩性。 大家都听说了在Apach

2017-09-11 17:10:15 1933

转载 40个Java多线程问题总结

前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作

2017-09-11 13:47:08 207

转载 线程池ThreadPoolExecutor参数设置

JDK1.5中引入了强大的concurrent包,其中最常用的莫过了线程池的实现ThreadPoolExecutor,它给我们带来了极大的方便,但同时,对于该线程池不恰当的设置也可能使其效率并不能达到预期的效果,甚至仅相当于或低于单线程的效率。ThreadPoolExecutor类可设置的参数主要有:corePoolSize核心线程数,核心线程会一直存活

2017-09-08 17:26:52 295

转载 海量数据处理系列之(一)Java线程池使用

前言:最近在做分布式海量数据处理项目,使用到了java的线程池,所以搜集了一些资料对它的使用做了一下总结和探究,前面介绍的东西大多都是从网上搜集整理而来。文中最核心的东西在于后面两节无界队列线程池和有界队列线程池的实例使用以及线上问题处理方案。                                 1.  为什么要用线程池?      在Java中,如果每当一个请

2017-09-08 16:36:29 697

转载 JVM高级特性与实践(十二):高效并发时的内外存交互、三大特征(原子、可见、有序性) 与 volatile型变量特殊规则

Amdahl 定律:该定律通过系统中并行化与串行化的比重来描述多处理器系统能获得的运算加速能力。 摩尔定律:该定律用于描述处理器晶体管数量与运行效率间的发展关系。并发处理的刚反应用时使得 Amdahl 定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类“压榨”计算机运算能力的最有力武器。多任务处理几乎是现代计算机操作系统的一项必备功能,由于计算机的运算速度与它的存

2017-09-06 16:35:11 476

原创 JAVA中处理ASCII 160 的char

正则表达处理个空格也费劲。 刚遇到一个空格,用正则表达\\s死活replace不掉,trim也没辙,空格那个char转成int一看,是160,特么空格不是32么。 查了一下,要用以下方式去除: String.replaceAll("\\u00A0","")  坑爹。。 另外查了一下, 貌似IE和Firefox对这个东西的处理也有差异,同志们还是用32的空格吧。。 

2017-09-05 11:33:42 811

原创 JAVA中计算ASCII 为160 32 的空格

String aaa = "北京       上海";String bbb = "上海             杭州";char a = ' ';//aaa中的一个空格char b = ' ';//bbb中的一个空格System.out.println((int)a);System.out.println((int)b);

2017-09-05 11:30:31 2052

转载 使用IntelliJ IDEA 15和Maven创建Java Web项目

1. Maven简介    相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期。   可以通过其命令做所有相关的工作,其常用命令如下:    - mvn compile    - mvn test    - mvn clean    - mvn package    - mv

2017-08-28 10:39:07 233

转载 IntelliJ IDEA 热部署,修改java文件 不用重启tomcat

确保使用的是debug模式。确保tomcat是由idea实例化的。也就是说tomcat是在idea中配置好的(特殊的修改如:项目配置文件,某些特殊类新增,方法名称参数的添加修改引起的不能热部署就必须重启,当然你也可以用Jrebel插件。此插件收费。可以实现大部分的修改热部署,包括修改项目配置文件等热部署。以下描述均指的是普通的修改下的热部署。)项目配置如图:

2017-08-24 13:45:35 829 1

原创 java 通过配置监听器(Listener)设置项目启动给LED推送数据

web.xml 配置    com.***.***.listenvision.LedContextListenerLedContextListener 文件package com.***.***.listenvision;import com.***.***.model.AttDetail;import com.***.***.servi

2017-08-18 10:50:22 1493

原创 java代码获取近15天日期

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");String startTime = df.format(new Date().getTime()-15*24*60*60*1000);String endTime = df.format(new Date());System.out.println(startTime);Syst

2017-08-08 15:00:01 4401

转载 mysql查询今天、昨天、7天、近30天、本月、上一月 数据

今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) 7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY)

2017-08-07 18:11:57 211

原创 mysql查询 根据年月日的查询

select * from company where DATE_FORMAT(c_time,'%Y-%m-%d') = '2017-08-07'

2017-08-07 17:53:38 655

转载 Java JDK 动态代理(AOP)使用及实现原理分析

一、什么是代理?代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式UML图:简单结构示意图:为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,

2017-08-03 10:29:51 285

原创 Tomcat设定运行jvm的编码

查看jvm编码可以通过代码确认当前jvm运行的编码System.getProperty("file.encoding")11此参数是在jvm启动的时候就已经设置完成。如果没有手动设置file.encoding,会根据当前系统的编码指定。 如果在Windows下,file.encoding=”GBK”, 如果在Linux下,file.encoding=”UTF-8”。 

2017-08-01 18:44:48 827

转载 JVM高级特性与实践(十一):方法调用 与 字节码解释执行引擎(实例解析)

方法调用不等于方法执行,它唯一的任务就是确定被调用方法的版本,即具体调用哪一个方法,暂时不涉及方法内部的运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,在讲解Class文件编译过程时,已经表明此过程不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于“直接引用”)。此特性给Java带来了

2017-07-27 16:06:39 259

转载 JVM高级特性与实践(十):虚拟机字节码执行引擎(栈帧结构)

执行引擎是虚拟机最核心的组成部分之一。在讲解执行引擎之前,再来思考一下“虚拟机”的概念,它是一个相对于“物理机”的概念,两者都有代码执行能力,区别是物理机的执行引擎时直接建立在处理器、硬件、指令集和操作系统上,而虚拟机则是由自己实现,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。本章内容将从主要概念模型的角度讲解虚拟机的方法调用和字节

2017-07-27 14:02:39 342

转载 JVM高级特性与实践(九):类加载器 与 双亲委派模式(自定义类加载器源码探究ClassLoader)

虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码块被称为“类加载器”。类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足 Java Applet 的需求而开发出来的,但类加载器却在类层次划分、OSGi、热部署、代码

2017-07-27 11:04:36 343

转载 JVM高级特性与实践(八):虚拟机的类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制与那些在编译时需要进行连接工作的语言不同,在Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,此策略虽会令类加载时稍增加性能开销,但为Java程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动

2017-07-26 18:39:19 284

转载 JVM高级特性与实践(七):九大类字节码指令集(实例探究 )

Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)已经跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)构成。由于Java虚拟机采用面向操作数栈而并非寄存器的架构,所以大多数的指令都不包含操作数,只有一个操作码。此篇博文将介绍九大类字节码指令集,并给出代码测试,对比字节码序列来加深指令学习,大致知识点如下:字

2017-07-26 14:34:32 359

转载 JVM高级特性与实践(六):Class类文件的结构(访问标志,索引、字段表、方法表、属性表集合)

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编译发展的一大步。上篇博文中学习讲解了Class类文件结构的有关知识点,关于数据项方面介绍了常量池,此篇文章将介绍完余下的数据项部分,大致知识点如下:访问标志类索引、父类索引与接口索引集合字段表集合属性表集合各数据项的定义、作用、结构组成及实例讲解JVM高级特性与实践(一):Java内存区域 与 内存溢

2017-07-26 13:44:40 553

转载 JVM高级特性与实践(五):实例探究Class类文件 及 常量池

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编译发展的一大步。在上计算机启蒙课时,老师曾跟我们讲过:“计算机只认识0 和 1,所以我们写的程序需要经编译器翻译成由0 和 1构成的二进制格式才能由计算机执行”。随着计算机发展至今,它仍然只能识别 0 和 1,但由于虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,将我们编写的程序编译成二进制本地机

2017-07-26 10:31:17 349

转载 JVM高级特性与实践(四):内存分配 与 回收策略

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:分配内存给对象、回收分配给对象的内存。关于第二点的回收内存,在之前的博文中已经讲解过虚拟机中的垃圾收集体系以及运作原理,而此篇文章就来探讨学习有关分配内存给对象,相关知识点如下:对象内存分配、回收解析Minor GC 与 Full GC概念五大策略解析策略应用到代码实践原理解析JVM高级特性与实

2017-07-25 17:03:25 335

转载 JVM高级特性与实践(三):垃圾收集算法 与 垃圾收集器实现

内存回收与垃圾收集器在很多时候都是影响系统性能、并发能力的主要因素之一此篇博文将详细探讨垃圾收集算法和七大垃圾收集器实现,大致知识点如下:4种垃圾收集算法概念的学习各个算法之间的优缺点、原理运作过程Java堆内存结构7种垃圾收集器特征的学习各个垃圾收集器的原理、运作过程、使用场景、优缺点JVM高级特性与实践(一):Java内存区域 与 内存溢出异常 JVM高级特性与

2017-07-25 13:53:24 279

原创 MongoDB和Redis区别

简介MongoDB更类似MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。mysql在大数据量时效率显著下降,mongodb更多时候作为关系数据库的一种替代。内存管理机制Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。MongoDB数据存在内存,由Linux系统mmap

2017-07-22 16:59:41 396

转载 JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收

关于垃圾回收器GC(Garbage Collection),多数人意味它是Java语言的伴生产物。事实上,GC的历史远比Java悠远,于1960年诞生在MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp尚在胚胎时期,开发人员就在思考GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?目前GC早已解决了以上问题,内存的动态分配与内存回收机制已经

2017-07-20 10:00:38 253

转载 JVM高级特性与实践(一):Java内存区域 与 内存溢出异常

套用《围城》中的一句话,“墙外面的人想进去,墙里面的人想出来”,用此来形容Java与C++之间这堵内存动态分配和垃圾收集技术所围成的“围墙”就再合适不过了。对于从事C、C++的开发人员而言,在内存管理领域,他们具有绝对的“权利”——拥有每个对象的控制权,并担负着每个对象生命周期的维护责任。而对于Java开发人员而言,在虚拟机自动内存管理机制的帮助下,无需为每一个创建new操作去配对 del

2017-07-17 10:19:51 326

转载 缓存和内存的区别

许多人认为,“缓存”是内存的一部分 许多技术文章都是这样教授的 但是还是有很多人不知道缓存在什么地方,缓存是做什么用的 其实,缓存是CPU的一部分,它存在于CPU中 CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大 缓存是为了解决CPU速度和内存速度的速度差异

2017-07-05 10:03:47 379

空空如也

空空如也

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

TA关注的人

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