- 博客(31)
- 收藏
- 关注
原创 数据库事务隔离级别
脏读: A事务读到了B事务未提交的数据,事实上B事务回滚了;不可重复读: A执行了两次查询,期间B事务却修改了数据,这样两次读到的数据不同;幻读: A更改了数据,B事务却又插入了一条新的数据,A再去查询的时候发现还有一条未更改,产生幻觉一样。下图介绍一下数据库的事务隔离级别和解决实务问题的级别:1、
2016-04-27 22:50:09
342
转载 MySql为何默认不用hash索引而用BTree索引的几点原因
hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash
2016-04-26 10:17:00
4031
转载 java面向对象几大原则
"面向对象设计五大原则"和良性依赖原则在应付变化方面的作用。单一职责原则(Single-Resposibility Principle)。"对一个类而言,应该仅有一个引起它变化的原因。"本原则是我们非常熟悉地"高内聚性原则"的引申,但是通过将"职责"极具创意地定义为"变化的原因",使得本原则极具操作性,尽显大师风范。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担
2016-04-08 17:53:23
493
原创 快速排序算法之我见
排序算法有很多,常见的选择、冒泡、快排等等。今天着重说一下对了快排的理解。 快排的核心思想是每次遍历选取一个中间值,这个值可以是第一个元素,也可以是最后一个元素,然后一次遍历的结果是要做到把比它小的元素都放它左边,比他大的元素都放它右边。。太啰嗦了,这个大家都知道。我就不多说了,下面结合实例说一下过程。举例说明:假如现在有一个数组int[] a = {10,18,2,6,19,7,9}
2016-04-01 12:53:54
347
原创 JVM垃圾回收之我见
很久之前就了解过JVM垃圾回收机制,最近又研究了一下,下面总结一下个人的心得体会,有不足之处还请指正。1、为什么要有垃圾回收?回收的是什么? 首先要从Java内存模型开始说起,JVM在启动时会创建堆和方法区(可被线程共享),当每增加一个线程时,JVM会创建本地方法栈、虚拟机栈和程序计数器(不可被共享)。线程一旦结束,这三块区域所占的空间也就随之被回收,他们跟垃圾回收似乎没啥关系。所以
2016-03-30 22:59:49
591
原创 Oracle 常见的SQL调优
1、最大数据量的表必须放在where的最右边也就是末尾;2、使用exists代替in,用NOT EXISTS替代NOT IN;3、select避免使用 *;4、删除重复记录;DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);5
2016-03-29 23:10:44
277
转载 Oracle索引小记
操作数据库索引能起到优化数据库查询,提高查询效率的作用。并且对也稍微大一点的数据量的服务来说,索引的创建是必须的,也是关键的。但是索引也要合理应用,不要遇到查询就建索引,也不能乱建。如果造成索引失效那还不如不建。索引失效有的时候是因为自己的语句问题造成的。下面是几种造成索引失效的几种原因, 一、以下的方法会引起索引失效 1,2,单独的>,3,like "%_" 百分号在前.
2016-03-29 14:14:01
262
原创 Oracle查询常见语句
1、查询前十条记录:SELECT T.* FROM TEST_STUDY t WHERE ROWNUM 2、查询第二条到第六条的记录:SELECT * FROM (SELECT T.*, ROWNUM R FROM TEST_STUDY t WHERE ROWNUM WHERE R >=2 3、查询排名第二的学生成绩SELECT ID, NAME, S
2016-03-29 12:53:37
322
原创 Java运行时异常和一般异常
运行时异常不要求try和catch,常见的有:NullPointerException、NoSuchMethodException、NoSuchElementException、IndexOutOfBoundsException
2016-03-28 14:35:49
340
转载 JAVA内存管理常识
大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) , VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),Native Method Stack ( 本地方法栈 ),其中Method Area 和 Heap 是线程共享的 ,VM Stack,Native
2016-03-28 14:10:19
444
转载 Java中常见内存泄露和内存溢出错误总结
首先要弄明白两个概念:内存泄露和内存溢出。 内存泄露是指垃圾没有被完全回收,就是有空间但是要不回来; 内存溢出则是空间根本不够用。两者虽然不同但是可能导致相同的后果。1、java.lang.OutOfMemoryError: Java heap space这是最典型的内存泄漏方式,简单说就是所有堆空间都被无法回收的垃圾对象占满,虚拟机无法再在分配新空间。这种
2016-03-27 20:08:51
2727
原创 性能调优可以从哪些方面着手
从应用程序方面来说,blocking改成non-blocking;优化并发方面的代码;使用cache等等。也可以用各种静态代码分析工具找到程序的hotspot来分析优化。从JVM方面来说,比如根据自己程序的特点选择合适的gc算法,比如对响应时间要求比较高的系统可以使用并发收集,对数据吞吐量比较大的系统采用并行收集等等,或者调整堆栈的参数。
2016-03-27 19:50:54
2330
原创 Linux常用命令个人总结(持续修改)
1、登录:login2、关机:shutdown3、重启:reboot4、安装.rpm文件:rpm -ivh xxxx.rmp5、卸载、rpm文件:rpm -e xxxx6、安装.bin文件:直接安装./xxx.bin文件:直接安装7、查找已经安装的文件:rpm -qa | grep java ,然后rpm -e --nodeps xxxxx8、安装tar.gz文件:首先
2016-03-26 14:36:32
386
原创 java二分查找法代码实现
public static int search(int[] a, int des) {Arrays.sort(a);int low = 0;int upper = a.length - 1;while (low int desid = (low + upper) / 2;if (a[desid] low = desid + 1;else if (a[desid]
2016-03-24 21:43:26
438
原创 Spring IOC之个人理解
Spring是一个为java应用程序开发提供了综合、广泛的基础性支持的优秀的开源框架。那么什么是IOC呢?传统的java应用程序开发中实现业务逻辑至少需要两个及以上的对象协同完成,那么我们难免就会在对象需要协同工作时在代码里面写new Object(),而IOC恰恰就是说这个获得依赖对象的过程Spring来替你做了,代码只需要关注于业务逻辑的实现就可以了。控制的什么被反转了?就是:获得依赖对象
2016-03-24 10:14:39
290
原创 java中深拷贝和浅拷贝区别
浅拷贝(Object类中的clone()方法)是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝。深拷贝(或叫深克隆) 则是对对象及该对象关联的对象内容,都会进行一份拷贝。
2016-03-23 15:56:24
510
原创 事务的理解
事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)
2016-03-21 11:14:09
497
原创 Struts2优缺点概述
优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 2.有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率 3. 页面导航 使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。4. 提供E
2016-03-16 13:31:54
8111
1
转载 PreparedStatement比Statement好用的问题
1、相对比较安全,可以防止sql注入2、有预编译功能,相同操作批量数据效率较高PreparedStatement 是预编译 ,使用Statement时 sql 中要进行很多的单引号拼接字符串,首先是容易出错也比较麻烦,还有就是存在sql 注入问题这是从安全方面说的。 PreparedStatement 传参数时候用 了占位符 “?”很好的解决了以上Statement的问
2016-03-16 12:42:13
493
原创 union和union all区别
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序,所以效率低; Union All:对两个结果集进行并集操作,包括重复行,不进行排序,效率高。
2016-03-16 12:23:45
431
原创 Servlet简介
Servlet是Sun公司为了扩展web服务器所提出的一种组件规范,它的执行过程:1)建立连接;2)打包(Http协议);3)发送请求;4)创建HttpServletRequest对象;5)创建HttpServletResponse对象;6)创建具体的Servlet对象;7)调用service方法;8)取数据;9)打包;10)发送响应。生命周期:
2016-03-16 10:55:45
271
原创 web中get与post提交的区别
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。3、Get是不安全的,因为在传输过程,数据被放在请求
2016-03-16 10:26:18
401
转载 Hibernate三种检索策略的优缺点对比
1立即检索;优点:对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方便的从一个对象导航到与它关联的对象;缺点:1.select语句太多;2.可能会加载应用程序不需要访问的对象白白浪费许多内存空间;2延迟检索:优点:由应用程序决定需要加载哪些对象,可以避免可执行多余的select语句,以及避免加载应用程序不需要访问的对象。因此能提高检索性能,并且能节省内存空间
2016-03-07 16:57:12
1790
原创 java web中如何处理表单中的中文
1、在html文件中添加,作用是让浏览器以utf-8的编码格式来打开页面(确保html文件本身确定是使用utf-8保存的),表单方式必须为post;2、在服务器servlet里面,设置:request.setCharacterEncoding("utf-8"),作用是设置解码时的编码格式;3、如果servlet在控制台要输出中文,设置:response.setContentType("te
2016-03-05 10:36:43
489
转载 java中List Map Set区别
List,Set,Map是否继承自Collection接口? 答:List,Set是,Map不是。 如图: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable
2016-03-04 15:21:32
237
转载 java内存泄露问题详解
一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Java会使用有向图的方
2016-03-02 16:15:39
387
转载 java垃圾回收问题
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多公司面试时,都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。 System.gc() Runtime.getRuntime().gc() 上面的方法调用时用于显式通知J
2016-03-02 14:27:23
266
原创 java中接口和抽象类的区别
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型
2016-03-02 11:38:23
340
原创 关于java中的Math.round、floor、ceil方法区别
Math.floor(11.3):11;Math.floor(-11.3):-12Math.ceil(11.3):12;Math.ceil(-11.3):-11Math.round(x)相当于Math.floor(x+0.5)Math.round(11.3):11Math.round(-11.8):-12
2016-03-02 11:31:29
439
原创 java中关于子类实例化时调用父类无参构造方法的问题
java中子类在实例化的时候调用父类的无参构造方法容易混淆的大致分以下几种情况:1、子类和父类同时具有有参和无参的构造方法,子类有参构造方法中第一行写的有super.(xx),且子类实例化时用的是有参构造方法,那么此时不会先调用父类的无参构造方法,而是直接调用子类的有参构造方法;2、子类和父类同时具有有参和无参的构造方法,子类有参构造方法中第一行写的没有super.(xx),且子类
2016-03-02 10:39:26
6938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人