- 博客(52)
- 收藏
- 关注
原创 关于java中instance of的使用
以前从未使用过这个东西,今天读代码用到:特意来记录下:public static String objectToJson(Object obj) { StringBuilder json = new StringBuilder(); if (obj == null) { json.append("\"\""); } else if (obj instanceof Numb
2017-06-08 15:20:44 1334
原创 数据库语句中的 where 1=1
今天在读他人代码时候发现一句这样的代码:select * from EmergencyWarehouse where 1=1 order by warehousenum对于where 1=1比较迷惑,特意网上求解如下:1=1 永真, 1。 1用于只取结构不取数据的场合 例如: create table table_temp tablespace tbs_temp
2017-06-07 20:45:34 851
转载 java代理模式
1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系
2017-05-19 09:22:29 784
转载 序列化和反序列化
摘要 序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更
2017-05-14 20:28:28 354
原创 java的Set集合相关问题
1.HashSet的底层实现原理:(哈希表实现,最佳通用实现)HashSet底层是通过HashMap实现的,构造函数,构造HashSet的时候底层就构造了一个HashMap public HashSet() { map = new HashMap<>(); } private static final Object PRESEN
2017-05-10 19:48:17 274
转载 Hiberate二级缓存
组件 Provider类类型集群查询缓存Hashtableorg.hibernate.cache.HashtableCacheProvider内存不支持支持EHCacheorg.hibernate
2017-05-10 10:20:36 407
转载 数据库隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一
2017-05-10 09:55:23 395
原创 Mysql数据库索引
B-Tree索引:(1)从左侧列开始,不然索引无效 (2)不能跳过索引中的列 (3)如果查询中有某个列使用了范围查询,那么这个列右边的列都不可以使用索引。 Hash索引:(精确匹配索引所有列的查询才有效) 把整行的各个列一起进行hash,得到一个hash code, (1) hash索引中只包括hash值和指针,不包括具体的数据,速度块() (2)hash
2017-05-08 18:42:17 432
转载 ConcurrentHashMap
HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占。ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的Hashtable,
2017-05-08 10:18:28 325
转载 HashMap jdk7与jdk8
JDK7中的HashMap HashMap底层维护一个数组,数组中的每一项都是一个Entrytransient Entry[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中; 而Map中的key,value则以Entry的形式存放在数组中 static class EntryK,V> implements Map.Ent
2017-05-08 09:38:22 430
转载 TCP三次握手和四次握手
一、TCP报文格式 TCP报文格式图: 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 (3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等
2017-05-06 16:27:10 542
转载 java线程池
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?
2017-05-06 09:44:56 457 2
转载 java单例模式
概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、
2017-05-05 09:04:03 398
转载 多线程编程 使用 synchronized来同步静态方法 非静态方法 代码块
进行多线程编程,同步控制是非常重要的,而同步控制就涉及到了锁。 对代码进行同步控制我们可以选择同步方法,也可以选择同步块,这两种方式各有优缺点,至于具体选择什么方式,就见仁见智了,同步块不仅可以更加精确的控制对象锁,也就是控制锁的作用域,何谓锁的作用域?锁的作用域就是从锁被获取到其被释放的时间。而且可以选择要获取哪个对象的对象锁。但是如果在使用同步块机制时,如果使用过多的锁也会容
2017-04-26 16:03:54 576
转载 java Stringbuffer的使用
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 在
2017-04-16 11:07:21 540
转载 left join+right join +inner join
sql之left join、right join、inner join的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------
2017-04-11 08:51:36 361
转载 Java反射机制的适用场景及其利与弊
一、反射的适用场景是什么?1).Java的反射机制在做基础框架的时候非常有用,有一句话这么说来着:反射机制是很多Java框架的基石。而一般应用层面很少用,不过这种东西,现在很多开源框架基本都已经给你封装好了,自己基本用不着写。典型的除了hibernate之外,还有spring也用到很多反射机制。经典的就是在xml文件或者properties里面写好了配置,然后在Java类里面解析xml或p
2017-03-06 10:16:15 551
原创 java中 static 的执行顺序问题
关于static的 父类和子类的执行顺序问题:首先用代码来证明:父类如下:public class staticDemo {static {int x=5;System.out.println("父亲的静态代码块执行了");}static {int x=5;System.out.println("父亲的静态代码块2执行了");}static vo
2017-03-05 13:10:08 2272
原创 java中static相关问题,执行顺序等
成员变量: 在类体里面定义的变量称为成员变量; 如果该成员变量有 static 关键字修饰,则该成员变量称为 静态变量 或 类变量; 如果该成员变量没有 static 关键字修饰,则该成员变量被称为 非静态变量 或 实例变量。局部变量: 形参、方法内定义的变量、代码块中定义的变量,都属于局部变量。类变量 (静态变量) 1. 可以向前
2017-03-05 12:56:01 431
转载 java异常 运行时 非运行时异常
1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:图片来源:http://blog.csdn.net/wuwenxiang91322/article/details/103463372.Throw
2017-03-05 11:43:37 405
转载 java的方法重载和方法重写
重写方法的规则如下:1. 参数列表:必须与被重写方法的参数列表完全匹配。 2. 返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同 3. 访问级别:一定不能比被重写方法强,可以比被重写方法的弱。 4. 非检查异常:重写方法可以抛出任何非检查的异常,无论被重写方法是否声明了该异常。 5. 检查异常:重写方法一定不能抛出新的检查异常,或比被重写方法声明的检查
2017-02-27 21:19:19 1332
转载 Struts2 ActionInvocation
Interceptor说明Interceptor的接口定义没有什么特别的地方,除了init和destory方法以外,intercept方法是实现整个拦截器机制的核心方法。而它所依赖的参数ActionInvocation则是我们之前章节中曾经提到过的著名的Action调度者。我在这里需要指出的是一个很重要的方法invocation.invoke()。这是ActionInvocatio
2017-02-18 15:56:27 459
转载 DTD文件约束
在讲解DTD文件之前,我要说说一份合格的XML应该符合怎么样的规则? 就我总结一下几点,大家看看就好了: 1.一份XML有且仅有一个根元素。 2.XML是严格区分大小写的,元素和元素是不相同的。 3.如果一个元素不需要子内容的话,它就是一个空元素,应写成:,就不要写成这样了: 4.XML文档开头声明:xml version="1.0" en
2017-02-15 15:23:00 437
转载 java中JVM相关知识
1. 什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码
2017-02-14 15:33:20 417
转载 java web 域
四个域的作用域范围大小:PageContext (page域) 一、ServletContext1、生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。2、作用范围:整个Web应用。3、作用:a) 在不同Servlet 之间转发
2016-12-12 13:29:24 331
转载 序列化和反序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是
2016-12-12 13:26:50 979
转载 String StringBuiler StringBuffer
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String
2016-12-11 16:11:44 366
原创 StringUtils.isNotBlank(XX)
今天在做SSM系统时候,为了进行查询特意使用StringUtils.isNotBlank(name)一定注意导入的包是:import org.apache.commons.lang3.StringUtils;开始使用的是com.mysql.jdbc中的 StringUtils.isNullOrEmpty,,,结果导致在我进行查询的时候各种错误,特地来此总结一番。StringUtils方法的
2016-11-20 13:42:17 27802
转载 count(1)和count(*)的区别
在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。 往常我经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Count( *)会带来全表扫描。而实际上如何写Count并没有区别。
2016-11-19 19:37:54 3086
原创 学习新巴巴运动网系列(三)之SVN
1.首先要说的是svn的安装,在次楼主在安装过程中需要使用的是一个8443端口(为了防止冲突)2.其次是ecplise的SVN插件的安装,在学习过程中,会告诉你使用dropin文件夹的方式进行安装插件,但是都是一个为了安装插件而已,在此我用的ecplise的4.6版本,使用在线安装也可以实现。3.插件安装完毕之后,就可以就行使用了。右键你的项目---team---share project
2016-11-17 16:00:55 1445 2
原创 个人学习传智博客新巴巴运动网系列(2)---在开发之前一些常用的ecplise中的配置
在正式开发之前,首先进行一些ecplise中关于tomcat发布的配置(1)首先需要选择上面的Server location中的第二个选项,将项目发布到tomcat下,而不是发布到工作区间下(楼主以前一直是默认第一选项的)(2)Deploy path:需要进行选择,Browse----然后选择到你的tomcat中的webapps所在的位置,即可如图楼主用环圈给你圈出来的二.
2016-11-15 19:16:34 636
原创 个人学习传智博客新巴巴运动网系列---ssm框架
一.环境搭建1.首先使用ecplise中建立一个maven-project项目。使用左侧项目栏目的有一个小三角-切换到working set模式,比较直观好看建立后的项目结构如图:一个完整的目录结构可能在新建之后会有index.jsp出现红叉的问题,此时你需要右键项目--build path,add library加入server -runtime,既是加入你的tomcat服务器2
2016-11-15 12:48:41 2729 21
原创 [SSH] java.sql.BatchUpdateException: Cannot delete or update a parent row:
关于ssh中的关联问题,删除时候出现错误[SSH] java.sql.BatchUpdateException: Cannot delete or update a parent row:此时大多数是因为我们数据的设置问题,我们使用nvicat 修改下一下外键的删除设置问题,直接上图删除时候,一般默认为restrict,,我们需要设置为cascade。经测验好使
2016-11-10 17:43:19 931
原创 SSh中 一对多关联外键添加,修改保存失败问题
今天博主在做一个ssh项目时候,需要使用到一级分类和二级分类关联,然后是在保存二级分类的时候,二级分类的name可以正常保存,而二级分类关联的一级分类的cid不能插入老是为空。 憋了一天一夜终于把问题解决,,虽然不知道为撒,,但是个人感觉还是因为 关联问题的原因。。。首先建立各自的实体类:public class Category implements Serializable{ /*
2016-11-10 14:35:33 2795 3
原创 关于SSH,插入数据时,,遇到的关于date的问题
今天在做ssh项目时候,一直插入数据库不成功,别的地方没有写错,报错如下:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'date' at row 开始用的mysql驱动为mysql-connector-java-5.0.3-bin.
2016-11-07 21:12:17 1033 1
原创 关于ecplise中导入项目之后出现的jsp文件有错误问题
解决办法:右键---build path或者properties中找java build path先检查项目本身的jre版本是不是不与你本身的加热版本相同,如果不相同,则选中这个jre Systemlibrary -----右边有一个remove删除点。。。(2)重新添加一个jre :右边有一个add library ,点击选择图中标蓝色的地方。然后选择
2016-11-02 18:09:05 11633 2
原创 关于java web中的序列化问题Serializable
今天在自学java web时候,发现老师都会实现这样一句话:private static final long serialVersionUID = 1L; 一直不是很理解啥意思特查找到如下解释,以及 相关的序列化知识:serialVersionUID作用:序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。有两种生成方式:一个是默认的1L,比如:
2016-11-02 09:44:43 2449
原创 maven学习
1.实习之前为了多增加点自己的内容,特意简略学习一下,maven,这个路上真是坑不断啊本人使用的是ecplise4.6 ,ecplise自带了maven ,但是博主没有使用自带的maven。需要首先进行下载给一个下载maven的网站。http://download.csdn.net/detail/Imain/32447782.下载之后,直接解压即可,接着需要配置环境变量,在此不在陈述
2016-10-28 12:52:24 419
原创 Mysql数据库以及Tomcat服务器的一些问题
1.楼主因为更新某些补丁之后,导致数据库在启动服务时,发生1067错误----进程意外终止,在使用mysql instance config进行配置的时候老是卡在最后一步。于是,楼主重新装mysql,注意在重装mysql之前,一定要进行数据的备份!!!!!!!!!不然以前的数据都没了在重装前,需要做以下修改:1.在控制面板或者其他途径卸载mysql2.打开注册表,删除其中3Mach
2016-10-16 18:53:27 2212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人