首页 文章 精选 留言 我的

精选列表

搜索[学习],共10000篇文章
优秀的个人博客,低调大师

android基础学习-Fragment和eclipse快捷键

使用Fragment的原因 1. Activity间的切换不流畅 2. 模块化Activity,方便做局部动画(有时为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragment来代替,只有在需要的时候才加载Fragment,提高性能,有点类似于网页的ajax) 使用方法FragmentActivity 1. 在内部的某个ViewGroup内动态添加或替代一个Fragment fg: 快捷键的使用 Ctrl+F10 显示行号 Ctrl+/ 注释 Ctrl+L 定位行 Ctrl+K Ctrl+shift+K 查找下一个 Ctrl+shift+G 查找引用 Ctrl+G 查找变量声明 Ctrl+D 删除行 ALT+/ 自动提示方法 Alt+← Alt+→ 后退历史记录和前进历史记录,在跟踪代码时非常有用 Ctrl+Shift+F 规范代码 Ctrl+Shift+T 查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而痛苦,而且可以使用“*”、“?”等通配符。 Ctrl+Shift+R 查找工作空间(Workspace)中的所有文件(包括Java文件),也可以使用通配符。 Ctrl+Shift+O 快速生成import,当从网上拷贝一段程序后,不知道如何import进所调用的类,试试【Ctrl+Shift+O】快捷键,一定会有惊喜。 Ctrl+O 显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。 Ctrl+M 最大化窗口 F3 快速定位光标位置的某个类、方法和属性。 F4 显示类的继承关系,并打开类继承视图。 先敲“/”在敲两个**,然后回车或在方法名之前按Alt+Shift+J可以添加Javadoc 注释 方法注释 重新组织Import Ctrl+Shift+O,能帮你一次去掉所有未使用的Import声明! 快速修正 Ctrl+1 引入某个类(接口)ctrl + shift + m 调试快捷键 1. 【Ctrl+Shift+B】:在当前行设置断点或取消设置的断点。 2. 【F11】:调试最后一次执行的程序。 3. 【Ctrl+F11】:运行最后一次执行的程序。 4. 【F5】:跟踪到方法中,当程序执行到某方法时,可以按【F5】键跟踪到方法中。 5. 【F6】:单步执行程序。 6. 【F7】:执行完方法,返回到调用此方法的后一条语句。 7. 【F8】:继续执行,到下一个断点或程序结束。 其他快捷键 1. 【Ctrl+F6】:切换到下一个编辑器。 2. 【Ctrl+Shift+F6】:切换到上一个编辑器。 3. 【Ctrl+F7】:切换到下一个视图。 4. 【Ctrl+Shift+F7】:切换到上一个视图。 5. 【Ctrl+F8】:切换到下一个透视图。 6. 【Ctrl+Shift+F8】:切换到上一个透视图。 分类: Android 本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/p/3592104.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

HBase学习之五:HBase的RowKey设计原则

Hbase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对hbase中的数据进行快速定位。 HBase中rowkey可以唯一标识一行记录,在HBase查询的时候,有以下几种方式: 通过get方式,指定rowkey获取唯一一条记录 通过scan方式,设置startRow和stopRow参数进行范围匹配 全表扫描,即直接扫描整张表中所有行记录 rowkey长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10-100bytes,以byte[]形式保存,一般设计成定长。 建议越短越好,不要超过16个字节,原因如下: 数据的持久化文件HFile中是按照KeyValue存储的,如果rowkey过长,比如超过100字节,1000w行数据,光rowkey就要占用100*1000w=10亿个字节,将近1G数据,这样会极大影响HFile的存储效率; MemStore将缓存部分数据到内存,如果rowkey字段过长,内存的有效利用率就会降低,系统不能缓存更多的数据,这样会降低检索效率。 目前操作系统都是64位系统,内存8字节对齐,控制在16个字节,8字节的整数倍利用了操作系统的最佳特性。 rowkey散列原则 如果rowkey按照时间戳的方式递增,不要将时间放在二进制码的前面,建议将rowkey的高位作为散列字段,由程序随机生成,低位放时间字段,这样将提高数据均衡分布在每个RegionServer,以实现负载均衡的几率。如果没有散列字段,首字段直接是时间信息,所有的数据都会集中在一个RegionServer上,这样在数据检索的时候负载会集中在个别的RegionServer上,造成热点问题,会降低查询效率。 rowkey唯一原则 必须在设计上保证其唯一性,rowkey是按照字典顺序排序存储的,因此,设计rowkey的时候,要充分利用这个排序的特点,将经常读取的数据存储到一块,将最近可能会被访问的数据放到一块。 什么是热点 HBase中的行是按照rowkey的字典顺序排序的,这种设计优化了scan操作,可以将相关的行以及会被一起读取的行存取在临近位置,便于scan。然而糟糕的rowkey设计是热点的源头。 热点发生在大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作)。大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响同一个RegionServer上的其他region,由于主机无法服务其他region的请求。 设计良好的数据访问模式以使集群被充分,均衡的利用。 为了避免写热点,设计rowkey使得不同行在同一个region,但是在更多数据情况下,数据应该被写入集群的多个region,而不是一个。 下面是一些常见的避免热点的方法以及它们的优缺点: 加盐 这里所说的加盐不是密码学中的加盐,而是在rowkey的前面增加随机数,具体就是给rowkey分配一个随机前缀以使得它和之前的rowkey的开头不同。分配的前缀种类数量应该和你想使用数据分散到不同的region的数量一致。加盐之后的rowkey就会根据随机生成的前缀分散到各个region上,以避免热点。 哈希 哈希会使同一行永远用一个前缀加盐。哈希也可以使负载分散到整个集群,但是读却是可以预测的。使用确定的哈希可以让客户端重构完整的rowkey,可以使用get操作准确获取某一个行数据 反转 第三种防止热点的方法时反转固定长度或者数字格式的rowkey。这样可以使得rowkey中经常改变的部分(最没有意义的部分)放在前面。这样可以有效的随机rowkey,但是牺牲了rowkey的有序性。 反转rowkey的例子以手机号为rowkey,可以将手机号反转后的字符串作为rowkey,这样的就避免了以手机号那样比较固定开头导致热点问题 时间戳反转 一个常见的数据处理问题是快速获取数据的最近版本,使用反转的时间戳作为rowkey的一部分对这个问题十分有用,可以用Long.Max_Value - timestamp追加到key的末尾,例如[key][reverse_timestamp],[key]的最新值可以通过scan [key]获得[key]的第一条记录,因为HBase中rowkey是有序的,第一条记录是最后录入的数据。 比如需要保存一个用户的操作记录,按照操作时间倒序排序,在设计rowkey的时候,可以这样设计 [userId反转][Long.Max_Value - timestamp],在查询用户的所有操作记录数据的时候,直接指定反转后的userId,startRow是[userId反转][000000000000],stopRow是[userId反转][Long.Max_Value - timestamp] 如果需要查询某段时间的操作记录,startRow是[user反转][Long.Max_Value - 起始时间],stopRow是[userId反转][Long.Max_Value - 结束时间] 其他一些建议 尽量减少行和列的大小在HBase中,value永远和它的key一起传输的。当具体的值在系统间传输时,它的rowkey,列名,时间戳也会一起传输。如果你的rowkey和列名很大,甚至可以和具体的值相比较,那么你将会遇到一些有趣的问题。HBase storefiles中的索引(有助于随机访问)最终占据了HBase分配的大量内存,因为具体的值和它的key很大。可以增加block大小使得storefiles索引再更大的时间间隔增加,或者修改表的模式以减小rowkey和列名的大小。压缩也有助于更大的索引。 列族尽可能越短越好,最好是一个字符 冗长的属性名虽然可读性好,但是更短的属性名存储在HBase中会更好

