- 博客(29)
- 资源 (3)
- 收藏
- 关注
原创 为什么Java中数组的效率比集合高
数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException,所以不用担心在C或C++因为不做边界检查而出现的问题了,当然边界检查是以牺牲效率为代价的。数组与其它容器类的区...
2018-09-08 11:50:30
4064
1
原创 Redis配置.持久化.集群总结
Redis可以做缓存或者数据库。它是一种非关系型数据库即nosql(当他做缓存用时不要把数据持久化到磁盘)Redis的配置主要放置在redis.conf,可以通过修改配置文件实现Redis许多特性,比如复制,持久化,集群等。redis.conf部分配置详解# 启动redis,显示加载配置redis.conf# ./redis-server /path/to/redis.conf...
2018-09-07 00:49:50
591
原创 java中常见的线程安全集合类
早在jdk的1.1版本中,所有的集合都是线程安全的。但是在1.2以及之后的版本中就出现了一些线程不安全的集合,为什么版本升级会出现一些线程不安全的集合呢?因为线程不安全的集合普遍比线程安全的集合效率高的多。随着业务的发展,特别是在web应用中,为了提高用户体验减少用户的等待时间,页面响应速度(也就是效率)是优先考虑的。而且对线程不安全的集合加锁以后也能达到安全的效果(但是效率会低,因为会有锁的获...
2018-09-07 00:26:29
2551
转载 spring管理事物上
配置spring事务管理的几种方式(声明式事务)Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataS...
2018-09-01 15:55:24
152
转载 spring事物管理下
在这里主要介绍Spring对事务管理的一些理论知识,实战方面参考上一篇博文:http://www.cnblogs.com/longshiyVip/p/5061547.html1. 事务简介:事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性事务就是一系列的动作,它们被当作一个单独的工作单元。这些动作要么全部完成,要么全部不起作用2. 事务的四个关键属性(...
2018-09-01 15:54:21
121
原创 java本身的API
一、java.lang.Object类【★】类层次结构的根类,所有类都直接或者间接的继承自该类。构造方法:public Object()成员方法:1) public int hashCode()返回该对象的哈希码值2) public final Class getClass()返回此对象的运行时类,即字节码文件对象3)public String toStri...
2018-09-01 03:23:44
430
原创 java按行读取文件实现方法一
public static void main(String[] args) throws IOException { FileInputStream inputStream = new FileInputStream("d://a.txt"); //设置inputStreamReader的构造方法并创建对象设置编码方式为gbk Buffered...
2018-09-01 01:06:28
6337
转载 jsp jstl标签和el表达式的用法及区别
对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念!EL相关概念JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段。所以我们先来学习EL表达式EL主要用于查找作用域中的数据,然后对它们执行简单操作;它不是编程语言,甚至不是脚本编制语言。通常与 JSTL ...
2018-08-28 10:07:01
1829
原创 spring bean的作用域
Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例)、prototype(原型)、request、session和global session,5种作用域说明如下:singleton:单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。Singleton作用域是Spring中的缺省作...
2018-08-23 19:52:14
152
原创 SSO单点登录
单点登录功能分析 请求的url:/user/login 请求的方法:POST 参数:username、password,表单提交的数据。可以使用方法的形参接收。 返回值:json数据,包含一个token。 业务逻辑: 登录的业务流程:登录的处理流程:1、登录页面提交用户名密码。 2、登录成功后生成token。Token相当于原来的jsessionid,字符串,可以使用uu...
2018-08-23 16:10:10
189
翻译 HttpClient实现远程调用
在项目中,我们常常遇到远程调用的问题,一个模块总是无法单独存在,总需要调用第三方或者其他模块的接口。这里我们就涉及到了远程调用。 原来在 ITOO中,我们是通过使用EJB来实现远程调用的,改版之后,我们用Dubbo+zk来实现。下面介绍一下HttpClient的实现方法。(一)简介HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功...
2018-08-23 15:32:42
390
转载 mybatis一二级缓存
1.缓存查询数据时将查询结果存放到内存(缓存区)中。 每次查询数据时,先判断缓存区中是否存在数据, 如果存在,就从缓存区中获取数据 如果不存在,就从数据库中获取数据,将数据存放到缓存区中,给下次访问使用 好处: 避免频繁与数据库交互,提高数据访问效率。提升系统性能。 缓存的使用演示: 失败的一级缓存测试 ※面试相关 [1]SQL语句或查询条件不同[2]分属不同S...
2018-08-08 20:52:23
222
转载 浅析SpringIOC底层原理
1.Spring框架的核心作用是把对象的创建交给spring进行管理 2.ioc操作两部分:(1)ioc的配置文件方式(2)ioc的注解方式 3.ioc底层原理使用技术(1)xml配置文件(2)dom4j解析xml(3)工厂设计模式(4)反射 4.IoC Service ProviderIoC Service Provider在这里是一个抽象出来...
2018-08-08 20:39:27
775
转载 AOP底层事项
AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础。它是一种面向切面编程的思想。关于AOP的基础知识,相信多数童鞋都已经了如指掌,我们就略过这部分,来讲解下AOP的核心功能的底层实现机制:如何用动态代理来实现切面拦截。 AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该...
2018-08-08 20:30:56
117
转载 静态代码块与静态变量的执行顺序
在工具类中,通常会初始化一些单例变量,这些变量由于只会初始一次,并不适合放在构造函数中,因此通常选择在静态代码块中执行,那么在一个类中,就会涉及到静态变量和静态代码块的初始化执行顺序问题。 public class Test { private static Test t = new Test(); private static Strin...
2018-08-08 20:20:39
2806
翻译 多线程之并发包
学习这个很长时间了一直没有去做个总结,现在大致总结一下并发包的线程池。首先,任何代码都是解决问题的,线程池解决什么问题?如果我们不用线程池,每次需要跑一个线程的时候自己new一个,会导致几个问题:1,不好统一管理线程和它们的相互之间的依赖关系,尤其是有的程序要做的事情很多的时候,线程的处理就显得很杂乱,更雪上加霜的是,线程本身就是不可预期的,不是说先跑的线程就一直在后跑的线程前面,一旦...
2018-08-08 20:03:06
989
原创 集合工具类之-Collections
既然集合很常用,那么肯定就会有相应的工具类,可以直接使用,就不用那么累了,对吧,哈哈。集合也有自己的工具类,那就是:Collections。看清楚,这是带有s的,不是Collection接口。既然是工具类,那么就来看看这个工具类里面有什么方法是我们经常用到的?接下来就来看一下上面的方法怎么用?1、排序这是最基本的排序方式,也就是自然排序,我们也可以传入一个自定义的Compa...
2018-08-08 19:39:02
4347
2
原创 redis集群搭建
Redis-集群搭建 Redis分片和哨兵的问题 问题说明: 分片的优点:可以实现内存的动态的扩容.哨兵的优点:可以实现redis的高可用. 缺点:如果一台redis节点宕机,则整个redis分片将不能正常运行. 由于采用Hash一致性算法,如果分布式的操作,可能会导致 分散性和负载 哨兵机制中,如果哨兵出现宕机现象,则直接影响整个服务. 如果哨兵宕机...
2018-08-01 18:08:07
147
原创 Spring创建对象详解(上篇)
Spring创建对象的方式3种方式此文为基础回顾,估计是最后一次总结。项目利用maven进行架构,其基本项目结构为:其中pom.xml中的内容为:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs...
2018-07-30 15:18:16
423
原创 redis哨兵入门
1 Redis的分片技术1.1 分片介绍1.1.1 传统方式的问题说明:如果采用单台redis时,如果redis出现宕机现象.那么会直接影响我们的整个的服务.1.1.2 采用分片模式说明:由一台redis扩展到多台redis.由多台redis共同为用户提供服务.并且每台redis中保存1/N的数据.好处:如果一台redis出现了问题.不会影响整个redis的服务. ...
2018-07-29 14:55:06
267
原创 Cannot change version of project facet Dynamic Web Module to 2.5 错误
问题:新建maven webapp项目后,出现Cannot change version of project facet Dynamic web module to 3.0或者2.5分析:使用Maven新建Web项目时使用的是Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5,在Pro...
2018-07-29 09:31:25
116
原创 LRU算法详解
LRU全称是Least Recently Used,即最近最久未使用的意思。LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。实现LRU 1.用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入新数据项的时候,先把数组中存在的数据项的时间戳自增,...
2018-07-28 10:26:21
2064
原创 redis连接超时bug解决
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed outat redis.clients.jedis.Connection.connect(Connection.java:154)at redis.clients.jedis.Binary...
2018-07-27 18:02:58
18994
2
原创 用java实现数组与集合的相互转化
集合和数组相互转换很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。集合转换成数组可以把String换成其他类List<String>list;String[] characters = list.toArray(new String[list.size()]);数组转换成集合String[] arr ;...
2018-07-27 11:32:14
1627
原创 浅谈对多线程的理解
一、提到多线程,就不得不理解以下几点:1.程序,进程,线程这三者之间的关系?简单来说,一程序可以调用多个进程,比如一个视频播放器程序,里面就存在两个进程:一个是播放视频的进程,一个是下载上传视频的进程。一个进程又同时调用多个线程,这个线程是隐藏的,用进程管理器看不到,可用其它的进程管理软件来查看。三者的逻辑关系是程序调用进程,进程调用线程,一般来说程序下面都是多进程,不同的进程分工不同;进程下面也...
2018-06-19 19:57:09
263
原创 类加载器详解
首先来了解一下字节码和class文件的区别:我们知道,新建一个java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的bin目录下)指定的目录下的.class文件,类加载需要将.class文件导入到硬盘中,经过一些处理之后变成字节码在加载到内存中。下面来看一下简单的例子:[java] view plain copypa...
2018-05-30 20:44:55
327
原创 MyBatis 编程进阶~mybatis基于接口方式实现对数据库中的数据进行操作
1.1. MyBatis基于接口实现的基本步骤Step01: 创建maven桌面项目并添加依赖Step02: 创建配置文件config.propertis(内容为数据库相关)Step03: 创建mybatis核心配置文件mybatis-configs.xml文件Step04: 配置Mybatis基础数据服务(properties,datasource,mapper)Step05: 创建映射文件Bl...
2018-05-29 21:16:35
1117
原创 Mybatis原理分析之一:从JDBC到Mybatis
1.引言本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。 2.JDBC实现查询分析我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1) 加载JDBC驱动(2) 建立并获取数据库连接(3) 创建 JDBC State...
2018-05-29 18:37:33
404
原创 Servlet3.0新特性全解
tomcat 7以上的版本都支持Servlet 3.0Servlet 3.0 新增特性注解支持;Servlet、Filter、Listener无需在web.xml中进行配置,可以通过对应注解进行配置;支持Web模块;Servlet异步处理;文件上传API简化; Servlet3.0的注解@WebServlet :修饰Servlet类,用于部署该Servlet类。@WebFilter:修饰Fil...
2018-05-29 18:21:36
210
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人