自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 每日积累(二二)--volatile关键字

转载于http://www.cnblogs.com/dolphin0520/p/3920373.html  volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好

2017-09-04 15:38:02 208

原创 每日积累(二一)--mysql 数据库优化

mysql数据库当表 比较多时候会比较影响效率,优化就变得很重要了。1.优化运行慢的sql和建立索引索引的建立会很大程度的加快查询效率,但是索引的建立也要注意:1.索引不能储存null值(联合索引不全为null)2.建立索引字段重复值要少3.sql中有or 会使索引失效4.like '%xxx%'也会使索引失效可用 like ‘xx%’ 5.not in 用 not e

2017-08-30 14:27:29 257

转载 每日积累(二零)--多用户同时操作同一数据

在c/s或多层中,如果两个用户同时打开一条记录,修改后提交会产生更新冲突; 据说办法有二:1。打开同时锁定表的记录 2。浦获错误,撤消其中一个用户的修改,但是很少见到具体实现的代码;请大家告诉具体的代码怎么写: 1。打开时如何锁定一条记录? 2。如何扑获更新错误?在delphi中调试时会报“该记录读出后已经被再次修改”,而在运行时如何判定错误为更新冲突?因为更新时其他的错误如输入不合法

2017-08-28 14:28:35 1973

原创 每日积累(一九)---锁机制

常用的锁一般分两种:悲观锁和乐观锁悲观锁:悲观锁顾名思义就是我的一切操作都是有危险的,假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作乐观锁:乐观锁认为一切操作都不会造成冲突,每次提交只需要去检查是否成功,不成功就会重试CAS操作:DK 5之前Java语言是靠synchronized关键字保证同步的,这是一种独占锁,也是是悲观锁。java.util.co

2017-08-28 13:52:21 200

原创 每日积累(一七)---hashset存值

上一篇讲到 我们利用hashset 值无重复的特性来给List 去除重复元素。那hashset怎么去重的呢 它的存储原理是什么呢?public class HashSetPojo {private String a;private String b;public HashSetPojo(String a,String b){           this.a=a; 

2017-08-25 17:32:47 676

原创 每日积累(一六)---List集合去重

List 允许重复元素,当用for循环去重时效率会非常慢,所以用到hashset中不允许有重复的值 这个特性,将list转换成hashset,遍历hashset就能去除重复的元素;public class HashSet{       public static void main(String[] args) {                    ArrayListarr

2017-08-24 15:09:26 266 1

原创 每天一点积累(一五)--类继承的加载

之前我们讲过 class在JVM 加载要经过 加载、验证、准备、解析、 初始化五个阶段。现在以类继承为例来看一下类的加载。先写一个父类。public class Father {public Father(){System.out.println("我是父类构造方法");}  public static void aa(){ System.out.println

2017-08-23 11:11:47 236 2

转载 每日积累(一四)--索引的优缺点

创建索引可以大大提高系统的性能:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

2017-08-23 10:18:28 250

原创 线程的死锁

如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程/**  * 一个简单的死锁类  * 当DeadLock类的对象flag==1时(td1),先锁定o1,睡眠500毫秒  * 而td1在睡眠的时候另一个flag==0的对象(td2)线程启动,先锁定o2,睡眠500毫秒

2017-08-22 10:53:58 163

转载 每天积累一点(一三)--JVM之GC算法

引用计数(reference counting)    原理:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计数为0的对象。    缺点:(1)无法处理循环引用的问题。如:对象A和B分别有字段b、a,令A.b=B和B.a=A,除此之外这2个对象再无任何引用,那实际上这2个对象已经不可能再被访问,但是引用计数算法却无法回收他们。(2)引用计数的方法需要编译器的配合。编译器需要为

2017-08-22 09:59:18 180

原创 每天一点积累(一二)---JVM之GC垃圾回收

前面介绍GC都会在堆中进行,堆分为新生代和老年代,新生代分为Eden区和Servivor(1和2)区垃圾回收是一种回收无用内存空间并使其对未来实例可用的过程。Eden(伊甸)区:当对象被实例化,首先会被放入Eden区Servivor(存活区)区:当Eden区被填满时会调用年轻代GC(Minor GC),检查仍然存活的会被放入Servivor中,Minor GC扫描Servivor,

2017-08-21 17:39:19 230

转载 每天积累(一一)---JVM的内存结构

JVM内存结构主要有三大块:堆内存、方法区和栈。方法区:它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,是各个线程共享的内存地方。根据Java虚拟机规范的规定,当方法区无法满足内存分配需求时,将抛出OutOfMemoryError异常。 程序计数器:是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的模型里,

2017-08-21 14:45:09 198

转载 每天一点积累(十)---JVM加载class

1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主动使

2017-08-21 14:17:37 205

转载 每天一点积累(九)---JVM前提堆栈

在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。      当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。      堆内存用来存放由new创建的对象和数组。      在堆中分配的内存,由Java虚拟机的

2017-08-21 11:24:27 154

转载 每天积累一点(八)--GC

一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能。一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理

2017-08-21 10:33:50 219

转载 每天一点积累(七)--代理模式

代理模式分为动态代理和静态代理静态代理静态代理就是在代码实现中相当于为一个委托对象realSubject提供一个代理对象proxy,通过proxy可以调用realSubject的部分功能,并添加一些额外的业务处理,同时可以屏蔽realSubject中未开放的接口。1、RealSubject 是委托类,Proxy 是代理类;2、Subject 是委托类和代理类

2017-08-18 14:11:47 222 4

转载 每天积累一点(五)--高并发处理方案

转载博客地址:http://blog.csdn.NET/zxl333/article/details/8454319转载博客地址:http://blog.csdn.net/zxl333/article/details/8685157一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对

2017-08-18 13:44:36 361

转载 每日积累(六)--秒杀系统的实现原理

怎么做一个秒杀系统呢 什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。秒杀

2017-08-17 16:16:13 2829

转载 每天积累(四)--mybatis二级缓存

mybatis二级缓存    MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。本文将全面分析MyBatis的二级缓存的设计原理。1.MyBatis的缓存机制整体设计以及二级缓存的工作模式          如上图所示,当开一个会话时,一个SqlSession对象会使用一个Executor对象来完成会

2017-08-16 14:13:16 187

转载 每天一点积累(三)--mysql存储引擎

mysql 存储引擎前言在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。等一下,存储引擎?什么是存储引擎?什么是存储引擎?关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根

2017-08-14 11:15:28 238 1

转载 每天积累一点(二)--mysql事物级别

1,mysql的事务支持 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关: MyISAM:不支持事务,用于只读程序提高性能   InnoDB:支持ACID事务、行级锁、并发   Berkeley DB:支持事务  2,隔离级别隔离级别决定了一个session中的事务可能对另一个session的影响、并发session对数据库的操作、一个sessi

2017-08-14 10:51:24 188

转载 每天一点积累(一)--hashmap底层实现原理

1.    HashMap概述:   HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2.    HashMap的数据结构:   在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本

2017-08-10 21:07:25 315

空空如也

空空如也

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

TA关注的人

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