![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【JAVA】
文章平均质量分 67
令仔很忙
这个作者很懒,什么都没留下…
展开
-
新手学JAVA(二)----String类与StringBuffer类的区别
在Java中有两种字符串的操作:String类和StringBuffer类(缓冲字符串处理类)。 下面先简单的说一下两者的区别。 String类和StringBuffer类都提供了相应的方法实现字符串的操作,但二者略有不同。(1) String类 该类一旦产生一个字符串,其对象就不可变。String类的内容和长度是固定的。如果程序需要获得字符串的信息需要调用系统提供的各种原创 2015-03-30 11:16:05 · 2666 阅读 · 14 评论 -
集合详解(二)----ArrayList源代码剖析(JDK1.7)
ArrayList是List类的一个典型的实现,是基于数组实现的List类,因此,ArrayList封装了一个动态的、可变长度的Object[]数组。ArrayList是通过initialCapacity参数来设置数组长度的,当向ArrayList添加的数据超出了ArrayList的长度之后,initialCapacity会自动增加原创 2016-07-25 18:01:36 · 2147 阅读 · 2 评论 -
Mybatis深入了解(五)----动态SQL
什么是动态SQL 实例Mapperxml测试代码sql片段定义sql片段引用sql片段foreach应用场景在输入参数类型中添加List ids传入多个id修改Mapperxml测试代码什么是动态SQL? 动态sql是mybatis的核心,主要是对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活的拼接、组装。 实例 用户信息综合查询列表和用户原创 2016-07-16 16:29:43 · 2400 阅读 · 1 评论 -
Mybatis深入了解(四)----输入输出映射
通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、POJO的包装类型。举个栗子:完成用户信息的综合查询,需要传入条件很复杂(可能包括用户信息、其他信息,比如商品、订单)。传递POJO的包装类对象,看下面的实例:原创 2016-07-16 15:17:13 · 1214 阅读 · 0 评论 -
Mybaits深入了解(三)----mybatis开发Dao的方法
程序员写代码的时候,需要写dao接口和dao实现类。而且还需要向dao实现类中注入SqlSessionFactory,在方法体内通过SqlSessionFactory创建SqlSession。下面举个栗子:原创 2016-07-11 23:49:10 · 1763 阅读 · 0 评论 -
Mybaits深入了解(二)—-入门实例
Mybatis CRUD实例实例的开发环境 java环境 开发工具 数据库 jdk1.7 myeclipse mysql 项目的目录结构log4j.properties配置 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进原创 2016-07-01 20:57:50 · 1118 阅读 · 0 评论 -
Mybaits深入了解(一)----带你入门
Mybatis简介Mybatis架构功能架构框架Mybatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进原创 2016-07-01 17:38:47 · 1257 阅读 · 1 评论 -
Mybatis深入了解(六)----关联查询(高级映射)
一对一查询resultTyperesultMap一对多查询resultTyperesultMap多对多查询一对一查询resultType resultType:使用resultType实现非常简单,如果POJO中没有包括查询的列名,可以新建扩展类继承父类,并在子类中添加列名对应的属性,即可完成映射。package cn.itcast.ssm.po;/** * 订单的扩展类 *原创 2016-07-16 21:15:08 · 4308 阅读 · 0 评论 -
Mybatis深入了解(七)----延迟加载
resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。resultType无法实现延迟加载。 延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高 数据库性能,因为查询单表要比关联查询多张表速度要快。原创 2016-07-17 12:52:11 · 2391 阅读 · 1 评论 -
集合详解(三)----Map的两种遍历方式
第一种取值方式第二种取值方式 Map是以键值对(key-value)的方式来存取值的,那么该怎么把Map中的值取出来的,有两种方式,往下看。先定义一个Map,向里面存放一些数据。HashMap m=new HashMap();m.put("a","aa");m.put("b","bb");m.put("c","cc");m.put("d","dd"); 第一种取值方式原创 2016-07-27 17:25:51 · 1296 阅读 · 1 评论 -
集合详解(四)----HashSet和HashMap源码剖析(JDK1.7)
HashSetHashMapHashSet 当初始化一个HashSet的时候,HashSet的底层实现其实是HashMap:private transient HashMap<E,Object> map;public HashSet() { map = new HashMap<>();} 在每一个方法里面都是会通过map去调用HashMap的方法来实现。那么map是键原创 2016-07-31 17:25:52 · 3402 阅读 · 2 评论 -
Solr--全文索引原理
什么是全文搜索倒排索引结构正排索引倒排索引 在一些大型的门户网站和电商网站中,都有自己的站内搜索,但是使用传统的数据库查询方式已经无法满足一些高级的搜索要求,比如说:搜索速度要快、搜索结果要按照相关度排序,搜索的内容格式不固定,这些都需要使用全文实现搜索功能。 什么是全文搜索?信息检索 我们先要知道信息检索:从信息集合中找出与用户需求相关的信息,检索的信息包括:文本,图像,音原创 2016-08-06 21:12:47 · 3751 阅读 · 1 评论 -
SpringMVC上传、解析Excel
示例:导入相关数据(Excel文件),相关的文件数据编辑好。XML文件配置 再spring的xml文件中配置要上传文件的大小<!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes --> <bean id="multipartResolver" class="org.springframework.web.multipart.原创 2016-12-29 23:00:33 · 10734 阅读 · 4 评论 -
策略模式和Spring的结合在项目中的应用
一、策略模式 策略模式的定义: 策略模式是对算法的封装,把使用算法的责任和算法本身分隔开,委派给不同的对象管理。策略模式通常把一系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。 二、解决了我的什么问题? 在实际的项目中,完成一项任务,可以有多种不同的方式,对于新手来说我们是怎么来用的,很原创 2017-01-27 09:55:54 · 14158 阅读 · 12 评论 -
观察者模式和Spring的结合
这周给分了一个任务,就是对查询回来的数据进行各种各样的过滤,有七种不同的过滤条件。过滤条件是在数据库中存着的。在我们项目中有一个热发,就是定时的从数据库中把数据取出来进行分类保存到Property中或者Map中。所以一开始想的一个笨的方法就是把七种不同的过滤条件热发到七个不同的Map中去。然后再定义一个过滤的类,所有的查询回来的数据都要经过这个类的处理。 后来想了想,这样做的话,不利于扩展原创 2016-12-18 22:07:13 · 6076 阅读 · 3 评论 -
SpringIOC--初始化源码解析
IOC容器的初始化过程步骤第一步Resource定位过程 在上一篇 Spring从入门到精通(一)—-IoC(控制反转) 中,详细的介绍了IOC的基本原理,本篇博客就不再赘述;这次主要是从源码的角度来给大家分享SpringIOC的初始化过程。深入的了解其原理。 SpringIOC容器的关键两个主要的容器系列: BeanFactory提供一些最基础的功能,我们以水桶为例,如原创 2016-08-20 19:36:44 · 1431 阅读 · 1 评论 -
令仔代码收藏系列(一)----Java压缩与解压缩
package com.flight.inter.otaadapter.manage;import com.flight.inter.otaadapter.commons.util.Base64Util;import org.apache.http.Consts;import org.apache.http.HttpEntity;import org.apache.http.client.co原创 2017-03-15 17:14:33 · 1104 阅读 · 1 评论 -
集合详解(一)----Collection和Map接口
在我们编程的时候,有时候需要集中存放多个数据,可以用数组来保存多个数据,但是数组的长度是不可变的,一旦数组的长度确定了之后就无法再改变,如果要保存可变长度的数据的话,数组肯定是不行的了。而且数组也无法保存具有一定关联的数据,比如:数学–80,英语–50。为了可以保存上面的这些信息,java提供了集合类,主要是负责保存、盛装数据原创 2016-07-25 11:07:32 · 6060 阅读 · 2 评论 -
新手学JAVA(十)-多线程----线程的创建和启动
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或者其子类的实例。每个下次你哼的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码)。Java使用线程执行体来代表这段程序流 在Java线程的创建有三种方式 通过继承Thread类创建线程类步骤如下定义Thread类的子类,并重写该类的run()方法,该run()方法的方原创 2016-06-14 11:28:57 · 2262 阅读 · 1 评论 -
新手学JAVA(三)----StringBuilder类
上一篇文章新手学JAVA(二)----String类与StringBuffer类的区别中了解到,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 StringBuffer类和String原创 2015-03-30 16:17:23 · 1829 阅读 · 17 评论 -
新手学JAVA(一)——Equals和“==”的区别
一句话概括: 如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象。如果两边是基本类型,则比较的就是值。 ==不属于任何类,而equals则是任何类(Java中)的一个方法。 equals()是每个对象与生俱来的方法,因为所有类的最终基类就是Object(除去Object本身);而equals()是Object的方法之一。 我们可以这样比较: 1)Primitive1(基本类型)== Primitive2(基本类型) 2)Object1 Ref原创 2015-03-15 21:45:14 · 2125 阅读 · 15 评论 -
新手学JAVA(四)----装箱与拆箱
一 什么是装箱?什么是拆箱?在Java中,Java对每种基本数据类型都提供了对象的包装器类型。看下表: 包装类对应表 基本数据类型 包装类 byte Byte boole原创 2015-04-30 11:22:38 · 2205 阅读 · 22 评论 -
新手学JAVA(五)----深入剖析JAVA拆装箱
先来看一段代码:public class Main{ public static void main(String[] args){ Integer num1 = 100; Integer num2 = 100; Integer num3 = 200; Integer num4 = 200; '''//输出结果'''原创 2015-04-28 19:17:08 · 1743 阅读 · 11 评论 -
新手学JAVA(七)----Override VS Overload
一. 重载在同一个类中的许多方法可以拥有相同的名字,只要他们的参数声明不同即可,这种方法被称为重载。 举个例子:public class overload{ '''一个重则输出方法''' void print(){ System.out.println("Hello!"); } '''重载上面的输出方法,加上了参数'''原创 2015-05-28 10:08:34 · 2145 阅读 · 24 评论 -
新手学JAVA(八)----走进JDBC
什么是JDBC?JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。为什么要用JDBC?在没有JDBC之前,应用程序可以通过数据库厂商提供的API及SQL语句对数据库进行操作,如下图:有了JDBC,向各种关系原创 2015-06-27 10:55:06 · 2365 阅读 · 24 评论 -
手把手教你----MyEclipse中 配置 Tomcat
电脑上配置Tomcat服务器安装Tomcat并配置环境变量测试是否配置成功MyEclipse中配置Tomcat想要开发Java Web的程序,首先在MyEclipse中必须配置Tomcat,一起来动手操作吧。电脑上配置Tomcat服务器安装Tomcat并配置环境变量官网上下载Tomcat,记住你下载安装的版本,后面再MyEclipse中配置的时候会用到,安装时记住你安装的目录,安装成功后,配原创 2015-06-29 20:47:42 · 2289 阅读 · 26 评论 -
新手学JAVA(六)----处理随机性的数据
在我们的日常生活中会遇到很多随机性的事情,比如:摇奖,彩票,掷色子,这些都可以通过程序计算其中奖的概率。在JAVA的类库中,有一个专门操作这种随机性数据的类—-Random类。基础知识Random类一般使用在那些随机性比较强的场合,因为这些场合都含有一种随机的特性,也就是使用同样的方法去操作数据,每次操作的结果都不一样。 下面是Random类的常用方法: 方法 表示原创 2015-05-25 21:35:00 · 2080 阅读 · 17 评论 -
【JAVA调错】----JBoss发布多个项目时抛出webAppRootKey错误
错误由来错误原因错误解决方案第一种第二种错误由来 说一说事情的缘由,最近项目中加了日志,在项目中加了spring监听器:<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/config/log4j.xml</param-val原创 2016-02-29 09:33:08 · 1723 阅读 · 4 评论 -
新手学Struts(二)----Struts2工作机制
Struts2的体系结构如图所示: 从上图可以看出,一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求; 2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助;) 3、接原创 2016-04-30 14:29:46 · 695 阅读 · 1 评论 -
新手学JAVA(九)----Model1 And Model2
JavaWeb应用结构发展三个阶段第一个阶段-传统版第二个阶段-Model1第三个阶段JavaWeb应用结构发展三个阶段 Java Web应用结构的发展和MVC的发展非常类似,Java Web编程的发展则经历了三个阶段,下面就来说说有哪三个阶段。第一个阶段—-传统版 和MVC的发展一样,一开始所有的业务逻辑处理,数据处理等都放到了JSP中,Jsp是独立的,自主完成所有的任务。原创 2016-04-19 10:35:11 · 882 阅读 · 3 评论 -
Hibernate从入门到放弃(二)----和这个世界打声招呼(HelloWorld)
核心步骤案例Hibernate HelloWorld核心步骤 导入Jar包 Hibernate配置文件(只有一个) hibernate.cfg.xml用于数据库连接信息Hibernate的一些配置信息 Hibernate映射文件(可以有n个) 用来致命类和表之间的对应关系,Hibernate根据该文件生成SQL语句,比如POJO类名为User.java原创 2016-05-27 11:43:46 · 1469 阅读 · 5 评论 -
新手学Struts(一)----JSP+Servlet讲解MVC实现原理
MVC基本原理一个简单的例子改良的例子Struts基本流程的实现 最近在学SSH(Struts+ Hibernate+Spring),这也算是一个比较经典的框架了,之前都是看人家大牛说这个框架,那个框架,说的真溜,自己也是佩服的五体投地啊~~ 现在开始自己也要捣鼓捣鼓这些东西,还是有点小激动哒~~,Struts是基于MVC框架实现的,今天主要讲讲Struts的实现过程。MVC基本原原创 2016-04-24 15:07:24 · 1410 阅读 · 5 评论 -
Spring从入门到精通(一)----IoC(控制反转)
在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过相互合作,最终实现系统的业务逻辑。原创 2016-05-31 21:31:15 · 1695 阅读 · 5 评论 -
Hibernate从入门到放弃(三)----持久化对象
当对象刚创建,和Session没有发生任何关系时,当程序运行完成就立刻消失,被称为瞬时态。瞬态对象不会被持久化到数据库中,也不会被赋予持久化标识,如果程序中失去了瞬态对象的引用,瞬态对象将被垃圾回收机制销毁。使用Hibernate Session可以将其变成持久化状态。具体的转化方法如下:原创 2016-05-29 17:04:56 · 1257 阅读 · 4 评论 -
新手学JAVA(十一)-多线程----线程的生命周期
新建和就绪状态运行状态和阻塞状态线程死亡 当一个线程被创建并启动之后,并不是一开始就处于执行状态,已不是一直处于运行状态。线程也是有生命周期的,包括:创建(New)、就绪(Runnable)、阻塞(Blocked)、运行(Running)、死亡(Dead)五种状态。当线程运行时,也不可能一直霸占着CPU独自运行,而是一直在运行、就绪状态之间切换。 新建和就绪状态 当程序通原创 2016-06-27 16:16:15 · 3486 阅读 · 6 评论 -
令仔代码收藏系列(二)----BASE64编码
package com.flight.inter.otaadapter.commons.util;import org.apache.commons.codec.binary.Base64;import java.io.UnsupportedEncodingException;public class Base64Util { /** * 将 strVal进行 BASE64 编码原创 2017-03-15 17:18:30 · 1078 阅读 · 1 评论