优秀的个人博客,低调大师

深度学习要多深,才能读懂人话?

研究背景 阿里小蜜是阿里巴巴推出的围绕电商服务、导购以及任务助理为核心的智能人机交互产品,在去年双十一期间,阿里小蜜整体智能服务量达到643万,其中智能解决率达到95%,成为了双十一期间服务的绝对主力。阿里小蜜所使用的问答技术也在经历着飞速的发展,从最初基于检索的知识库问答演进到了最新的语义深度建模。 近期,阿里小蜜正在开展新的探索,让机器具有如同人一般的阅读理解能力,这将使得问答产品体现出真正的智能,进一步提升服务效率。 在问答技术中,最常见的是检索式问答,但存在很多的限制,例如,需要人工进行知识提炼,让机器在事先准备好的问答对基础之上进行检索。而我们经常需要对这样一段话进行提问: 5月18日,阿里巴巴集团发布了2017财年Q4财报和2017财年全年的业绩报告。财报显示,阿里巴巴集团2017财年的收入为1582.73亿元人民币,同比增长

优秀的个人博客,低调大师

mapreduce的shuffle机制(来自学习笔记)

3. MAPREDUCE原理篇(2) 3.1 mapreduce的shuffle机制 3.1.1 概述: v mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle; vshuffle: 洗牌、发牌——(核心机制:数据分区,排序,缓存) v具体来说:就是将maptask输出的处理结果数据,分发给reducetask,并在分发的过程中,对数据按key进行了分区和排序; 3.1.2 主要流程: Shuffle缓存流程: shuffle是MR处理流程中的一个过程,它的每一个处理步骤是分散在各个map task和reduce task节点上完成的,整体来看,分为3个操作: 1、分区partition 2、Sort根据key排序 3、Combiner进行局部value的合并 3.1.3 详细流程 1、maptask收集我们的map()方法输出的kv对,放到内存缓冲区中 2、从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件 3、多个溢出文件会被合并成大的溢出文件 4、在溢出过程中,及合并的过程中,都要调用partitoner进行分组和针对key进行排序 5、reducetask根据自己的分区号,去各个maptask机器上取相应的结果分区数据 6、reducetask会取到同一个分区的来自不同maptask的结果文件,reducetask会将这些文件再进行合并(归并排序) 7、合并成大文件后,shuffle的过程也就结束了,后面进入reducetask的逻辑运算过程(从文件中取出一个一个的键值对group,调用用户自定义的reduce()方法) Shuffle中的缓冲区大小会影响到mapreduce程序的执行效率,原则上说,缓冲区越大,磁盘io的次数越少,执行速度就越快 缓冲区的大小可以通过参数调整, 参数:io.sort.mb 默认100M 3.1.4 详细流程示意图

优秀的个人博客,低调大师

【机器学习PAI实践六】金融贷款发放预测

一、背景 很多农民因为缺乏资金,在每年耕种前会向相关机构申请贷款来购买种地需要的物资,等丰收之后偿还。农业贷款发放问题是一个典型的数据挖掘问题。贷款发放人通过往年的数据,包括贷款人的年收入、种植的作物种类、历史借贷信息等特征来构建经验模型,通过这个模型来预测受贷人的还款能力。 本文借助真实的农业贷款业务场景,利用回归算法解决贷款发放业务。 线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。本文通过农业贷款的历史发放情况,预测是否给预测集的用户发放他们需要的金额的贷款。 二、数据集介绍 具体字段如下: 字段名 含义 类型 描述 id 数据唯一标识符 string 人 name 用户名 string 人 region 用户所属地区 string 从北到南排列 farmsize 拥有土地大小 double 土地面

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册