/**PageBeginHtml Block Begin **/ /***自定义返回顶部小火箭***/ /*生成博客目录的JS 开始*/ /*生成博客目录的JS 结束*/
摘要: 原文出处: 张开涛 4.1、Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1、收集、验证请求参数并绑定到命令对象; 2、将命令对象交给业务对象,由业务对象处理并返回模型数据; 3、返回ModelAndView(Mod 阅读全文
posted @ 2017-09-06 21:55 一品堂.技术学习笔记 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 原文出处: 张开涛3.1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:1、文件上... 阅读全文
posted @ 2017-09-06 21:08 一品堂.技术学习笔记 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 原文出处: 张开涛 2.1、Spring Web MVC是什么 spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发, 阅读全文
posted @ 2017-09-06 20:20 一品堂.技术学习笔记 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 原文出处: 张开涛 Web MVC简介 1.1、Web开发中的请求-响应模型: 在Web世界里,具体步骤如下: 1、 Web浏览器(如IE)发起请求,如访问 2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。 3、web服务器 阅读全文
posted @ 2017-09-06 14:02 一品堂.技术学习笔记 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 原文:http://blog.csdn.net/54powerman/article/details/77575656 作者:54powerman 一直以为,java中任意unicode字符串,可以使用任意字符集转为byte[]再转回来,只要不抛出异常就不会丢失数据,事实证明这是错的。 经过这个实例 阅读全文
posted @ 2017-09-06 09:40 一品堂.技术学习笔记 阅读(5923) 评论(0) 推荐(0) 编辑
摘要: SpringMVC学习笔记 原文出处: cnblogs-Sunnier 一、SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml配置文件中关于SpringMVC的配置 3.在src下添加springmvc-servle 阅读全文
posted @ 2017-09-05 08:57 一品堂.技术学习笔记 阅读(396) 评论(0) 推荐(0) 编辑
摘要: JQuery教程: http://www.w3school.com.cn/jquery/ HTTP协议的 http://www.w3.org/Protocols/rfc2616/rfc2616.html el表达式 http://hi.baidu.com/fytcm/blog/item/763690 阅读全文
posted @ 2017-09-05 01:11 一品堂.技术学习笔记 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 什么是内部类? 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 内部类的 阅读全文
posted @ 2017-09-05 01:10 一品堂.技术学习笔记 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 说明:本文乃学习整理参考而来. 一、Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能 阅读全文
posted @ 2017-09-05 01:03 一品堂.技术学习笔记 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 在讲解String之前,我们先了解一下Java的内存结构。 一、Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。 JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java 虚拟机启动时创建,非堆内存(N 阅读全文
posted @ 2017-09-05 00:54 一品堂.技术学习笔记 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 注解作用:每当你创建描述符性质的类或者接口时,一旦其中包含重复性的工作,就可以考虑使用注解来简化与自动化该过程。 Java提供了四种元注解,专门负责新注解的创建工作。‘ 元注解 @Target @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、 阅读全文
posted @ 2017-09-05 00:49 一品堂.技术学习笔记 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 文件上传 普通文件和url文件 主要用来学习使用common-fileupload.jar和java.net.httpURLConnection 普通文件: url文件上传: 更多详细关于HttpURLConnection的学习资料请参考: HttpURLConnection学习 JDK中的URLC 阅读全文
posted @ 2017-09-05 00:37 一品堂.技术学习笔记 阅读(514) 评论(0) 推荐(0) 编辑
摘要: HttpClient简介 HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身 阅读全文
posted @ 2017-09-05 00:35 一品堂.技术学习笔记 阅读(936) 评论(0) 推荐(0) 编辑
摘要: Commons-configuration Commons-FileUploadCommons DbUtilsCommons BeanUtils Commons CLI Commons CodecCommons Collections Commons DBCPCommons HttpClient C 阅读全文
posted @ 2017-09-05 00:27 一品堂.技术学习笔记 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 主题:多线程进阶 多线程的一些核心内容以及要关注的细节。 一、线程的实现 继承thread类重写run()方法和实现Runnable接口实现run()方法 注意点:new线程实例时建议加线程名和要处理下线程的中断异常([InterruptedException]) 二、不得不提的[ThreadLoc 阅读全文
posted @ 2017-09-05 00:12 一品堂.技术学习笔记 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 多线程下[HashMap]的问题: 1、多线程put操作后,get操作导致死循环。 2、多线程put非NULL元素后,get操作得到NULL值。 3、多线程put操作,导致元素丢失。 本次主要关注[HashMap]-死循环问题。 为何出现死循环? 大家都知道,HashMap采用链表解决Hash冲突, 阅读全文
posted @ 2017-09-05 00:11 一品堂.技术学习笔记 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadLocal基础知识 原始线程现状: 按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但是Spring中的各种模板类并未采用线程同步机制,因为线程同步会影响并发性和系统性能,而且实现难度也不小。 ThreadLocal 阅读全文
posted @ 2017-09-05 00:08 一品堂.技术学习笔记 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 一、Eclipse常见快捷键使用 自动完成单词:Alt+/ 重命名:Shift+Alt+r(统一改变字段或方法名) 生成getter/setter方法: Shift+Alt+s,然后r 删除当前行:Ctrl+d 定位到前(后)一个编辑点:标准为Alt+左(右)箭头 , 修改方法为: Windows- 阅读全文
posted @ 2017-09-05 00:05 一品堂.技术学习笔记 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 阅读全文
posted @ 2017-09-05 00:00 一品堂.技术学习笔记 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 一、Arrays.sort()数组排序Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(8种基本类型)和Object两大类。 基本类型:采用调优的快速排序; 对象类型:采用改进的归并排序。1、对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排序,对Object对象数组采用归并排序。对这一区别... 阅读全文
posted @ 2017-09-04 23:53 一品堂.技术学习笔记 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 一、源码解析1、 LinkedList类定义。 1 public class LinkedList 2 extends AbstractSequentialList 3 implements List, Deque, Cloneable, java.io.SerializableLinkedList 是一个继承于AbstractSequentialList的双向链表。它也... 阅读全文
posted @ 2017-09-04 23:48 一品堂.技术学习笔记 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函 阅读全文
posted @ 2017-09-04 23:34 一品堂.技术学习笔记 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、 HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用H 阅读全文
posted @ 2017-09-04 23:20 一品堂.技术学习笔记 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意 阅读全文
posted @ 2017-09-04 23:18 一品堂.技术学习笔记 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在开发工作中,我们常常需要获取客户端的IP。一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 原因:由于在客户端和服务之间增加了中间代理,因此服务器无法直接拿到客户端的IP,服务器 阅读全文
posted @ 2017-09-04 23:07 一品堂.技术学习笔记 阅读(3332) 评论(3) 推荐(1) 编辑
摘要: 上传文件时经常需要做文件类型判断,例如图片、文档等,普通做法是直接判断文件后缀名,而文艺青年为了防止各种攻击同时也会加上使用文件头信息判断文件类型。原理很简单:用文件头判断,直接读取文件的前2个字节即可。 1 public class FileUtil { 2 /** 3 * byte数组转换成16进制字符串 4 * 5 * @param src ... 阅读全文
posted @ 2017-09-04 23:04 一品堂.技术学习笔记 阅读(2146) 评论(0) 推荐(2) 编辑
摘要: 一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。... 阅读全文
posted @ 2017-09-04 23:01 一品堂.技术学习笔记 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 概述:Java解析apk文件,获取apk文件里的包名,版本号,图标文件等;功能:可以提供给windows和linux平台使用;原理:利用aapt.exe或者aapt这些anroid平台解析apk文件的工具,借用终端shell调用命令解析输出信息;代码: 这里贴出一些关键代码,并给出代码注释,如下 1 package com.apkutils; 2 3 import java.io... 阅读全文
posted @ 2017-09-04 22:49 一品堂.技术学习笔记 阅读(1291) 评论(0) 推荐(0) 编辑
摘要: 一:代码图解: 二:配置文件: 三:获取配置文件信息 PathUtil.java PropertiesConfig.java PropertyReadUtil.java 四:JDBC 获取连接的封装 阿里巴巴开源的数据库连接jar 连接工具类 :DruidDataSourceUtil.java c3 阅读全文
posted @ 2017-09-04 21:42 一品堂.技术学习笔记 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 1:javascript对JSON的支持2:java对JSON的支持 alibaba->fastjson 封装工具类: 1 import com.alibaba.fastjson.JSONObject; 2 3 public class JSONBuilder { 4 JSONObject json = new JSONObject(); 5 6 publi... 阅读全文
posted @ 2017-09-04 21:36 一品堂.技术学习笔记 阅读(168) 评论(0) 推荐(0) 编辑
摘要: JFreeChart主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等 (源代码下载) 示例程序运用的jar包: jcommon-1.0.17.jar jfreechart-1.0.14.jar 1:普通柱状图 这是 阅读全文
posted @ 2017-09-04 21:28 一品堂.技术学习笔记 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 一、Java数组初始化Java数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。Java数组使用之前必须先对数组对象进行初始化,所谓初始化,就是为数组的所有元素分配内存空间,并为每个数组元素指定初始值。(文章来源于李刚老师的《突破java程序员的16课》)1:基本类型数组的两种初始化方式静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。动态初始化:初始化时程序... 阅读全文
posted @ 2017-09-04 21:09 一品堂.技术学习笔记 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 下面这段代码可用于Jsp+Servle+JavaBean中做验证码: 1 2 255) fc=255; 6 if(bc>255) bc=255; 7 int r=fc+random.nextInt(bc-fc); 8 int g=fc+random.nextInt(bc-fc); 9 int b=fc+random.ne... 阅读全文
posted @ 2017-09-04 20:59 一品堂.技术学习笔记 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1:java中垃圾回收机制主要完成下面两件事情:跟踪并监控每个java对象,当某个对象处于不可达状态时,回收该对象所占的内存清理内存分配,回收过程中产生的内存碎片2:对于JVM的垃圾回收机制来说,是否回收一个对象的标准是:是否还有引用变量引用该对象? 只要还有引用变量引用该对象,立即回收机制就不会回收它。3:基本上,可以把JVM内存中对象引用理解成一种有向图,把引用变量,对象都当成为有向图... 阅读全文
posted @ 2017-09-04 20:54 一品堂.技术学习笔记 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1. java.lang.NullPointerException(空指针异常)调用了未经初始化的对象或者是不存在的对象经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始... 阅读全文
posted @ 2017-09-04 20:52 一品堂.技术学习笔记 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一、为什么要编码?由于人类的语言太多,因而表示这些语言的符号太多,无法用计算机的一个基本的存储单元----byte来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。byte一个字节即8个bit,所以能表示的字符范围是0~255个,这满足不了人类的需要,要解决这个矛盾必须需要一个新的数据结构char,从char到byte必须经过编码。二、常用编码介绍ASCII码 总共128... 阅读全文
posted @ 2017-09-04 20:49 一品堂.技术学习笔记 阅读(341) 评论(0) 推荐(0) 编辑
摘要: Spring IOC设计原理解析:本文乃学习整理参考而来一、什么是Ioc/DI? IoC 容器:最主要是完成了完成对象的创建和依赖的管理注入等等。先从我们自己设计这样一个视角来考虑:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们可配置的... 阅读全文
posted @ 2017-09-04 19:51 一品堂.技术学习笔记 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 项目代码pom.xml 文件Quartz 的包是整个项目不可缺少的 1 2 3 4.0.6.RELEASE 4 5 2.2.1 6 7 8 9 10 junit 11 junit 12 3.8.1 1... 阅读全文
posted @ 2017-09-04 14:51 一品堂.技术学习笔记 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 1 //配置类 2 3 package test; 4 5 import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; 6 import org.springframework.context.annotation.ComponentScan; 7 import org.springfram... 阅读全文
posted @ 2017-09-04 14:45 一品堂.技术学习笔记 阅读(1869) 评论(0) 推荐(0) 编辑
摘要: 前言:当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1. 当然Java的内存模型没有上... 阅读全文
posted @ 2017-09-04 14:35 一品堂.技术学习笔记 阅读(217) 评论(0) 推荐(0) 编辑