- 博客(396)
- 资源 (21)
- 收藏
- 关注
转载 泛型超详细解读(二):super和extend
擦除要理解super和 extends的边界问题,首先要理解消除。先看一个有趣的例子:结果如下:true明明a 是 Integer 的,b是 String 的,为什么打印出他们是同一种类型呢?因为在泛型代码内部,无法获取任何有关泛型参数类型的任何信息!,Java的泛型就是使用擦除来实现的,当你在使用泛型
2016-10-23 17:08:35 1025
转载 怎样优化电商购物流程?
购物流程不仅影响用户的购物体验,更影响平台的销售,其重要性可见一斑。在电商网站中,我们可以简单地将购物流程简化为一个漏斗模型,以此分为五个步骤:第一步:商品资源信息露出,包括活动页面商品露出、列表页、搜索框、店铺/商品收藏、我的关注、我的足迹等等,用户可以通过这些资源;第二步:三级页面,包括列表页与搜索页,比如搜索“连衣裙”,页面展示不同款式不同价位连衣裙的那个页面
2016-10-14 11:43:48 3532
转载 B2C表单和购物流程设计要点
表单设计的要点1. 概述表单对客户来说是很烦人的,但它对在线处理很重要,让填写表单的过程简单、快速,才能让网站快速获取潜在的利益。2. 访客的问题你作为访客,在支付中一般会有哪些问题?当访客遇到表单时,他们的问题集中在外观、所需信息的合理性,以及安全性这几个方面。在对表单快速瞟一眼以后,他们就会思考以下几个问题:1、我要从哪开始填?2
2016-10-14 11:29:39 857
转载 电子商务网站的购物流程设计(简述)
电子商务网站对于有过购物经历的人来说都不陌生,但你在网上有过购物经历不代表你对网购的模式和类型了解,所以这里我们的补充下业务知识,请看维基百科这里的介绍《电子商务经营模式》。国内常规的网购代表性网站如下:网络书店(当当、卓越、蔚蓝) 收藏和艺术品拍卖(孔夫子、赵涌) 综合销售平台(淘宝、eBay) 网络订餐(饭桶) …… 我们这次书友会针对以上类型的网购
2016-10-14 11:06:29 12190
转载 差异入微——浅析电商购物流程设计
畅游在各大电商网站的你,在网购时不知曾否察觉到有些小不同?排开具体的商品内容、视觉样式,回忆下那些我们熟悉的商品页面… 当然,这里并不是玩大家来找茬游戏的,需要火眼金睛审视于细枝末叶。我们可以从界面的细节去体验,甚至还可以眯起眼去发现点什么。亲,你有没有想起有哪里不同?好吧,揭晓答案:不同点在于商品详情页面的购买按钮。抱着打破沙锅问到底的精神去逛了逛其他的电商网站,不经发现这也
2016-10-14 10:49:49 721
原创 ArrayList根据指定条件移除元素和去重(java)
代码和思路/** * ArrayList根据指定条件移除元素 * ArrayList移除重复元素 */package com.oj.oppo;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedHashSet;import j
2016-10-11 22:02:30 5655
原创 动态规划-金额为Sum的所有纸(硬)币组合
问题给定一个数值sum,假设我们有m种不同类型的硬币{V1, V2, ..., Vm},如果要组合成sum,求所有可能的组合数。经典面试题[华为面试题] 1分2分5分的硬币三种,组合成1角,共有多少种组合?[创新工厂笔试题] 有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,有多少中组合可以组成n分钱?
2016-09-17 22:03:31 6328 1
转载 finalize()方法对垃圾回收的影响
概述Java中提供了一个类似C++析构函数的机制: finalize()方法,该函数允许子类重载,用于在对象被回收是释放资源。但是一般情况下,尽量不要使用finalize函数进行资源的释放,原因主要有一下几点:finalize函数调用时,有可能导致对象复活。finalize函数执行的时间没有保障,他完全由GC线程决定,正常情况下,若不发生gc,则finalize
2016-09-17 14:56:47 910
转载 Android增量升级方案
原文地址:http://blog.csdn.net/u013022222/article/details/52268526
2016-09-13 09:10:27 354
转载 java自动装箱拆箱深入剖析
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱,解包装称为拆箱)这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:
2016-09-09 17:20:15 439
原创 Android--ART模式
ART模式 ART模式英文全称为:Android runtime,谷歌Android 4.4系统新增的一种应用运行模式,与传统的Dalvik模式不同,ART模式可以实现更为流畅的安卓系统体验,对于大家来说,只要明白ART模式可让系统体验更加流畅,不过只有在安卓4.4以上系统中采用此功能。Dalvik模式如果要解释清楚什么是ART模式,我们就需要从Android系
2016-09-09 11:49:46 755
转载 Android热修复技术选型——三大流派解析
2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到底采用哪种方案,是开发者比较头疼的问题。本文希望通过介绍QQ空间补丁、Tinker以及基于AndFix的阿里百川HotFix技术的原理分析和横向比较,帮助开发者更深入了解热修复方案。技术背景一
2016-09-09 11:08:36 515
转载 深度剖析ConcurrentHashMap
还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比HashTable性能更
2016-09-09 10:17:01 447
转载 Java直接内存和堆内存的性能比较
背景知识在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数
2016-09-08 11:17:06 2614
转载 Android 利用 APT 技术在编译期生成代码
APT(Annotation Processing Tool 的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代码输入。现在有很多主流库都用上了 APT,比如 Dagger2, ButterKnife, EventBus3 等,我们要紧跟潮流,与时俱进呐! (ง •̀_•́)ง下面通过一个简单的 View 注入项目 ViewFinder 来介绍 APT 相关
2016-09-08 11:11:39 710
转载 Android 退出activity 的方式总结
在android中使用:[activityname].this.finish(); 只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:一 使用killProcess()函数,首先获取当前进程的id,然后杀死该进程:android.os.Process.killP
2016-09-06 15:32:10 3762
原创 幸运数字 4和7
题目描述4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字。前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第K个幸运数。输入第一行一个数字T(T输出每组数据输出一行,第K个幸运数。样例输入351001000000000样例输出
2016-09-05 21:31:01 12467 2
原创 生成高度最小的二叉查找树--CreatMinimalBST
题目代码public class CreatMinimalBST { /** * */ public static TreeNode creatMinimalBST(int arr[]) { if (arr == null || arr.length == 0) { return null; } int start = 0; int end =
2016-09-03 16:40:04 926
原创 bfs/dfs的应用--countComponents
题目你是自己所在州交通部门的首席技术专家。有许多城市通过公路网络连通,即交通可以沿任一方向流动。一些“城市组”可能会与其他断开,形成集群。一个集群是一组彼此间连通且与其他部分相断开的城市组。假设一条路最多可连接两个给定的城市。给定这样一个城市和公路网络,求内部连通城市集群总数。类Count_Components的方法countComponents的输入包括一个二维网络,且在第i个城
2016-09-01 15:32:21 468
转载 Android编程之SparseArray<E>详解
SparseArray源码解析最近编程时,发现一个针对HashMap的一个提示:翻译过来就是:用SparseArray来代替会有更好性能。那我们就来看看源码中SparseArray到底做了哪些事情:一、构造从构造方法我们可以看出,它和一般的List一样,可以预先设置容器大小,默认的大小是10:[java] view plain copy
2016-09-01 10:15:13 286
转载 360面试总结(Android)
这次360面试,总共面试了两轮,都是视频面试。闲谈:从大二暑假的时候开始,一直想进腾讯或者阿里,在招实习生的时候,最终遗憾落选。暑假的时候为了好好准备校招,我放弃了去步步高实习的机会,继续在原来的一家公司实习。在暑假的时候找师兄师姐内推了腾讯,阿里,最终都没有通过简历筛选,没有面试。说实话,刚开始内心是挺失落的,挺难受的,但经过一两天的调整,我也意识到自己的
2016-09-01 09:57:47 1844
转载 为什么你要使用java8
java8优势相信对于java8这个字眼大家都已经不陌生了,但是对于java8的了解和使用很多人还不是很清楚,甚至很多人还在犹豫着要不要用java8,那么我写这篇文章的目的就是告诉你,你一定要使用java8以及你为什么要使用java8.lambda在Java7以及之前的代码里,为了实现带一个方法的接口,往往需要定义一个匿名类并复写接口方法,代码显得很臃肿。比如我们用来给数组排序的C
2016-08-29 19:22:34 2146 2
转载 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier用法 三.Semaphore用法 一.CountDownLatch用法 Coun
2016-08-23 21:22:53 517
转载 几种线程池的实现算法分析
1. 前言在阅读研究线程池的源码之前,一直感觉线程池是一个框架中最高深的技术。研究后才发现,线程池的实现是如此精巧。本文从技术角度分析了线程池的本质原理和组成,同时分析了JDK、Jetty6、Jetty8、Tomcat的源码实现,对于想了解线程池本质、更好的使用线程池或者定制实现自己的线程池的业务场景具有一定指导意义。2. 使用线程池的意义复用:类似WEB服务器等系统,长期来看内部
2016-08-22 16:49:41 340
转载 android基础-Apk打包
此文来源于《Android软件安全与逆向分析》一、打包资料文件,生成R.java文件。二、处理aidl文件,生成相应的Java文件。三、编译工程源代码,生成相应的class文件。四、转换所有的class文件,生成classes.dex文件。五、打包生成APK文件。 具体的过如图: 在这给自己留几个问题:1.Android系统启动过程2.Dalvi
2016-08-20 09:36:30 273
转载 Android应用程序(APK)的编译打包过程
在编写android的时候,写好java代码后,eclipse直接帮我们生成了可安装的apk,但有时需要自动化的去生成个性化apk的时候,我们就需要编写脚本或代码来自动生成一个apk,在生成apk之前必须了解下android编译apk的过程;现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统、自动生成发布文件等等。这些都
2016-08-20 08:49:39 582
转载 Android平台的崩溃捕获机制及实现
作者简介:贾志凯,Testin崩溃分析(http://apm.testin.cn/)项目研发工程师,负责客户端SDK相关技术研发工作。5年移动互联网开发经验,曾任职于中科院、Symantec、Opera,对移动App的测试、分析有较深入的研究。Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象。而且,往往都是程序发布之后在用户端出
2016-08-20 08:38:53 630
转载 android程序自动化生成apk的过程
在编写android的时候,写好java代码后,eclipse直接帮我们生成了可安装的apk,但有时需要自动化的去生成个性化apk的时候,我们就需要编写脚本或代码来自动生成一个apk,在生成apk之前必须了解下android编译apk的过程;现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统、自动生成发布文件等等。这些都需要我们对And
2016-08-19 22:02:37 488
转载 Git 命令总结
ADD AND COMMIT1. git init 初始化一个 Git仓库(repository),即把当前所在目录变成 Git 可以管理的仓库。2. git add 文件把文件添加到暂存区(stage),可被 track 追踪纪录下来。可多次使用来添加多个文件。3. git add * 添加所有修改到暂存区,效果同git add all,待验证。...
2016-08-18 21:39:58 390
转载 Summary for LeetCode 2Sum, 3Sum, 4Sum, K Sum
Summary for LeetCode 2Sum, 3Sum, 4Sum, K SumOverviewI summarize various solutions (sort, hash, etc) for the leetcode 2Sum, 3Sum, 4Sum problems as well as how to optimize and some important r
2016-08-17 11:19:04 615
转载 Android网络请求心路历程
网络请求是android客户端很重要的部分。下面从入门级开始介绍下自己Android网络请求的实践历程。希望能给刚接触Android网络部分的朋友一些帮助。本文包含:HTTP请求&响应Get&PostHttpClient & HttpURLConnection同步&异步HTTP缓存机制Volley&OkHttpRetrofit&RestAPI网络图片加载优化Fresco&Glide图片
2016-08-17 10:01:08 499
转载 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
前言:做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结, 本人觉得这些问题都可以使用一个通用的K sum求和问题加以概括消化, 这里我们先直接给出K Sum的问题描述和算法(递归解法), 然后将这个一般性的方法套用到具体的K, 比如leet
2016-08-15 11:24:17 584 1
转载 Android low memory killer 详解
Linux操作系统的传统理念就是内存用的越多越好,尽可能拿来用,既然被尽量的使用,自然应该有清除机制。 Android以Linux为基础,自然部分继承了这个特性。 Android在内存管理上与linux有些小的区别。 其中一个就是引入了Low memory killer .1,引入原因 Android是一个多任务系统
2016-08-13 16:41:32 935
转载 Android进程保活招式大全--转自腾讯Bugly
作者:腾讯——张兴华目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保
2016-08-12 09:48:11 2895
转载 OKHttp源码解析
Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接池,已足够满足我们各种HTTP请求的需求。但更高效的使用HTTP可以让您的应用运行更快、更节省流量。而OkHttp库就是为此而生。OkHttp是一个高效的HTTP库:支持 SPDY
2016-08-07 21:42:57 317
转载 快速排序 优化 详细分析
看了编程珠玑Programming Perls第11章关于快速排序的讨论,发现自己长年用库函数,已经忘了快排怎么写。于是整理下思路和资料,把至今所了解的快排的方方面面记录与此。 纲要算法描述时间复杂度分析具体实现细节划分选取枢纽元固定位置随机选取三数取中分割单向扫描双向扫描Hoare的双向扫描改进的双向扫描双向扫描的其他问题分治
2016-08-05 10:49:33 535
转载 快速排序及优化
quicksort可以说是应用最广泛的排序算法之一,它的基本思想是分治法,选择一个pivot(中轴点),将小于pivot放在左边,将大于pivot放在右边,针对左右两个子序列重复此过程,直到序列为空或者只有一个元素。这篇blog主要目的是关注quicksort可能的改进方法,并对这些改进方法做评测。其目的是为了理解Arrays.sort(int [ ]a)的实现。实现本
2016-08-05 10:47:27 367
转载 360职位解忧铺 - 安卓开发的神奇事儿~
原文地址:http://mp.weixin.qq.com/s?__biz=MzA4NjAwNTE5MA==&mid=2651244378&idx=2&sn=b42318d2f4a5a5ba23115f2d695e0fd2&scene=0#wechat_redirect
2016-08-03 10:43:10 584
转载 依赖注入原理
0. 前言在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。本文主要介绍依赖注入原理和常见的实现方式,重点在于介绍这种年轻的设计模式的适用场景及优势。1. 为什么需要依赖注入控制反转用于解耦,解的究竟是谁和谁的耦?这是我在最初了解依赖注入时候产生的第一个问题。下面我引
2016-07-31 21:49:16 420
JPEG Resizer 2.1 绿色 免安装 汉化修正版
2016-05-18
java 拍卖系统 图形界面
2012-03-09
基数排序 数据结构 c语言
2011-07-02
会议记录管理系统 C++课程设计
2011-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人