自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

转载 【转】深入浅出 TCP/IP 协议

转载:https://www.cnblogs.com/onepixel/p/7092302.htmlTCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层...

2018-05-25 23:39:09 411

原创 Integer类源码解析之toString方法

直接附上toString()方法源码/** *@param i an integer to be converted to a string. *@param radix 字符串使用的基数(即指将i转成radix进制的字符串) *@return a string representation of the argument in the specified...

2018-04-29 22:11:54 2083

转载 MarkDown学习(2)

区段元素强调(斜体、粗体)Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 * 或_ 包围的字词会被转成用 <em> 标签包围(斜体),用两个 * 或 _ 包起来的话,则会被转成 <strong>(加粗),例如:*single asterisks*_single underscores_**double asterisks*...

2018-03-07 22:41:48 352

转载 Markdown学习(1)

区块元素段落和换行一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。「由一个或多个连续的文本行组成」这句话其实暗示了 Markdown 允许段落内的强迫换行(插入换行符),这个特性和其他大部分的 tex...

2018-03-06 22:59:25 465

转载 介绍Sublime3下两款Markdown插件

最近想通过使用使用SublimeText3学习下Markdown,然后了解到了两款插件MarkdownEditing和OmniMarkupPreviewer。MarkdownEditingMarkdownEditing是Markdown写作者必备的插件,它可以不仅可以高亮显示Markdown语法还支持很多编程语言的语法高亮显示。OmniMarkupPreviewerOmniMark...

2018-03-04 11:52:20 952

转载 详解JavaScript变量提升

详解JavaScript变量提升 本文转载自:众成翻译 译者:loveky 链接:http://www.zcfy.cc/article/465 原文:http://rainsoft.io/javascript-hoisting-in-details/?utm_source=javascriptweekly&utm_medium=email变量在程序中随处可见。它们是一些始终在

2017-09-05 23:25:04 300

转载 ASP.NET 页生命周期

一.什么是Asp.Net页面生命周期当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页面处理程序类后,ASP.NET 运行时将调用处理程序的 ProcessRequest 方法来处理请求,来创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象

2017-05-20 14:49:52 694

原创 学习笔记——适配器模式

1、概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式让原本接口不兼容的类合作无间。2、结构适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。由于类适配器模式需要用到多继承,而java并不支持多继承,下面主要说下对象适配器模式。对象适配器的类图:

2017-01-20 00:26:59 375

转载 Java异常处理机制

异常机制已经成为判断一门编程语言是否成熟的标准,异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。一、Java异常Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。try:它里面放置可能引发异常的代码catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catc

2016-10-07 19:19:05 477

转载 Spring事物管理——五种配置方法

前段时间对spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。D

2016-10-04 02:08:32 4491

转载 Spring事物管理——属性分析

一、事务隔离级别隔离级别是指若干个并发的事务之间的隔离程度。TransactionDefinition 接口中定义了五个表示隔离级别的常量: 名称 含义 TransactionDefinition.ISOLATION_DEFAULT 这是默认值,表示使用底层数据库的默认隔离级别。对大部分数据库而言,通常这值就是TransactionDefinition.ISOLATION_READ_C

2016-10-04 01:53:30 360

转载 Java垃圾回收GC(Garbage Collection)

1、垃圾收集的算法分析Java语言规范没有明确地说明JVM使用哪种垃圾回收算法,但是任何一种垃圾回收算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用。大多数垃圾回收算法使用了根集(root set)这个概念;所谓根集就是正在执行的Java程序可以访问的引用变量的集合(包括局部变量、参数、类变量),程序可以使用引用变量访问对象的属性和调用

2016-09-08 17:05:16 1063

转载 MyBatis配置详解

在Eclipse中,将鼠标放在根节点上后,可以看到配置文件中的主要配置项,如下图所示: 这些项分别是:properties、settings、typeAliases、typeHandlers、plugins、environments、mappers。注意:这些配置项必须按照先后顺序进行配置。一、配置项介绍properties:用于配置属性信息。settings:用于配置MyBatis的运行时方

2016-09-01 17:25:24 9011

转载 MyBatis——动态SQL讲解

MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。 MyBatis中用于实现动态SQL的元素主要有:ifwheresetchoose(when,otherwise)trimforeach1、if标签if标签可用在许多类型的sql语句中,我们以查询为例。首先看一个很普通的查询:<!-- 查询学生list,like姓名 --> <sel

2016-09-01 11:25:09 19783 4

原创 mybatis——select、insert、update、delete

一、select<!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX,

2016-08-31 16:22:12 95890 4

转载 ResultMap详解

前言MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而resultMap就是结果集映射的配置标签了。 在深入ResultMap标签前,我们需要了解从SQL查询结果集到JavaBean或POJO实体的过程。从SQL查询结果到领域模型实体 通过JDBC查询得到

2016-08-31 12:42:26 144149 13

原创 springmvc 使用JSR-303进行数据校验

项目中,通常使用较多的是前端的校验,比如页面中js校验以及form表单使用bootstrap校验。然而对于安全要求较高点建议在服务端进行校验。服务端校验:控制层controller:校验页面请求的参数的合法性。在服务端控制层controller校验,不区分客户端类型。业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使用的参数。持久层dao:一般是不校验的。环

2016-08-30 12:33:08 8180

转载 SpringMVC 参数绑定

参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A、处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable; B、处理request header部分的注解: @RequestHeader, @CookieValue; C、处理request

2016-08-26 13:06:49 2027

转载 深入了解Spring AOP

分布于应用中多处的功能称为横切关注点,通过这些横切关注点在概念上是与应用的业务逻辑相分离的,但其代码往往直接嵌入在应用的业务逻辑之中。将这些横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的。什么是面向切面编程 切面实现了横切关注点的模块化 面向切面编程中,通过声明的方式定义通用功能(安全、事务等)以何种方式在何处应用,而无需修改受影响的类(CourseService、Student

2016-08-25 15:53:46 771

转载 最小化springXML 配置

Spring提供了几种技巧,可以减少XML的配置数量:自动装配(autowiring):可以减少<property>和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系;自动检测(autodiscovery):Spring能够自动识别哪些类需要被装配成Spring Bean,从而减少对<bean>的使用。自动装配Bean属性4种自动装配

2016-08-25 11:08:44 1278

转载 spring学习——装配Bean

创建应用对象之间协作关系的行为通常被称作装配(Wiring),这也是依赖注入的本质。声明Bean创建Spring配置 Spring容器提供了两种配置Bean的方式,其一是使用XML文件作为配置文件,其二是基于Java注解的配置方式。 以下是一个典型的Spring XML配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:/

2016-08-25 00:25:49 782 1

原创 HashMap、HashSet和HashTable详解

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap、Ha

2016-08-22 15:11:58 12541

原创 java内存分配

1、JVM简介Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改

2016-08-21 16:29:29 1841

原创 Servlet生命周期

Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应。常用的tomcat、jboss、weblogic都是Servlet容器)中的,其生命周期是由容器来管理。Servlet的生命周期通过java.servlet.Servlet接口中的init()、ser

2016-08-07 23:20:34 667 5

转载 DispatcherServlet详解

一、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:文件上传解析,如果请求类型是multipart将通过Mu

2016-08-07 20:04:05 14615 5

原创 android动画---ObjectAnimator基本使用

一、使用objectAnimator实现下图的效果(不会做gif图)点击前: 点击后 方法介绍:public static ObjectAnimator ofFloat(Object target, String propertyName, float... values) 第一个参数用于指定这个动画要操作的是哪个控件 第二个参数用于指定这个动画要操作这个控件的哪个属性 第三个参数是

2016-05-06 21:55:55 4324

转载 一个经典例子让你彻彻底底理解java回调机制

转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类

2016-04-27 15:36:35 343

原创 JAVA设计模式之单例模式

概念:   Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿汉式单例。   单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。   单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话

2016-04-27 15:26:41 341

原创 mac上使用genymotion

第一次使用mac,花了几天时间才把Android的开发环境给装好,整个人是崩溃的。现在我说说在Androidstudio上装genymotion。1.安装genymotion应用程序下载地址https://www.genymotion.com/#!/download 需要翻墙才能下载,CSDN上也有资源2.安装VirtualBoxVirtualBox号称是最强的免费虚拟机软件,genymotion

2016-04-18 23:06:54 12712

转载 设计模式六大原则(6):开闭原则

定义: Softeware entities like classes,modules and functions should be open for extension but closed for modifications. 翻译出来就是:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。遵循开闭原则设计出的模块具有两个主要特征:对于扩展是开放的(Open for extensio

2016-04-12 12:07:52 391

转载 设计模式六大原则(5):迪米特法则

定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样编程才能做到低耦合呢?那正是迪米特法则要去

2016-04-11 22:36:03 333

转载 设计模式六大原则(4):接口隔离原则

定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则: 这个图的意思是:类A依赖接口I

2016-04-11 22:17:31 394

转载 设计模式六大原则(3):依赖倒置原则

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。PS:抽象:即抽象类或接口,两者是不能够实例化的。    细节:即具体的实现类,实现接口或者继承抽象类所产生的类,两者可以通过关键字new直接被实例化。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层

2016-04-11 17:04:41 363

转载 设计模式六大原则(2):里氏替换原则

肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义

2016-04-11 16:39:24 333

转载 设计模式六大原则(1):单一职责原则

定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责

2016-04-11 16:09:10 328

转载 【总结】String in Java

作者:每次上网冲杯Java时,都能看到关于String无休无止的争论。还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了。嘿嘿….众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通的类哦!!!【镜头1】 String对象的创建 1、关于类对象的创建,很普通的一种方式就是利用构

2016-03-26 00:17:40 1004

转载 Android LayoutInflater深度解析

一、LayoutInflater的inflate方法首先我们先来看一下 inflate 这个方法的参数的两个重载的方法:inflate(int layoutID, ViewGroup root)inflate(int layoutID, ViewGroup root,boolean attachToRoot )那么我们在使用时应该怎么选择呢?inflate(layoutID,null) 注意

2016-03-16 23:34:58 374

原创 具有弹性的ListView

Android默认的ListView在滚动到顶端或者底端的时候,并没有很好的提示。不过我们也可以通过重写ListView来实现这个功能。@Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, in

2016-03-16 23:05:42 635

转载 java 同步机制

为了解决多线程中的对同一变量的访问冲突。原子性:具有原子性的操作被称为原子操作。原子操作在操作完毕之前不会线程调度器中断。 可见性:可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。java同步机制有4种实现方式:1.ThreadLocal 2. volatile 3. synchronized 4. wait()与

2016-03-15 12:12:53 706

原创 ListView动态删除和添加editview

需求:在运行时动态添加ListView的editview,并将输入的数据存放到相应的数组中,也可以删除某些你不需要的项。一开始通过addTextChangedListener来监听editview上数据的变化,不过因为多个editview同时监听出现了混乱,导致了删除editview上数据错位。之后通过 setOnFocusChangeListener来监听editview焦点的变化,完美的解决了数

2016-03-15 10:59:08 1718

Android实现异步加载图片

这是用于实现异步加载图片的demo,很适合初学者学习。

2015-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除