首页 文章 精选 留言 我的

精选列表

搜索[开发者常备桌面小工具],共10000篇文章
优秀的个人博客,低调大师

NodeJS对于Java开发者而言是什么?

我们都知道Node.js现在得到了所有的关注。每个人都对学习Node.js感兴趣,并希望可以工作于Node.js。在开始工作之前了解技术背后的概念总是不会错的。但对初学者来说,可能会因为不同的人使用的不同定义而晕头转向。Node.js究竟是什么?它是新的语言还是新的框架,是新的工具抑或只是一个简单的JavaScript文件?即使对于有经验的Java开发人员来说,也很难快速了解Node.js。因此,在本文中,我将尝试为Java开发人员诠释Node.js。 运行时环境 我们知道Java需要一个称为JRE的运行时环境来运行Java程序。JRE有一个称为Java Virtual Machine(JVM)的虚拟机。JVM有许多组件,如垃圾回收器(GC),即时(JIT)编译器,解释器,类装载器,线程管理器,异常处理器,用于在不同时间执行不同的任务。 除了JVM之外,JRE还有一系列的库(例如,rt.jar)来帮助运行时的Java程序。我们有单独的JRE用于不同的平台,如Windows,Macintosh和Linux,以及还有JVM。 好吧,就试着记住如何编译和执行一个Java程序。我们有源代码(.java),它由Java编译器编译成一个名为Bytecode(.class)的中间代码。此Bytecode被提供给JVM以便在给定的目标平台上执行。JVM在执行之前将Bytecode转换为特定于目标平台的机器码。 Java程序的执行可以通过下面的图片解释: Web应用程序架构 典型的Java Web应用程序架构有四个层:客户层(Client),展示层(Presentation),服务/业务层(Service/Business)和数据层(Data)。 客户层(Client layer)可以使用像jQuery这样的库来支持AJAX功能并且具有一些客户端验证和DOM操作。 展示层(Presentation layer)通常是与客户层交互的一个层。该层通常已经实现了用于请求和响应处理的MVC模式。在这一层可以使用如Spring MVC这样的框架。此外,还有一个模板引擎,如Velocity,可以根据预定义的布局动态地渲染视图。 服务或业务层(Service/Business layer)负责具备业务逻辑并与其他层通信。在AJAX请求的情况下,该层直接向客户层提供数据。此层执行业务逻辑并回应到展示层以更新模型。服务层是与数据层通信以获取或更新所需数据的一个层。服务层可以具有使用任何框架,例如Spring的SOAP或REST服务实现。 数据层(Data layer)通常使用一些ORM框架,如Hiberate,或任何基于JDBC的库/模板(Spring JDBC模板)来与任意RDBMS(如Oracle)进行通信。 架构部署 Java Web应用程序架构部署包括Apache HTTP服务器,它充当代理服务器以及提供静态内容。动态内容由Web容器提供,Web容器实际上是处理Java文件的引擎。 下图说明了Java Web应用程序的架构部署: 我如何理解Node.js? 运行时环境 我们上面讨论JRE的原因是为了直接与Node.js进行比较。对,你看明白了吧! Node.js不是一种语言;不是框架;也不是工具。它是用于运行基于JavaScript应用程序的运行时环境。 与JRE类似,Node.js有一个称为JavaScript Virtual Machine(JsVM?)的虚拟机。它为基于JavaScript的应用程序生成机器代码,以便在不同的平台上启用它。 Node.js还有一系列库,它们可能被称为Node API或Node Modules,用于帮助在运行时运行JavaScript应用程序,类似于JRE中的Java库。我们对不同的平台,如Windows,Macintosh和Linux,以及JsVM有不同的Node.js要求。 JavaScript Virtual Machine就是V8,来自Google的开源JavaScript引擎。与Java Virtual Machine一样,JsVM(V8引擎)也有主要组件,如JIT和GC,分别用于执行任务,运行时编译,和内存管理。 现在,让我们试试理解JavaScript程序是如何编译和执行的。源代码是用JavaScript(.js)编写的。在将其提供给JsVM(V8引擎)之前,没有生成中间代码。JsVM直接获取此源代码并将其编译为特定于给定目标平台的机器代码以便执行。 下面的图片可以简明地说明上述解释: Web应用程序架构 基于Node.js的Web应用程序主要遵循Java Web应用程序架构。主要区别在于客户端请求处理。客户端请求将由单个线程处理,但在Node.js应用程序的情况下将异步处理。使用Java,每个客户端请求将由单独的线程同步处理,因此它是多线程的。 有许多框架/库可用于基于Node.js的Web应用程序开发。这里有趣的地方在于,所有的框架/库都是基于JavaScript的。 你可以从下面的图片中快速理解不同的层和在那些Node.js应用程序层中使用的框架/库。 客户层使用Angular.js,客户端MVC框架。展示层,以及服务层,可以通过使用Express.js,一个基于JavaScript的Web应用程序框架来开发。这也自带一个用于运行Node.js应用程序的独立服务器。数据层使用对象数据建模模块(例如Mongoose.js)来与NoSQL数据库(如MongoDB)通信。 这个特殊的栈称为MEAN,它由MongoDB,Express.js,Angular.js,客户端MVC框架和Node.js(运行时环境)组成。 架构部署 基于Node.js的Web应用程序的架构部署遵循Java的Web应用程序部署架构。它有一个NGINX服务器,它的作用就如同HTTP代理服务器,并提供静态内容。动态内容由Node.js服务器提供,该服务器包含处理JavaScript文件的引擎。 下面的图解释了基于Node.js的Web应用程序的架构部署: 就这样? 请注意,这篇文章的目的只是为了帮助从Java开发人员的角度理解Node.js,而不是为了显摆对Java或Node.js的支持。此外,除了我们在讨论中涉及到的之外,还有许多不同的架构解决方案、框架和工具。为了便于比较和理解,我采用了最简单和可行的架构解决方案以及最简单的框架和库系列。因此,请务必更进一步地去深入了解。祝大家学习愉快! 作者:小峰 来源:51CTO

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

