- 博客(101)
- 资源 (1)
- 收藏
- 关注
转载 深入分析Java ClassLoader原理
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在
2017-01-02 20:03:19
413
转载 理解HTTP幂等性
基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascr
2016-12-14 17:12:37
624
转载 SpringMVC中Could not obtain transaction-synchronized Session for current thread的解决方案
首先列出错误信息org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessio
2016-12-09 10:54:43
677
转载 Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能
2016-12-01 16:08:27
454
转载 JavaWeb学习总结---EL表达式
一、EL表达式简介 EL 全名为Expression Language。EL主要作用: 1、获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组) 2、执行运算 利用EL表达式可以在JSP页面中执行一些基本
2016-12-01 15:42:06
423
转载 JavaWeb学习总结---JSTL标签库之核心标签
一、JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码二、JSTL标签库的分类核心标签(用得最多)国际化标签(I18N格式化标签)数据库标签(SQL标签,很少使用)XML标签(几乎不用)JSTL函数(EL函数)三、核心标签库使用说明 JS
2016-12-01 15:39:24
472
转载 JavaWeb学习总结---JSP原理
一、什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。 JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。二、JSP原理2.1、Web服务器是如何调用并执
2016-12-01 15:22:55
416
转载 Fiddler界面详解
Statistics 页签完整页签如下图: Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数、发送字节数、接收字节数、响应类型的汇总表、世界各地通过不同请求方式所需的时间等。Statistics 页签底部图表Show Chart 可以将汇总结果显示为一个饼状图,按照响应类型,在饼图中显示
2016-11-28 11:53:31
1771
转载 使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。一、表单重复提交的常见应用场景有如下的form.jsp页面 1 2 3 4 5 Form表单 6 7 8 9 10
2016-11-25 12:20:34
481
转载 DWR框架搭建与使用
1、简介 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。以上是摘自百度百科里面的定义。它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持spri
2016-11-24 14:05:04
601
转载 Spring的AOP
一、实现自己的AOP在之前一篇随笔中已经详细讲解了java的动态代理机制,我们也知道了AOP的底层其实就是基于动态代理机制实现的,所以这里先自己实现一下AOPpublic class DynamicProxy implements InvocationHandler{ // 要代理的对象 private Object target; // 将构造方法
2016-11-23 17:08:33
394
转载 java的动态代理机制详解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或
2016-11-23 17:00:06
301
转载 hibernate缓存机制详细分析
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的了解。一、N+1问题首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N+1问题:li
2016-11-21 14:26:33
400
转载 hibernate延迟加载(get和load的区别)
在hibernate中我们知道如果要从数据库中得到一个对象,通常有两种方式,一种是通过session.get()方法,另一种就是通过session.load()方法,然后其实这两种方法在获得一个实体对象时是有区别的,在查询性能上两者是不同的。一.load加载方式当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session
2016-11-21 14:21:37
372
转载 hibernate的native sql查询
在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hibernate推荐的HQL查询语句呢?这是因为HQL查询语句虽然方便我们查询,但是基于HQL的查询会将查询出来的对象保存到hibernate的缓存当中,如果在我们的一个大型项目中(数据量超过了百万级),这个时候如果使用hibernate的HQL查询的
2016-11-21 14:20:30
357
转载 hibernate的hql查询语句总结
这篇随笔将会记录hql的常用的查询语句,为日后查看提供便利。在这里通过定义了三个类,Special、Classroom、Student来做测试,Special与Classroom是一对多,Classroom与Student是一对多的关系,这里仅仅贴出这三个bean的属性代码:Special类:public class Special{ private int
2016-11-21 14:16:55
349
转载 深入hibernate的三种状态
学过hibernate的人都可能都知道hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),大家伙也许也知道这三者之间的区别,比如瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就是已经被保存到数据库中,离线状态就是数据库中有,但是session中不存在该对象。但是大家又是否对hibernate的ses
2016-11-21 14:08:12
355
转载 解密ThreadLocal
相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thread-local varia
2016-11-21 13:15:28
420
转载 安卓调试神器-Stetho(Facebook出品)的使用
前言Chrome的Developer Tools对于WEB开发者来讲几乎是一个神器,而Chrome Store里也有无奇不有的插件,如果Chrome能调安卓应用应该是一件美好的事,而Facebook开源的一个工具Stetho让Chrome调试android 应用不再是一个梦。安卓在调试时,有时候需要查看数据库,SharePreference等,而这个前提是必须root,另一方面,andoird的网络
2016-08-21 15:21:28
667
转载 Android SDK 源码解析项目
android sdk 源码解析——旨在帮助Android开发者更好的学习Android!地址:https://github.com/LittleFriendsGroup/AndroidSdkSourceAnalysis 已发布文章第一期Class分析者校对者版本发布时间Binder源码解析
2016-08-13 22:38:19
2046
1
转载 Android中那些让你相见恨晚的类-接口-方法
Part 1:Activity.startActivities() 常用于在应用程序中间启动其他的Activity。 TextUtils.isEmpty() 简单的工具类,用于检测是否为空。(可同时判断”“和null哦) Html.fromHtml() 用于生成一个Html,参数可以是一个字符串.个人认为它不是很快,所以我不怎么经常去用.(我说不经常用它是为了重点突出这句话
2016-08-13 22:17:07
805
原创 Android开发方法数超过65535的解决办法
一. 导包从sdk\extras\Android\support\multidex\library\libs 目录将android-support-multidex.jar导入工程中Android studio 可以在gradle中之间添加 compile 'com.android.support:multidex:1.0.0' 二. 初始化multidex如果你的工程中已经含有Ap
2016-08-12 11:39:39
533
转载 Retrofit2.0使用总结及注意事项
概述随着Google对HttpClient 摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofit则对okHttp进行了强制依赖。Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,如果看源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层,其将请求返回javaB
2016-08-11 23:28:54
1715
转载 深入理解Android View的构造函数
我经常看到关于Android Vie构造方法的困惑。为什么有四个构造方法?每个参数是做什么的?我需要实现哪个构造方法?如果你想要一个直接而实际的建议,这里有几个不错的指导原则:在代码中创建View的时候用View(Context)。当从XML inflate view的时候重写View(Context, AttributeSet)。剩余的知识其实可以忽略,因为你很可能并不需要。对于那些仍和我
2016-08-11 22:16:56
467
转载 Android 中线程间通信原理分析:Looper, MessageQueue, Handler
在我们去讨论Handler,Looper,MessageQueue的关系之前,我们需要先问两个问题:这一套东西搞出来是为了解决什么问题呢?如果让我们来解决这个问题该怎么做?以上者两个问题,是我最近总结出来的,在我们学习了解一个新的技术之前,最好是先能回答这两个问题,这样你才能对你正在学习的东西有更深刻的认识。第一个问题:google的程序员们搞出这一套东西是
2016-08-10 19:32:52
693
转载 Android 的 LiveReload — jimu Mirror
用过 Sketch 的朋友应该都知道一个叫 Mirror 的功能,它可以将你的设计稿放到手机上预览,为设计师们提高了不少效率。而今天我要介绍的 jimu Mirror ,和 Sketch Mirror 类似,可以将 Android 的 xml 实时放到手机上预览。但是现代化的 IDE 都已经提供在 IDE 内实时预览 xml 的功能,jimu Mirror 有啥用呢?有用!还是相当有用!
2016-08-09 10:56:52
987
转载 Bugly Android 快速接入使用文档
一、库文件导入如果您使用Gradle编译Apk,我们强烈推荐您使用自动接入方式配置库文件(JCenter仓库)。方式1:自动导入(推荐)在Module的buid.gradle文件中添加依赖和属性配置: android { defaultConfig { ndk { //设置支持的S
2016-08-08 23:16:17
796
转载 ButterKnife框架原理和使用
大部分Android开发应该都知道@JakeWharton 大神的ButterKnife注解库,使用这个库我们可以不用写很多无聊的findViewById()和setOnClickListener()等代码 ButterKnife项目的主页在这里:http://jakewharton.github.io/butterknife/ 简单介绍一下使用方法:public class ExampleAc
2016-08-08 10:34:33
762
转载 Android 开发最佳实践
从Futurice公司Android开发者中学到的经验。遵循以下准则,避免重复发明轮子。若您对开发iOS或Windows Phone 有兴趣,请看iOS Good Practices 和 Windows client Good Practices 这两篇文章。摘要使用 Gradle 和它推荐的工程结构 把密码和敏感数据放在gradle.properties 不要自己写 HTTP客户端,使用Vo
2016-08-07 16:59:38
479
转载 Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2、AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi);
2016-08-06 19:07:38
1018
转载 LeakCanary 中文使用说明
LeakCanaryAndroid 和 Java 内存泄露检测。“A small leak will sink a great ship.” - Benjamin Franklin千里之堤, 毁于蚁穴。 -- 《韩非子·喻老》
2016-08-06 10:24:40
521
转载 详细解析RxAndroid的使用方式
RxAndroid是RxJava的扩展, 可以优雅地处理异步请求. 以前的文章讲述过一些, 这次再补充些内容, 熟悉RxAndroid的使用方法.本文源码的GitHub下载地址要点包含: (1) 链式表达式的使用方式. (2) Lambda的应用. (3) Rx处理网络请求. (4) 线程自动管理, 防止内存泄露. (5) RxBinding绑定控件的异步事件.1. 基础当然, 从一个崭新
2016-08-05 22:50:45
1097
转载 picasso-强大的Android图片下载缓存库
picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载:1Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").in
2016-08-04 22:58:30
437
转载 Rxlifecycle使用详解,解决RxJava内存泄露问题
随着Android第三库的普及, RxJava 和 RxAndroid ( https://github.com/ReactiveX/RxAndroid )越来越被人熟知,简洁的语法,配合Java8 Lambda表达式,使代码的结构更加清晰,通过线程调度器更容易控制和切换线程,种种优点,使用它的人也越来越多。但是使用不好,很容易导致内存泄露。 Rxlifecycle ( https://git
2016-08-03 21:19:08
3104
转载 android Spinner控件详解
Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。上图显示的是Spinner常见的样式。这篇文章中我将讨论1.Spinner的基本用法 2.设置Spinner的Adapter (arrayadapter 和自定义Base
2016-08-03 14:55:01
523
转载 Gradle build设置自动log开关
应用场景通常情况下我们的apps发布后也就是release模式下log是不显示的,debug模式下是显示log的,但是在特殊情况下我们测试release包的时候需要log的时候,就无法使用BuildConfig.DEBUG来达到要求,因为在release模式下自动设置为false,debug模式下是true,这个时候我们需要自定义可控制的log开关。Android Studio 对
2016-08-02 20:19:05
603
转载 Android App的设计架构:MVC,MVP,MVVM与架构经验谈
本文由周鸿博创作,转载需署名作者且注明文章出处:http://www.tianmaying.com/tutorial/AndroidMVC和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计:我的App需要应用这些设计架构吗?MVC,MVP等架构讲的是什么?区别是什么?本文就来带你分析一下
2016-08-01 12:23:28
594
转载 Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
如果你用Android Studio开发,并且要用其他项目作为library,这个问题是很容易出现的。出现这个问题的原因是包的重复引用,意思就是在你自己的项目中引用了某个包,而被你作为library的项目也引用了同一个包,就会有这个问题。那如何解决呢,我所知道的是有两种方法:方法1:按照惯例,直接上图吧,从下图可以看到我在library中有加了一个v4的包,同时我将它作为depen
2016-07-29 13:13:35
481
转载 APP使用的一些第三方库
背景前段时间在调研第三方推送服务的时候,反编译了一部分市面上比较流行的APP。其中一个无论是在设计还是功能上都堪称典型,这款APP总用户数超千万(其官网数据),在国内某手机助手上支持率超97%。可见其受欢迎程度(APP的名字就不说了)。反编译这个APP后发现其使用的第三方库也很有代表性。这里介绍下他们使用的这些第三方库,给需要的童鞋一些参考。1.Android Design Support
2016-07-27 16:25:55
957
转载 ArrayList、Vector、HashMap、HashTable是如何扩容
a) ArrayList,默认初始10个大小,每次扩容是原容量的一半,具体代码如下public ArrayList() {this(10);} int newCapacity = (oldCapacity * 3)/2 + 1;public static native void arraycopy(Object src, int srcPos,
2016-07-26 17:07:53
1817
Eclipse安装Activiti Designer插件需要用到的环境
2016-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人