程序员的日常修炼
文章平均质量分 76
想作会飞的鱼
~~~
展开
-
Mysql的分页优化
一、问题的引出当MySQL表中有数据量很大的时候如何做分页?很多应用往往只展示最新或最热门的几条记录,但为了旧记录仍然可访问,所以就需要个分页的导航栏。然而,如何通过MySQL更好的实现分页,始终是比较令人头疼的问题。虽然没有拿来就能用的解决办法,但了解数据库的底层或多或少有助于优化分页查询。我们先从一个常用但性能很差的查询来看一看。SELECT *FROM cityORDER原创 2017-04-07 10:52:06 · 391 阅读 · 0 评论 -
JPA注解使用小结
JPA注解使用小结一、JPA简介JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化标准规范。JPA的总体思想和现有Hi原创 2017-05-24 10:31:32 · 637 阅读 · 0 评论 -
关于SQL数据库和NoSql数据库的数据库选择案例
一、SQL和NoSQL数据库的特点对比SQL 数据库的特点:在表中存储相关联的数据在使用之前需要定义表的一个模式鼓励标准化减少数据冗余支持从多个表中检索相关数据表连接在一个单一的命令实现数据完整性规则提供事务使两个或两个以上的成功或失败的数据更改作为一个原子单元可以扩展(有一些努力)使用一个强声明性语言查询提供足够的支持,专业技能和工具。NoSQL原创 2017-04-23 22:00:30 · 715 阅读 · 0 评论 -
解决Ajax跨域请求问题
一、什么是跨域请求json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决 ajax的跨域问题。 什么是跨域? 简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即“同源策略”。而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果。 具体策略限制情况可看下表:http://www.a.com/a.js和http:原创 2017-05-25 23:05:40 · 3342 阅读 · 0 评论 -
连接管理工具httpclient的简单使用
一、HttpClient简介HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Commo原创 2017-04-26 15:22:48 · 970 阅读 · 1 评论 -
Java中的泛型使用
Java中的泛型使用一、为什么需要泛型来看这段简短的代码:public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add("kang"); list.add("test"); l原创 2017-05-21 22:31:56 · 1633 阅读 · 0 评论 -
TCP的连接和断开详解
一、TCP报文格式上图中有几个字段需要重点介绍下:序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:URG:紧急指针(urgent pointer)原创 2017-04-03 12:09:23 · 1689 阅读 · 0 评论 -
Java设计模式的常见应用场景
一、Java I/O中的设计模式1、适配器模式适配器模式就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。通常被用在一个项目需要引用一些开源框架来一起工作时,这些框架的内部都有一些关于环境信息的接口,需要从外部引入,但是外部的接口不一定能匹配,在这种情况下,就需要适配器模式来转换接口。 Java的I/O类库中有许多这样的需求,如将字原创 2017-08-10 16:20:23 · 58820 阅读 · 7 评论 -
JavaWeb的编码问题深入分析
一、为什么要进行编码编码问题一直困扰着程序开发人员,尤其是在 Java 中更加明显,因为 Java 是跨平台的语言,在不同平台的编码之间的切换较多。要对Java Web项目进行编码原因如下: 1、在计算机中存储信息的最小单位是1个字节,即8个bit,所以能表示的字符范围是0~255个。 2、电脑需要表示的符号(例如各国语言字符)太多(总数超过255)、所以无法用1个字节完全表示需要的符号。 要原创 2017-08-11 10:44:20 · 599 阅读 · 0 评论 -
Servlet工作原理解析
转载自:http://www.cnblogs.com/wade-luffy/p/5936234.htmlWeb 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它转载 2017-08-11 15:31:14 · 841 阅读 · 0 评论 -
一台电脑同时运行多个tomcat配置方法
一台电脑同时运行多个tomcat配置方法:1.必须使用压缩版的tomcat,不能使用安装版的。 2.第一个tomcat的配置不变。 3.增加环境变量CATALINA_HOME2,值为新的tomcat的地址。4.修改新的tomcat中的startup.bat,把其中的CATALINA_HOME改为CATALINA_HOME2。 5.修改新的tomcat中的catalina.bat原创 2017-04-22 14:37:10 · 433 阅读 · 0 评论 -
Git简介和使用
Git简介和使用一、什么是GitGit是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。二、Git 与 SVN 区别Git不原创 2017-04-27 22:22:49 · 584 阅读 · 1 评论 -
Git的分支管理
Git的分支管理一、分枝的创建和合并1、首先创建一个目录/first,使用git init将其初始化为一个git仓库。当前所在分支就是master。在该仓库中创建一个test.txt,写入一行内容:first test。然后用git添加提交。现在来创建一个分支second,可以使用命令git checkout -b xxx(分支名称)完成。我们可以使用git branch查看分支,原创 2017-04-28 16:28:41 · 389 阅读 · 0 评论 -
HashMap详解
一、HashMap简介HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。原创 2017-03-31 20:21:14 · 261 阅读 · 0 评论 -
java中的反射机制详解
一、什么是Java反射机制Java反射机制是指在运行状态中,对于任意一个类,都能够通过这个类本身获取这个类的所有属性和方法信息;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。也就是说java反射可以实现在运行时可以知道任意一个类的属性和方法。那么我们为什么要用反射机制?直接通过new关键字创建对象不就可以了吗?原创 2017-04-11 20:10:58 · 533 阅读 · 0 评论 -
网页访问的幕后工作
一、在浏览器输入:baidu.com,最后,浏览器呈现出相应网页,这个过程究竟发生了什么?第一步,解析域名,找到主机IP(1)浏览器会缓存DNS一段时间,一般2-30分钟不等。如果有缓存,直接返回IP,否则下一步。(2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件。如果找到,直接返回IP,否则下一步。(在计算机本地目录etc下有一个hosts文件,hosts文件原创 2017-04-02 19:33:40 · 746 阅读 · 0 评论 -
Mysql的索引优化
一、为什么需要索引(Why is it needed)?当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段上进行排序,所以如果需要在一个无序字段上进行搜索,就要执行一个线性搜索(Linear Sear原创 2017-04-02 20:04:15 · 273 阅读 · 0 评论 -
如何科学的为变量命名
一、变量命名的基本原则1、变量命名的长度:控制在10至16个字符之间。2、与语言无关的命名规则标识全局变量:前面加上g_ 的前缀。在读到 g_RunningToatal 就会知道这个是全局变量。标识成员变量:通过命名来判断出它既不是局部变量,也不是全局变量,比如 在成员变量名的前面加上 m_ 前缀来表示是类的成员变量,以表明它是成员数据。标识静态变量:前面加上s_ 的前缀。原创 2017-04-04 18:47:49 · 1375 阅读 · 0 评论 -
关于java集合的二三事
一、什么时候用LinkedList,什么时候用ArrayListArrayList是使用数组实现的list,本质上就是数组。ArrayList中的元素可以通过索引随机获取一个元素。但是如果该数组已满,当添加新元素时需要分配一个新的数组然后将原来数组的元素移动过去,需要O(n)的时间复杂度。添加或删除一个元素需要移动数组中的其他元素。这是ArrayList最大的缺点。LinkedList是一原创 2017-04-04 19:49:44 · 462 阅读 · 0 评论 -
Git常用命令小结
mkdir: XX (创建一个空目录 XX指目录名)pwd: 显示当前目录的路径。git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。git add XX 把xx文件添加到暂存区去。git commit –m “XX” 提交文件 –m 后面的是注释。原创 2017-04-28 17:47:11 · 344 阅读 · 0 评论 -
使用Git进行多人协作开发
使用Git进行多人协作开发一、为什么要协作一般开发团队中有这样几个分支,master、develop、feature、release、bug、other分支,或者你还有其它分支,这需要团队协作开发。下面介绍在团队多人协作中的分支推送与抓取。二、示例演示1、在本地创建一个/test目录,初始化为git仓库,然后再github上创建一个空的远程仓库,也起名叫test。然后把本地原创 2017-04-28 17:42:34 · 10780 阅读 · 0 评论 -
深入理解Session和cookie原理
一、概述Session 与 Cookie 的作用都是为了保持访问用户与后端服务器的交互状态。它们有各自的优点,也有各自的缺陷,然而具有讽刺意味的是它们的优点和它们的使用场景又是矛盾的。例如,使用 Cookie 来传递信息时,随着 Cookie 个数的增多和访问量的增加,它占用的网络带宽也很大,试想假如 Cookie 占用 200 个字节,如果一天的 PV 有几亿,它要占用多少带宽?所以有大访问量的时原创 2017-08-11 17:14:46 · 8173 阅读 · 1 评论