Android 开发者应该使用 FlatBuffers 替代 JSON ?

你可能会问,既然我们已经有很标准的JSON以及转换库比如GSON和Jackson,为什么还要使用新的工具呢? 不妨先试一下FlatBuffers,然后你就会发现它比JSON快得多。 FlatBuffers是什么? FlatBuffers是一个高效的跨平台序列化类库,可以在C++、C#、C、Go、Java、JavaScript、PHP和Python中使用。是Google开发的,是为了应用在游戏开发,以及其他注重性能的应用上。 为什么要使用FlatBuffers? 不需要解析/拆包就可以访问序列化数据 — FlatBuffers与其他库不同之处就在于它使用二进制缓冲文件来表示层次数据,这样它们就可以被直接访问而不需解析与拆包,同时还支持数据结构进化(前进、后退兼容性)。 内存高效速度快 — 访问数据时只需要访问内存中的缓冲区。它不需要多余的内存分配(至少在C++是这样,其他语言中可能会有变动)。FlatBuffers还适合配合 mmap或数据流使用,只需要缓冲区的一部分存储在内存中。访问时速度接近原结构访问,只有一点延迟(一种虚函数表vtable),是为了允许格式升级以 及可选字段。FlatBuffers适合那些花费了大量时间和空间(内存分配)来访问和构建序列化数据的项目,比如游戏以及其他对表现敏感的应用。可以参 考这里的基准。 灵活 — 由于有可选字段,你不但有很强的升级和回退兼容性(对于历史悠久的游戏尤其重要,不用为了每个版本升级所有数据),在选择要存储哪些数据以及设计数据结构时也很自由。 轻量的code footprint — FlatBuffers只需要很少量的生成代码,以及一个表示最小依赖的很小的头文件,很容易集成。细节上可以看上面的基准页。 强类型 — 编译时报错,而不需要自己写重复的容易出错的运行时检查。它可以自动生成有用的代码。 使用方便 — 生成的C++代码允许精简访问与构建代码。还有可选的用于实现图表解析、类似JSON的运行时字符串展示等功能的方法。(后者比JSON解析库更快,内存效率更高) 代码跨平台且没有依赖 — C++代码可以运行在任何近代的gcc/clang和VS2010上。同时还有用于测试和范例的构建文件(Android中.mk文件,其他平台是cmake文件)。 都有谁使用FlatBuffers? BobbleApp,印度第一贴图App。我们在BobbleApp中使用FlatBuffers后App的性能明显增强。 Cocos2d-x,第一开源移动游戏引擎,使用FlatBuffers来序列化所有的游戏数据。 Facebook使用FlatBuffers在Android App中进行客户端服务端的沟通。他们写了一篇文章来描述FlatBuffers是如何加速加载内容的。 Google的Fun Propulsion Labs在他们所有的库和游戏中大量使用FlatBuffers。 App性能有多大提高? 解析速度 解析一个20KB的JSON流(这差不多是BobbleApp的返回大小)需要35ms,超过了UI刷新间隔也就是16.6ms。如果解析JSON的话,我们就在滑动时就会因为要从磁盘加载缓存而导致掉帧(视觉上的卡顿)。 解析器初始化 一个JSON解析器需要先构建字段映射再进行解析,这会花100ms到200ms,很明显的拖缓App启动时间。 垃圾回收 在解析JSON时创建了很多小对象,在我们的试验中,解析20kb的JSON流时,要分配大约100kb的瞬时存储,对Java内存回收造成很大压力。 FlatBuffers vs JSON 我尝试使用FlatBuffers和JSON解析4mb的JSON文件。 FlatBuffers花了1-5ms,JSON花了大约2000ms。在使用FlatBuffers期间Android App中没有GC,而在使用JSON时发生了很多次GC。在使用JSON时UI完全卡住,所以真实使用时只能在后台线程进行解析。 如何使用FlatBuffer呢? 我在我的GitHub中写了一个示例,里面手把手教你如何使用FlatBuffer。 文章转载自 开源中国社区[http://www.oschina.net]

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

iOS免费开发者账号真机调试

