
java
文章平均质量分 62
一只特立独行在风口上的猫
这个作者很懒,什么都没留下…
展开
-
java中只有值传递,没有引用传递
看到很多网站上(包括一些知名的)原创 2014-11-22 21:17:45 · 716 阅读 · 0 评论 -
Android源码分析之SharedPreferences
文章转载自:http://www.it165.net/pro/html/201406/15827.html在Android的日常开发中,相信大家都用过SharedPreferences来保存用户的某些settings值。Shared Preferences以键值对的形式存储私有的原生类型数据,这里的私有的是指只对你自己的app可见的,也就是说别的app是无法访问到的。客户端代码为了使用转载 2016-06-01 19:10:54 · 1555 阅读 · 0 评论 -
栈+哈希表(或者稀疏数组)解决安卓购物车新添加货物置顶的问题
最近在做仿淘宝购物的APP(目前已经完成,有时间就把这个项目写出来),在做购物车这一块的时候,我是把数据先转化为json数据,然后通过sharedpreferences来把数据保存到本地内存中(至少用户没有登录的情况下可以这么做),我们知道sharedpreferences是通过键值对来存储数据的(不清楚的同学请移步Android源代码分析之sharedpreferences),key值可以随便给原创 2016-06-01 22:06:21 · 1626 阅读 · 0 评论 -
Java的内存泄漏
Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。问题的提出Jav转载 2016-06-12 16:26:05 · 608 阅读 · 0 评论 -
Hessian源码浅析-HessianProxy
转载自:http://blog.youkuaiyun.com/java2000_wl/article/details/7560393Hessian客户端主要是通过proxy代理来实现 当客户端调用远程接口方法时 会被HessianProxy 代理 HessianProxy invoke方法主要做以下工作1.把调用的 方法名称 参数 序列化2.通过HttpURLConnection向服务端发送转载 2016-07-06 10:04:03 · 787 阅读 · 0 评论 -
JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
转载自:http://blog.youkuaiyun.com/limuzi13/article/details/44968819首先这是现在最基本的分层方式,结合了SSH架构。modle层就是对应的数据库表的实体类。Dao层是使用了Hibernate连接数据库、操作数据库(增删改查)。Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断)。Action层:引用对应的S转载 2016-07-07 19:42:33 · 1722 阅读 · 0 评论 -
java备份以及还原mysql数据库
参考:http://xp84012493.iteye.com/blog/199290[java] view plain copy java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOu转载 2016-11-23 17:28:54 · 808 阅读 · 0 评论 -
高并发下的线程安全实现——互斥同步
高并发下的线程安全实现——互斥同步好久没来csdn上写博客了,去年(16年)来到杭州后,忙得沉淀的时间都没有了,这段时间空闲下来,慢慢补上! 线程允许多个活动同时进行,并发下有很多东西可能出错,比如数据错误,程序运行异常。很多时候这些错误以及异常在测试中都很难重现,他们可能是间歇性的,且与时间相关,程序的行为在不同的VM上可能表现根本不同。所以设计一个线程安全的程序就显得尤为重要,尤其是在高并发环原创 2017-07-25 10:48:17 · 2698 阅读 · 0 评论 -
高并发下的线程安全实现——线程局部变量
今天我们来讨论另外一种线程安全的实现方法。如果说互斥同步是多线程间的数据共享,那么线程局部变量就是线程间的数据隔离。ThreadLocal把共享数据的可见范围限制在同一个线程之内,这样无须同步也能实现线程之间数据不争用的问题。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本原创 2017-07-25 10:54:00 · 10048 阅读 · 1 评论 -
HashMap的两种遍历方式
在项目中涉及到HashMap遍历的问题,项目是用于商品订单支付。支付方式有百度支付,微信支付以及支付宝支付,如图所示:现在把这三种支付方式的标识以及RadioButton存放到HashMap中(HashMapchannels= newHashMap3)),实现的功能是:如果选择一种支付方式,那么其他的支付方式就要设置为非选中状态,并且当前的支付方式状态是之前状态原创 2016-05-16 18:20:05 · 764 阅读 · 0 评论 -
java中如何高效判断两个容器是否有相同元素(时间复杂度为O(1))
很多时候我们需要知道两个容器是否存在相同的元素,这里以电商网站中的优惠活动为例。比如我们想知道一个商品是否参与了满件折扣活动(几件几折),已知一个商品可能会参与多种优惠活动,比如满减活动(满多少减多少)、临期降价等优惠活动。我们知道每一种优惠活动都可以创建一张优惠券,只是有些优惠券是直接和商品挂钩的,有些优惠券必须要用户领取了才能参与活动,这里我们只讨论直接和商品挂钩的优惠券。上面的问题就可以这么理原创 2017-08-27 22:13:50 · 3372 阅读 · 0 评论 -
OKHttp源码解析
转载自http://frodoking.github.io/2015/03/12/android-okhttp/Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接池,已足够满足我们各种HTTP请求的需求。但更高效的使用HTTP可以让您的应用运行更快转载 2016-05-30 11:28:34 · 2190 阅读 · 0 评论 -
设计模式之单例模式
单例模式:用来创建独一无二的,只能有一个实例的对象的入场券。包括的角色如下:单例角色(Singleton):定义一个GetInstance方法,允许客户访问它的唯一实例。GetInstance是一个静态方法,主要负责创建自己的唯一实例。UML图如下:代码如下:public static class Singleton{ private static Si原创 2016-03-04 15:46:25 · 454 阅读 · 0 评论 -
Android Handler中的handleMessage方法和post方法之源码剖析
我们都知道,在子线程中进行UI操作(更新UI控件)包括以下四种方法:1.Handler的handlerMessage()方法。2.Handler的post()方法。3.View的post()方法。4.Activity的runOnUiThread()方法。本文重点分析前两种方法,后面两种稍微说一下。在说第一个方法之前,让我们先来看张图片(图片来源于http://my.oschin原创 2016-04-16 01:38:43 · 8908 阅读 · 5 评论 -
接口和抽象类的区别
转载地址:点击打开链接接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类转载 2015-03-10 15:01:44 · 560 阅读 · 0 评论 -
Clone Graph
Clone an undirected graph(无向图). Each node in the graph contains a label and a list of its neighbors.OJ’s undirected graph serialization: Nodes are labeled uniquely.We use # as a separator for each nod原创 2015-11-16 22:58:18 · 596 阅读 · 0 评论 -
设计模式之适配器模式
适配器分为两种,一种是对象适配器,另一种是类适配器,由于对象适配器使用的是组合,而类适配器使用的是继承的方式来实现两个类之间的转换的。所以根据设计模式的代码设计原则,这里只说下对象适配器,需要的元素如下:1.目标(Target):客户所期待的接口,目标可以使具体的或者抽象的类,也可以是接口。2.适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。3.被适配者(原创 2016-03-02 15:59:56 · 529 阅读 · 0 评论 -
设计模式之命令模式
命令模式:先看个栗子,假如你老板命令你完成一个OA项目是一个命令,接着看看其特点:1、在上面的命令中,命令的执行者肯定是聪明的你了。具体的执行方法,可能是通过vs实现,或者是通过eclipse实现,由此看来:命令要有个命令的执行者(Invoker),执行者有个执行的动作(execute),还要有个命令的执行方法(Receiver)。2、命令的发出者很明显是老板,老板还有个发出方法,原创 2016-03-02 11:57:53 · 509 阅读 · 0 评论 -
设计模式之组合模式
组合模式原理:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式包括的成员角色有:树干(Component):组合中的对象声明接口,在适当情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component的子部件。树枝(Composite):定义有枝节点行为,用来存储子部件,在Component接口中实现与子部原创 2016-03-03 11:29:14 · 926 阅读 · 0 评论 -
设计模式之代理模式
代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问。它包括下面这些角色:1.抽象对象角色(Subject):定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。2.目标对象角色(RealSubject):定义Proxy所代表的真实实体。3.代理对象角色(Proxy):保存一个引用使得代理可以访问实体,并提原创 2016-03-03 16:49:54 · 569 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式理论:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。blabla......说了这么多,然而并不知道怎么实现。好!我们来想想报驾校的情形吧。很多人去报驾校,这么多人,每个人都不一样,但他们有一点是相同的,都是为了拿驾照才去报的名,也就是说他们目标一致。而作为驾校需要做的事情就是准备一张报名表格,记录报名者的信息和联系方式,然后通知他原创 2016-02-27 10:56:48 · 607 阅读 · 0 评论 -
设计模式之简单工厂模式
简单工厂模式可以把中间的处理过程看做是一个工厂,这个工厂可以根据你给的原料来制造相应的产品。比如我放进一头猪,就产出一锅美味的猪肉出来,放进去一头牛的时候就产出一盘秀玉牛扒出来,放进一头羊的时候就产出一只烤全羊出来,其实这中间的工厂程序我们可以把工厂想象成一个厂房里面有一跟巨大的管子,这根管子又包含了很多条加工型的管道,每一条管道负责产出不同的产品,这就是简单工厂模式。简单工厂模式包括三个要素,第原创 2016-02-21 20:51:00 · 516 阅读 · 0 评论 -
ServerSocket用法详解
在客户/服务器通信模式中,服务器端需要创建监听特定端口的ServerSocket,ServerSocket负责接收客户连接请求。本章首先介绍ServerSocket类的各个构造方法,以及成员方法的用法,接着介绍服务器如何用多线程来处理与多个客户的通信任务。本章提供线程池的一种实现方式。线程池包括一个工作队列和若干工作线程。服务器程序向工作队列中加入与客户通信的任务,工作线程不断从工作队列中取出转载 2016-03-18 12:55:01 · 84916 阅读 · 10 评论 -
设计模式之策略模式理解
不想打字了,就把以前做的笔记直接上传了,字丑勿怪!但是,针对接口/超类型编程做法会如下:Animal animal = new Dog();animal.makeSound();最后得到的结果会是狗的叫声。原创 2016-02-22 00:00:47 · 490 阅读 · 0 评论 -
Android RecyclerView 使用完全解析 体验艺术般的控件
文章转载自http://blog.youkuaiyun.com/lmj623565791/article/details/45059587; 本文出自:【张鸿洋的博客】概述RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:转载 2016-04-01 10:04:01 · 626 阅读 · 0 评论 -
设计模式之访问者模式
访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。它包括以下角色:1.访问者角色(Visitor):为该对象结构中ConcreteElement的每一个类声明一个Visit方法。2.具体访问者角色(ConcreteVisitor):实现每个由Visitor声明的操作。每个操作实现算法的一部分。3.元素原创 2016-03-04 15:04:31 · 564 阅读 · 0 评论 -
java服务端知识点总结
临近年尾了,很多人也计划着跳槽了,在跳槽之前多准备些东西总是没有坏处的。其实面试的过程不仅仅是一次技能的考核,我们也可以在里面学到很多的东西,让我们不断的进步。这里我总结了java服务端的基础知识点,Xmind文件我已经上传到了github上了,地址是:https://github.com/Ninghan/java-,欢迎大家在评论区补充。原创 2017-11-07 13:18:34 · 1170 阅读 · 1 评论