源码

这些关于直播源码的程序员术语你知道吗?

放肆的年华 提交于 2020-03-30 09:32:43
今天小编偶遇技术部两个程序员小哥,听两小哥聊天一会来个“J快叡儿”(JQuery)一会儿又来个“安可T五X”(ActiveX),听的小编一脸懵逼,于是小编深入技术部,近距离观看直播源码是如何敲出来及程序员之前都有哪些术语,下面我将为各位看官讲解敲直播源码需要了解什么。 一、 基础语言 C:C语言(The C Programming Language)语言简洁,功能强大。 C++:C++语言(The C++ Programming Language)在C语言的基础上开发的一种面向对象编程语言。 Objective-C:是扩充C的面向对象编程语言,只能用于ios及Mac OSX的编写。 Java:又称爪(zhao)哇,可以编写web应用程序及嵌入式系统等,有了它就可将直播功能嵌入现有APP。 Qt:一款跨平台编译器,支持Android、Windows Phone、IOS。 (除了这些还有C#/Swift/Perl/Shell/Scala等,直播源码敲出来真是不容易啊!) 二、 前端开发(网站的表现层及结构层) HTML:(HyperText Markup Language)超文本标记语言,其实就是一种网页文件格式。 HTML5:即为HTML的升级版,H5为其简写,相对来说更加灵活。 CSS:层叠样式表(Cascading Style Sheets),对网页的布局、颜色

Android Settings 导入eclipse

佐手、 提交于 2020-03-30 08:11:30
1.加载源码 Android Project from Existing Code 选择源码工程Settings; 2.加载所需要的jar包 (改下名字) out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/frameworks-core-util-lib_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar 另外还要根据实际项目情况添加其他jar文件 guava-r07.jar 网上下载 android-support-v4.jar

Adapter.notifyDataSetChanged()源码分析以及与ListView.setAdapter的区别

痴心易碎 提交于 2020-03-30 03:04:06
一直很好奇,notifyDataSetChanged究竟是重绘了整个ListView还是只重绘了被修改的那些Item,它与重新设置适配器即调用setAdapter的区别在哪里?所以特地追踪了一下源码,过程如下: 一、notifyDataSetChanged实现机制 自定义Activity中有如下调用语句: checkoutAdapter.notifyDataSetChanged(); 点击notifyDataSetChanged()进行代码跟踪。首先,进入到BaseAdapter的notifyDataSetChanged方法: public void notifyDataSetChanged() { mDataSetObservable.notifyChanged(); } 我们发现其实就是DataSetObservable这个对象在发生作用,点击notifyChanged进行追踪。 public class DataSetObservable extends Observable<DataSetObserver> { /** * Invokes onChanged on each observer. Called when the data set being observed has * changed, and which when read contains the new

深入理解Spring系列之十三:IntrospectorCleanupListener解析

故事扮演 提交于 2020-03-29 21:11:30
Introspector作用及影响 在分析IntrospectorCleanupListener之前,先了解一下Introspector。Introspector是JDK中java.beans包下的类,它为目标JavaBean提供了一种了解原类方法、属性和事件的标准方法。通俗的说,就是可以通过Introspector构建一个BeanInfo对象,而这个BeanInfo对象中包含了目标类中的属性、方法和事件的描述信息,然后可以使用这个BeanInfo对象对目标对象进行相关操作。 下面看一个简单的示例会很容易明白。为了简单,Student类中只有一个name属性。 结果输出:Student{name='张三'} 通过查看Introspector.getBeanInfo方法的源码会发现,Introspector在构建一个BeanInfo对象的时候,会将构建的BeanInfo对象和原类缓存到一个Map中,源码如下。 通过上的代码可以得出,Introspector间接持有了BeanInfo的强引用。如果使用Introspector操作了很多类,那么Introspector将间接持有这些BeanInfo的强引用。在发生垃圾收集的时候,检测到这些BeanInfo存在引用链,则这些类和对应的类加载器将不会被垃圾收集器回收,进而导致内存泄漏。所以,为了解决这个问题

Java集合---HashSet的源码分析

瘦欲@ 提交于 2020-03-29 21:02:03
Java集合---HashSet的源码分析 一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、 HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成, HashSet的源代码如下: 1 public class HashSet<E> 2 extends AbstractSet<E> 3 implements Set<E>, Cloneable, java.io.Serializable 4{ 5 static final long serialVersionUID = -5024744406713321676L; 6 7 // 底层使用HashMap来保存HashSet中所有元素。 8 private transient HashMap<E,Object> map; 9 10 // 定义一个虚拟的Object对象作为HashMap的value,将此对象定义为static final。 11 private static final Object

Java集合---HashSet的源码分析

自作多情 提交于 2020-03-29 20:59:45
一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、 HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成, HashSet的源代码如下: 1 public class HashSet<E> 2 extends AbstractSet<E> 3 implements Set<E>, Cloneable, java.io.Serializable 4 4{ 5 static final long serialVersionUID = -5024744406713321676L; 6 7 // 底层使用HashMap来保存HashSet中所有元素。 8 private transient HashMap<E,Object> map; 9 10 // 定义一个虚拟的Object对象作为HashMap的value,将此对象定义为static final。 11 private static final Object PRESENT = new Object()

Prism 源码解读1-Bootstrapper和Region的创建

馋奶兔 提交于 2020-03-29 19:26:58
介绍 之前也研究过Prism框架但是一直没有深入理解,现在项目上想把一个Winform的桌面应用程序改造成WPF程序,同时我希望程序是可测试可维护架构良好的,Prism的这些设计理念正好符合我的需求,其主要用于WPF和Xamarin,用于构建松耦合,可维护,可测试的应用程序框架,在我看到源码后也深受启发,欢迎大家一起交流探讨。 开始 我将从官方的Samples的顺序,看介绍中的每个功能是怎么实现的。 0、PrismApplicationBase 首先介绍一下这个类,这是Startup,这个类中构建了所有的Prism功能和整体的框架。这个类中大多数的方法都是虚方法,可以重载加入自定义的一些功能,Prism也希望我们如此进行设计。 在整个Prism中,UnityContainer无处不再,它就是一个大的容器,保存着所有类,在需要的时候Resolver出来。 有两个字段,ContainerExtension就UnityContainer,当然也可以自定义其他的容器,在文章中都默认为UnityContainer容器,关于容器也给一个官方说明 ModuleCatalog是定义了加载Module的方式,模块是Prism的一大优势,给一张官方说明,意图胜千言 所有的一切都是从一个类开始PrismApplicationBase,在这个类中加载了Prism的所有功能。 看一下最重要的一个方法

gcc编译C++程序

六眼飞鱼酱① 提交于 2020-03-29 17:06:30
gcc动态编译和静态编译方法 一.单个源.cpp文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: 1 /* helloworld.cpp */ 2 #include <iostream> 3 int main() 4 { 5 std::cout << "hello, world" ; 6 return(0); 7 } ***** c++ helloworld.cpp -o hello -Wall 编译器c++ 通过检查命令行中指定的文件的后缀名可识别其为 C++ 源代码文件,同时打印提示信息。 编译器默认的动作:编译源代码文件生成对象文件(object file) 链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。 由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。 程序可以这样来运行: ***** ./hello hello, world 程序c++/g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。 通过遵循源码的命名规范并指定对应库的名字,用 gcc 默认编译c文件,通过扩展来编译链接 C++ 程序也是可行的, 如下例所示: ***** gcc helloworld.cpp -lstdc++ -o

红帽考试学习第二十记

≡放荡痞女 提交于 2020-03-29 10:59:41
第二十章 使用 LNMP 架构部署动态网站环境 LNMP 动态网站部署架构是一套由 Linux+Nginx+MySQL+PHP 组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性。 20.1 源码包程序 使用源码包来安装服务程序具有两个优势。 源码包的可移植性非常好,几乎可以在任何 Linux 系统中安装使用,而 RPM 软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能安装(即只会去“生硬地”安装服务程序)。 使用源码包安装服务程序时会有一个编译过程,因此可以更好地适应安装主机的系统环境,运行效率和优化程度都会强于使用 RPM 软件安装包安装的服务程序。 使用源码包安装的步骤: 下载及解压源码包文件。 编译源码包代码。 生成二进制安装程序。 运行二进制的服务程序安装包。 清理源码包临时文件。 如果大家想参考该实验或者想搭建自己的 Discuz 论坛,那可以在( www.linuxprobe.com )网站上下载《 Linux 就该这么学》这本书的电子版哦。 以下是部分学习笔记: 来源: https://www.cnblogs.com/lelegon/p/12590896.html

erlang 源码安装

白昼怎懂夜的黑 提交于 2020-03-29 06:29:21
2011-09-04 16:45 356人阅读 评论 (0) 收藏 举报 由于最终部署的生产环境是Centos,所以我需要在Centos中安装Erlang B13R04 ,第一次做这件事情破费周折,主要是对Erlang依赖的库不熟悉,总是编译不过;这里梳理一下安装过程中的细节: Erlang依赖哪些库? A fully working GCC compiler environment Ncurses development libraries OpenSSL development libraries (如果使用mysql必须安装) 安装了这些库之后,必须要重新执行configure命令,configure之后会有提示哪些依赖的库没有安装,可以根据你的需要放弃安装一些库;上面的操作可以使用下面的命令实现: > sudo yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel > wget http: //www.erlang.org/download/otp_src_R13B04.tar.gz > tar xfvz otp_src_R13B04.tar.gz > cd otp_src_R13B04/ > ./configure --with-ssl > sudo make install