亲测可用很久了,总结一下给童鞋用。 Xcode -> Preferences Paste_Image.png  2.选中添加的账号,打开右下角View Details 3.创建调试签名,对iOS Development点击Create,至此Xcode配置完成. Paste_Image.png 4.连接真机,打开一个工程。Build Settings ->code signing Entitlements为空 ->Code signing Identity选择iOS Developer ->Provisioning Profile选择Automatic Paste_Image.png 5.调试设备选择插入的iPhone, 查看General,修改下Bundle Identifier的内容,例如加个后缀,确保改值未被其他账户使用过,Team选择刚添加的账号,然后开始Fix issue(如果没有黄色警告,可以直接run)fix的过程比较久,如果超时了,重试fix。成功后,黄色警告消失。此时可以run了。 Paste_Image.png 6.iOS9 或更高版本,第一次run可能会Xcode会告诉你因为安全问题,该app无法运行,此时可以看到iPhone里已有app,证书信任下.设置 -> 通用 -> 描述文件与设备管理 -> 开发商应用,自己刚才注册的账号 - > 信任"XXX账号" 7.Xcode配置账号后,也可以用instrument查看真机上run的所有进程 打开'instrument' Paste_Image.png 选好设备和 进程(比如我选了微信) ,选模版(Time profile),没有符号表,看不到具体的函数费时。内存也看不到. 文/蓝新(简书作者) 原文链接:http://www.jianshu.com/p/540e722b8eff 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

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

Hadoop高级培训课程大纲-开发者版

一、课程概述 本次培训课程主要面向大数据系统管理人员和开发设计人员,基于开源社区大数据应用最活跃的Hadoop和HBase技术框架,围绕分布式文件存储(HDFS)、分布式并行计算(Map/Recue)和非关系型数据库(NoSql)三个大数据核心应用展开,旨在帮助培训对象建立起完整的大数据理论基础框架和实践操作能力。主要课程内容包括:1.大数据应用发展史;2.分布式文件系统HDFS原理与架构、HDFS系统管理、HDFS开发与设计;3.分布式并行计算框架Map/Reduce工作原理与架构、Map/Reduce任务运行监控、Map/Reduce任务调度、Map/Redcue开发与设计;4.非关系型数据库HBase逻辑架构、HBase物理存储、HBase关键流程和算法、HBase开发与设计;5.大数据应用案例分析:金融、电信、互联网、电商平台 二、课程大纲 日程 课程模块 课程内容 第1天 大数据概述 什么是大数据? Hadoop概要 Hadoop生态系统介绍 Hadoop集群安装与部署 Hadoop独立部署 Hadoop伪分布式安装部署 Hadoop集群安装与部署 Hadoop配置参数管理 第2天 HDFS架构与原理 HDFS体系结构 HDFS读写过程-串行写与并行读 HDFS 管理接口-HDFS shell && HDFS Web Interface HDFS开发与设计 HDFS API接口介绍 HDFS Java接口实例 HDFS开发实例-基于HDFS实现云盘系统 第3天 Map/Reduce架构与原理 Map/Reduce体系结构 Map/Reduce管理接口-Map/Reduce shell && Map/Reduce Web Interface Map/Reduce开发与设计 Map/Reduce API接口介绍 Map/Reduce Java开发实例 第4天 HBASE架构与原理 HBASE体系结构 HBASE物理存储 HBASE关键流程算法 HBASE管理接口-HBase Shell&& HBase Web Interface HBASE与RDBMS的比较 HBASE开发与设计 HBASE API接口介绍 HBASE Java接口实例 HBASE优化专题-海量数据写入优化 第5天 Hadoop辅助支持工具 Hive-提供给SQL程序员最好的礼物 Pig-通过脚本实现Map/Reduce Sqoop-Hadoop时代的ETL 三、服务支持 Hadoop培训交流群:293503507 培训邀请电话:13718542435 作者:张子良 出处:http://www.cnblogs.com/hadoopdev 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

Hadoop开发者第四期

全文下载: http://ishare.iask.sina.com.cn/f/14487230.html 目录 mooon 1 海量数据处理平台架构演变 4 计算不均衡问题在Hive中的解决办法 15 Join算子在Hadoop中的实现 20 配置Hive元数据DB为PostgreSQL 32 ZooKeeper权限管理机制 36 ZooKeeper服务器工作原理和流程 39 ZooKeeper实现共享锁 47 Hadoop最佳实践 50 通过Hadoop的API管理Job 54 Hadoop集群的配置调优 60 Hadoop平台的Java规范及经验 63 MapReduce开发经验总结 67 Hadoop中的tar命令的实现 70 Hadoop技术论坛运营数据分享 92

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

hadoop开发者第二期

全文下载: http://ishare.iask.sina.com.cn/f/7401946.html 目录 1、Hadoop 业界资讯......................................... - 1 - 2、Nutch + Hadoop 构建商用分布式搜索引擎的问题探究 ....... - 5 - 3、支持自定义爬虫的Nutch segment 文件存储接口改写.......... - 11 - 4、Nutch 中mapreduce 应用的几个特殊点 .................... - 14 - 5、Java RMI + Lucene 构建分布式检索应用初探 .............. - 17 - 6、一对多的表关联在map

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

用户登录
用户注册