- 博客(29)
- 资源 (4)
- 收藏
- 关注
原创 BatchCollector 自定义微批处理工具
需求在处理大量数据的,希望每5000条保存一次Elasticsearch或者MongoDB。处理方法BatchCollector实现package com.oppo.ait.business.utils;import com.google.common.base.Preconditions;import java.util.ArrayList;import java.util...
2019-04-19 22:22:16
234
原创 MapStruct 用于DTO等代码解耦
知识点MapStruct 是一款基于注解的类字段映射工具,能够自动生成类字段映射的代码。可以自动或手动实现复杂的字段映射,深嵌套也能自动适配。需求业务对外提供Dubbo接口的时候,通常通过DTO与外部进行数据交换。要实现类的深拷贝非常麻烦,基于序列化的耗时,自己写的太麻烦。处理方法PO 和 DTO 代码@Datapublic class AnProjectInfoPo { ...
2019-04-19 20:35:12
284
原创 ThreadLocal Vs InheritableThreadLocal Vs TransmittableThreadLocal
需求:页面按钮触发一个HTTP操作,该操作包含一个不需要用户的等待结果的耗时操作。所以采用了spring mvc 提供的==@Async==public class UserContextUtils { private static ThreadLocal<UserDTO> threadLocal = new TransmittableThreadLocal<>...
2019-04-19 19:01:37
242
1
原创 Hive动态分区(Dynamic Partition)导致的内存问题
Hive动态分区(Dynamic Partition)导致的内存问题默认hive.optimize.sort.dynamic.partition是false,hive进行动态分区的时候,可以看见一直在 FileSinkOperator: New Final Path导致内存中保存太多句柄和数据,导致OOM或者内存超被Yarn Kill。开启下面的参数可以缓解内存压力。hive.optimize...
2019-04-17 17:16:16
4697
转载 设计模式—工厂模式
设计模式—工厂模式工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品;这三种模式从上到下逐步抽象,并且更具一般性。GOF在《设计模式》一书中
2013-09-25 10:57:10
241
转载 Eclipse快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对
2013-03-18 10:52:17
274
转载 android的多线程详解
使用线程处理 耗时比较长的“业务” 有以下几种方式: 1)Activity.runOnUiThread(Runnable) 2)View.post(Runnable) ;View.postDelay(Runnable , long) 3)Handler 4)AsyncTask Android是单线程模型,这意味着Android UI操
2013-03-15 11:00:15
359
转载 android的消息处理机制(图+源码分析)——Looper,Handler,Message
我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,
2013-03-12 15:19:11
306
转载 android MediaPlayer API
MediaPlayer类可用于控制音频/视频文件或流的播放。关于如何使用这个类的方法还可以阅读VideoView类的文档。1.状态图对播放音频/视频文件和流的控制是通过一个状态机来管理的。下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态。椭圆代表MediaPlayer对象可能驻留的状态。弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制
2013-03-11 15:22:58
457
转载 Timer与TimerTask的用法
Java2的开发包中提供了一种很使用的线程功能:提前安排将来某段时间执行某任务Timer ,TimerTask。你可以使用这些类创建后台进程,让其在等待一段规定的时间后执行,或者让其没隔一段时间执行。你也可以用Thread来完成,但利用Timer与TimerTask显然省事不少。 TimerTask实现了Runnable接口,待执行的任务置于run()中。Timer是一个安排TimerTas
2013-03-11 11:13:42
443
转载 android 代码布局
今天主要将前几天做的验证码界面改变成代码布局,学习一下用代码布局替代xml布局的不同之处。首先,代码布局需要我们利用代码来完成xml文件的功能,所以我们需要创建一个类,并继承布局类(FrameLayout,LinearLayout,RelativeLayout,TableLayout,AbsoluteLayout)这其中之一,具体继承的类要看你的布局要实现的效果,一般情况下,继承线性布局比
2013-03-07 14:15:08
500
转载 onTouch()和onTouchEvent()的区别
Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等。这些Gesture会使用户体验大大提升。Android中的Gesture识别(detector)是通过GestureDetector.OnGestureListener接口实现的。首先,Android事件处理机制是基于Listener实
2013-03-06 15:56:31
277
转载 Android - LayoutInflater 的使用
LayoutInflater is used to instantiate layout XML file into its corresponding View objects. It is never be used directly -- use getLayoutInflater()or getSystemService(String) to retrieve a standard L
2013-03-06 14:04:27
276
转载 android中LayoutInflater的3种使用以及getSystemService的API
Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。 LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。(0)她可以有很多地方可以
2013-03-01 15:34:31
179
转载 BaseAdapter中重写getview的心得以及convertView回收的机制
主布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"
2013-03-01 13:52:32
306
转载 convertView&setTag方法的一点理解
前言首先我们要知道setTag方法是干什么的,SDK解释为TagsUnlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information that can be associated with a view. They are most often used
2013-03-01 11:14:08
151
转载 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解A:透明度R:红色G:绿B:蓝Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位 Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点
2013-03-01 10:31:44
203
转载 Java命名规范
Java命名规范定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。包的命名 (全部小写,由域名定义)Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互
2013-02-27 11:24:05
203
转载 Android中Cursor类的概念和用法
使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader。今天特地将它单独拿出来谈,加深自己和大家对Android 中使用 Cursor 的理解。关于 Cursor在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情:
2013-02-26 15:14:08
218
原创 hdu 2489 Minimal Ratio Tree 枚举+prim
/*可能测试数据有些弱吧,没理解这句话(if there's a tie, look at the second smallest node number),依然过了,大体思路枚举(因为数据小)选的点,就确定节点的和,在用mst就确定最小的边和*/#include #include #include using namespace std;const int maxn=30;con
2012-11-05 21:53:09
179
原创 hdu 4081 Qin Shi Huang's National Road System 最优比率生成树
#include #include #include #include #include #include using namespace std;const int maxn=1010;int p[maxn],rd[maxn],cnt,n,sum,pre[maxn];bool vis[maxn];struct Nod{ int x,y;}pnt[maxn];st
2012-11-04 15:24:40
193
转载 最大权闭合图
概念:一个有权有向图,就是:求一些闭合的点的集合(即与该集合中任何一点邻接的点都在这个集合内),使这个集合的权值最大。构造方法:一个点的权值如果为正,则与s相连,且边权为该点的权值,如果为负,则与t相连,且边权为该点权值的绝对值,原来的边的权值设为正无穷。证明过程:首先引入结论,最小割所产生的两个集合中,其源点S所在集合(除去S)为最大权闭合图,接下来我们来说明一些结论
2012-11-02 21:22:57
228
原创 hdu 3917 Road constructions 最大闭合图
#include using namespace std;const int inf=0x3fffffff;const int maxm=5005;const int maxk=3010;int source,sink,head[maxm],e,dis[maxm],gap[maxm],flow[maxm],cur[maxm],ncnt,pre[maxm];struct edge{
2012-11-02 21:21:34
266
原创 hdu 4452 Running Rabbits 模拟
#include using namespace std;struct Nod{ int x,y; int s,t; char flag[2]; int f;}tom,jerry;int dir[4][2]={-1,0,0,1,1,0,0,-1},n;void findway(Nod* e,int k){ int x,y; x=e->x+e->s*dir[e->f][0]
2012-11-01 17:08:43
198
原创 hdu 4451 Dressing 水题
//怎么这次金华这么多水题???#include using namespace std;const int maxn=1005;int a[maxn],b[maxn];int main(){ int n,m,k,p,x,y; char str1[30],str2[30]; while(~scanf("%d%d%d",&n,&m,&k)&&!(n==0&&m==0&&k==0))
2012-10-31 19:34:55
161
原创 hdu 4442 Physical Examination 简单贪心
//由题意知道是贪心题 ,假设某个状态后时间tot,2种不同顺序完成2个项目//的时间为b2*((b1*tot+a1)+tot)+a2+(b1*tot+a1)+tot,b1*((b2*tot+a2)+tot)+a1+(b2*tot+a2)+tot//比较a1*b2和a2*b1即可#include #include using namespace std;const __int64 ma
2012-10-31 09:56:03
202
原创 hdu 4370 0 or 1
#include #include #include #include using namespace std;const int inf=0x3fffffff;const int maxn=305;int G[maxn][maxn],dis[maxn],vis[maxn],n;queue Q;void spfa(int src){ /*memset(vis,false,si
2012-08-30 18:50:06
205
原创 hdu 3657 Game
/*这道题和方格取数2相似,是在方格取数2的基础上的变形。方格取数2解法: 由题意知对于每一个方格,有选与不选,显然是二分的最大独立集,先求最小点权覆盖(它的补集恰好 是最大点权独立集),对于任何一条可行流 s->u->v->t, 在求最大流或最小割的时候,在这3条边中 至少选一条,将u->v设为inf,u->v就不可能存在于最小割中,就只是2选1,如果s->u或v->t选为最小
2012-08-30 11:37:24
723
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人