05 2018 档案

摘要:System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void (Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos 阅读全文
posted @ 2018-05-27 14:00 夏威夷8080 阅读(1138) 评论(0) 推荐(0)
摘要:Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成,并且它是线程安全的。 Joda-Time主要的特点包括: 1. 易于使用:Calendar让获取"正常的"的日期变得 阅读全文
posted @ 2018-05-27 13:45 夏威夷8080 阅读(481) 评论(0) 推荐(0)
摘要:在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。 代码块: 执行结果: 发生问题的原因如下: 调用Arrays.asList()生产的List的add、re 阅读全文
posted @ 2018-05-27 13:33 夏威夷8080 阅读(211) 评论(0) 推荐(0)
摘要:介绍 Charset常用静态方法 Charset常用普通方法 Charset应用案列 获得本机支持的所有编码方式 获得JVM虚拟机默认编码方式 使用编码器和解码器进行字符编码和解码 总结 举例: 参考 1、https://en.wikipedia.org/wiki/Character_encodin 阅读全文
posted @ 2018-05-27 11:40 夏威夷8080 阅读(6135) 评论(0) 推荐(0)
摘要:Spring可以自动封装Bean,也就是说前台通过SpringMVC传递过来的属性值会自动对应到对象中的属性并封装成javaBean,但是只能是基本数据类型(int,String等)。如果传递过来的是特殊对象,则需要手动进行封装。 Spring提供了@InitBinder(初始化绑定封装)注解和We 阅读全文
posted @ 2018-05-27 11:33 夏威夷8080 阅读(620) 评论(0) 推荐(0)
摘要:什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。 如何实现异步调用? 多线程,这是很多人第一眼想到的关键词,没错,多线程就是一种实现异步调用的方式。 在非spring目项目中我们 阅读全文
posted @ 2018-05-27 10:53 夏威夷8080 阅读(28158) 评论(1) 推荐(0)
摘要:本文我们介绍StreamUtils类使用。StreamUtils是spring中用于处理流的类,是java.io包中inputStream和outputStream,不是java8中Steam。使用时仅依赖spring-core,主要需要了解几个静态方法。 拷贝Stream StreamUtils类 阅读全文
posted @ 2018-05-27 10:31 夏威夷8080 阅读(1487) 评论(0) 推荐(0)
摘要:spring的http请求内容转换,类似netty的handler转换。本文旨在通过分析StringHttpMessageConverter 来初步认识消息转换器HttpMessageConverter 的处理流程。分析完StringHttpMessageConverter 便可以窥视SpringM 阅读全文
posted @ 2018-05-27 10:19 夏威夷8080 阅读(1605) 评论(0) 推荐(0)
摘要:netty的http协议栈无论是性能还是可靠性,都表现优异,非常适合在非web容器场景 下应用,相比于tomcat、jetty等web容器,它更轻量、小巧、灵活性和定制性也好; 总结:只要实现了http协议规范,就可以支持http服务端开发,理解时不应该拘泥于它是容器,还不是容器。 阅读全文
posted @ 2018-05-26 14:25 夏威夷8080 阅读(267) 评论(0) 推荐(0)
摘要:不可变对象条件 对象需要满足一下三个条件才是不可变对象: 1、对象创建以后其状态就不能修改 2、对象所有域都是final类型 3、对象是正确创建的(对象在创建期间,this引用没有溢出) 简而言之就是将类声明为final,将所有的成员声明为私有的,对变量不提供set方法。将所有可变的成员声明为fin 阅读全文
posted @ 2018-05-22 21:00 夏威夷8080 阅读(850) 评论(0) 推荐(0)
摘要:线程封闭:当访问共享的可变数据时,通常需要同步。一种避免同步的方式就是不共享数据。如果仅在单线程内访问数据,就不需要同步,这种技术称为线程封闭(thread confinement) 线程封闭技术一个常见的应用就是JDBC的Connection对象,JDBC规范并没有要求Connection对象必须 阅读全文
posted @ 2018-05-22 20:52 夏威夷8080 阅读(334) 评论(0) 推荐(0)
摘要:这个是并发情况下导致的数据库事务错误,先介绍下背景。 背景 springboot+springmvc+sqlserver+mybatis 一个controller里有五六个接口,这些接口都用到了spring的事务管理,这些接口单个调用的时候都很正常,当我模拟几十个并发请求这些接口的时候,总会有一两次 阅读全文
posted @ 2018-05-22 20:05 夏威夷8080 阅读(28494) 评论(0) 推荐(0)
摘要:Spring Retry支持集成到Spring或者Spring Boot项目中,而它支持AOP的切面注入写法,所以在引入时必须引入aspectjweaver.jar包。 快速集成的代码样例: 下面是基于Spring Boot项目的集成步骤: POM: Service: @Retryable注解 被注 阅读全文
posted @ 2018-05-22 19:27 夏威夷8080 阅读(2174) 评论(0) 推荐(0)
摘要:背景介绍 通常我们在接口里要保存一条数据时,会先判断该条记录在数据库里是否存在,如果不存在就插入,如果存在就返回已经存在。 就拿常见的工单来举例 在单线程下这么写肯定没问题,但是如果是并发情况下,很有可能会同时插入多条记录进数据库。 解决方案 1.数据库设计表的时候给工单编号ordernum设计唯一 阅读全文
posted @ 2018-05-21 21:15 夏威夷8080 阅读(11292) 评论(0) 推荐(0)
摘要:并发程序正确地执行,必须要保证原子性、可见性以及有序性。只要有一个没有被保证,就有可能会导致程序运行不正确。 原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。 可见性:当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 有序性:程 阅读全文
posted @ 2018-05-21 20:57 夏威夷8080 阅读(792) 评论(0) 推荐(0)
摘要:使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择声明式的事务管理,在spring的文档中说道,spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。那么什么是检查型异常什么又是非检查型异常呢?Java运行时异常和非运行时异 阅读全文
posted @ 2018-05-20 09:24 夏威夷8080 阅读(615) 评论(0) 推荐(0)
摘要:1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示: 2.Throwable Throwable类是所有异常或错误的超类,它有两 阅读全文
posted @ 2018-05-20 09:14 夏威夷8080 阅读(408) 评论(0) 推荐(0)
摘要:堆 可以把堆理解为一家餐厅,里面有200张桌子,也就是最多能同时容纳200桌客人就餐,来一批客人就为他们安排一些桌子,如果某天来的客人特别多,超过200桌了,那就不能再接待超出的客人了。当然,进来吃饭的客人不可能是同时的,有的早,有的晚,先吃好的客人,老板会安排给他们结账走人,然后空出来的桌子又能接 阅读全文
posted @ 2018-05-16 23:22 夏威夷8080 阅读(350) 评论(0) 推荐(0)
摘要:Scope,也称作用域,在 Spring IoC 容器是指其创建的 Bean 对象相对于其他 Bean 对象的请求可见范围。在 Spring IoC 容器中具有以下几种作用域:基本作用域(singleton、prototype),Web 作用域(reqeust、session、globalsessi 阅读全文
posted @ 2018-05-16 15:19 夏威夷8080 阅读(656) 评论(0) 推荐(0)
摘要:背景,mybatis查询的时候直接取的sqlsession,没有包装成SqlSessionTemplate,没有走spring提供的代理。 然后我写的获取sqlsession的代码没有考虑到并发的情况,导致sqlsession建的太多 并发大了之后,查询报错 解决方法,交给spring来管理myba 阅读全文
posted @ 2018-05-13 16:09 夏威夷8080 阅读(3954) 评论(0) 推荐(0)
摘要:一、问题描述: mysql数据库查询时,遇到下面的报错信息: 二、原因分析: dw_user 表数据量比较大,直接查询速度慢,容易"卡死",导致数据库自动连接超时.... 三、解决办法: 方案1.在mysql配置文件[myslqd]下面添加一行设置skip-name-resolve.需要重启mysq 阅读全文
posted @ 2018-05-13 16:00 夏威夷8080 阅读(3218) 评论(0) 推荐(0)
摘要:如题,jmeter报出java.net.SocketException: Socket closed,我查询了下,服务器是正常的,可以返回数据,基本确定问题出在我这边jmeter。查询原因,看到有人说:该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close 阅读全文
posted @ 2018-05-13 15:50 夏威夷8080 阅读(5735) 评论(0) 推荐(0)
摘要:一、MySQL 为日期增加一个时间间隔:date_add()。 1、 示例: set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select date_add(@dt, interval 1 hour); -加1小时 selec 阅读全文
posted @ 2018-05-13 10:46 夏威夷8080 阅读(721) 评论(0) 推荐(0)
摘要:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many 阅读全文
posted @ 2018-05-11 21:04 夏威夷8080 阅读(35236) 评论(0) 推荐(0)
摘要:在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL 阅读全文
posted @ 2018-05-06 17:59 夏威夷8080 阅读(614) 评论(0) 推荐(0)
摘要:原文链接:http://blog.csdn.net/xyang81/article/details/51530979 一、JVM内存配置优化 在开发当中,当一个项目比较大时,依赖的jar包通常比较多,我们都知道,在应用服务器启动时,会将应用引用到的所有类通过ClassLoader依次全部加载到内存当 阅读全文
posted @ 2018-05-06 09:52 夏威夷8080 阅读(6083) 评论(0) 推荐(2)
摘要:原文链接:http://blog.csdn.net/xyang81/article/details/51502766 Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。T 阅读全文
posted @ 2018-05-06 09:26 夏威夷8080 阅读(992) 评论(0) 推荐(0)
摘要:转自:http://www.169it.com/article/5994930453423417575.html 为了测试sql语句的效率,有时候要不用缓存来查询。 使用 SELECT SQL_NO_CACHE ... 语法即可 SQL_NO_CACHE的真正作用是禁止缓存查询结果,但并不意味着ca 阅读全文
posted @ 2018-05-06 09:10 夏威夷8080 阅读(3286) 评论(0) 推荐(0)
摘要:ERWin里面线代表实体间的三种关系:决定关系(Identifying Relationship),非决定关系(None-Identifying Relationship),多对多(Many-To-Many Relationship)关系.以客户(Customer)和订单(Order)的关系为例,客 阅读全文
posted @ 2018-05-05 10:59 夏威夷8080 阅读(5017) 评论(0) 推荐(0)
摘要:normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDE 阅读全文
posted @ 2018-05-02 22:01 夏威夷8080 阅读(304) 评论(0) 推荐(0)