• 把 WebAssembly 用于提升速度和代码重用[每日前端夜话0xBC]
    对于名称中带有 assembly 的语言,WebAssembly 是低级的。系统语言都具有两个特性,这使它们适合被编译为 WebAssembly。谈到高性能 Web 代码,WebAssembly 并不是唯一的选择。WebAssembly 的概述可以总结如下。几乎所有关于 WebAssembly 语言的文章都提到把近乎原生的速度作为语言的主要目标之一。WebAssembly 在下载方面也有优势。浏览器将 JS 模块作为文本提取,这正是 WebAssembly 能够解决的低效率问题之一。WebAssembly 中的模块是紧凑的二进制格式,可加快下载速度。同样令人感兴趣的是 JS 和 WebAssembly 如何协同工作。冰雹序列和 Collatz 猜想生产级代码案例将使 WebAssembly 代码执行繁重的计算绑定任务,例如生成大型加密
  • C语言这么厉害,它自身又是用什么语言写的?
    换个角度来问,其实是:C语言在运行之前,得编译才行,那C语言的编译器从哪里来?如果是用C语言本身来写的,到底是先有蛋还是先有鸡?有了这个老祖宗,就可以编译任意的C语言程序了,那是不是可以用C语言本身写一个编译器?OK, 这么一层层上来,终于得到了一个用C语言写的编译器, 真是够麻烦的。而做为第一个高级语言的Fortran,它的编译器应该是汇编语言写的。当然可能,在开发第一代Unix的时候,连C语言都没有, Ken Thompson 和 Dennis Ritchie 可是用汇编一行行把Unix敲出来的。
  • 进击的 Java ,云原生时代的蜕变
    云原生时代的来临,与Java 开发者到底有什么联系?有人说,云原生压根不是为了 Java 存在的。然而,本文的作者却认为云原生时代,Java 依然可以胜任“巨人”的角色。作者希望通过一系列实验,开拓同学视野,提供有益思考。在企业软件领域,Java 依然是绝对王者,但它让开发者既爱又恨。
  • 你写的 Java 代码是如何一步步输出结果的?
    扫描下方二维码试读目录一、编写Java源程序二、编译Java源代码三、执行Java源文件四、JVM如何执行字节码文件对于任何一门语言,要想达到精通的水平,研究它的执行原理不失为一种良好的方式。Java虚拟机的主要任务是装载class文件,并执行其中的字节码,不同的Java虚拟机中,执行引擎可能有不同的实现。启动类加载器是Java虚拟机唯一实现的一部分,它又可分为原始类装载器,系统类装载器或默认类装载器。它的主要作用是从操作系统的磁盘装载相应的类,如JavaAPI类等。根据厂商的不同,在Java虚拟机中,运行时数据区也有所不同。
  • 在 21 世纪该怎样编译 Linux 内核 | Linux 中国
    也许你并不需要编译 Linux 内核,但你能通过这篇教程快速上手。得到具体的数字很困难,但是 Linux 内核无疑是硬件兼容性方面的顶级内核之一。回到 20 世纪,对于 Linux 用户来说,在刚买到新的硬件后就需要下载最新的内核代码并编译安装才能使用这是不可理喻的。而现在你也很难见到 Linux 用户为了好玩而编译内核或通过高度专业化定制的硬件的方式赚钱。现在,通常已经不需要再编译 Linux 内核了。它们大多数都会贡献驱动程序,直接提交给内核开发团队以包含在 Linux 中。安装内核模块有时候一个发行版没有预计到用户会使用某个设备。
  • 详细分析Java中String、StringBuffer、StringBuilder类的性能
    在Java中,String类和StringBuffer类以及StringBuilder类都能用于创建字符串对象,而在分别操作这些对象时我们会发现JVM执行它们的性能并不相同,下面我们就来详细分析Java中String、StringBuffer、StringBuilder类的性能。我们先要记住三者的特征:String 字符串常量StringBuffer 字符串变量StringBuilder 字符串变量一、定义查看API会发现,String、StringBuffer、StringBuilder都实现了 CharSequence接口,虽然它们都与字符串相关,但是其处理机制不同。StringBuilder:与StringBuffer类基本相同,都是可变字符换字符串序列,不同点是StringBuffer是线程安全的,StringBuilder是线程不安全的。
  • 函数,从编辑到编译 (上)
    我周围是熙熙攘攘的函数群,穿插着变量声明和宏定义。每个函数的一小步,合起来就是功能模块的一大步。预编译进程第一步会 删除所有 #define,展开宏定义。用专业的话来说,处理 “#include ”预编译指令,就是将被包含的文件插入到该预编译指令的位置。预编译阶段结束,# 的数量大大减少,仅剩下几个 #pragma 指令留在这里。和其他宏定义指令不一样的是,#pragma 是能够跟编译器平起平坐的存在,预编译进程见了都得避让三分。可以说,她是程序员和编译器之间的信鸽。
  • GNU binutils 里的九种武器 | Linux 中国
    你也可以拥有这样的超能力,GNU 二进制实用程序就是一个很好的起点。GNU binutils是一个二进制工具集,默认情况下所有 Linux 发行版中都会安装这些二进制工具。本文探讨了 binutils 可用的一些工具。我使用的是 RHEL,但是这些示例应该在任何 Linux 发行版上可以运行。编译的基础知识在深入研究 binutils 软件包本身之前,最好先了解编译的基础知识。在 Linux上,这称为ELF。在此示例中,头文件stdio.h将被包含在源代码中。stdio.h是一个头文件,其中包含有关程序内使用的printf函数的信息。这个阶段使用GNU 编译器集合。
  • 万字长文详解 Go 程序是怎样跑起来的?| CSDN 博文精选
    它的每一步具体如何进行,力图弄清 Go 程序的这一生。也就是说,刚刚写完的 hello.go 文件都是由 ASCII 字符表示的,它被称为 文本文件,其他文件被称为 二进制文件。输入是原始的 Go 程序文件,在词法分析器看来,就是一堆二进制位,根本不知道是什么东西,经过它的分析后,变成有意义的记号。
  • 万字长文详解 Go 程序是怎样跑起来的?| CSDN 博文精选
    它的每一步具体如何进行,力图弄清 Go 程序的这一生。也就是说,刚刚写完的 hello.go 文件都是由 ASCII 字符表示的,它被称为 文本文件,其他文件被称为 二进制文件。输入是原始的 Go 程序文件,在词法分析器看来,就是一堆二进制位,根本不知道是什么东西,经过它的分析后,变成有意义的记号。
  • Maven最全教程,java开发必备知识,99%的人都能看懂并且掌握!
    ③ jar包需要的时候每次都要自己准备好或到官网下载借助于maven我们可以使用统一的规范方式下载jar包,规范④ jar包版本不一致的风险不同的项目在使用jar包的时候,有可能会导致各个项目的jar包版本不一致,导致未执行错误。借助于maven,所有的jar包都放在“仓库”中,所有的项目都使用仓库的一份jar包。它是maven的核心配置文件,所有的构建的配置都在这里设置。
  • C 语言这么厉害,它自身是用什么语言写的?
    换个角度来问,其实是:C语言在运行之前,得编译才行,那C语言的编译器从哪里来?如果是用C语言本身来写的,到底是先有蛋还是先有鸡?有了这个老祖宗,就可以编译任意的C语言程序了,那是不是可以用C语言本身写一个编译器?OK, 这么一层层上来,终于得到了一个用C语言写的编译器, 真是够麻烦的。而做为第一个高级语言的Fortran,它的编译器应该是汇编语言写的。
  • 漫谈 C++ 的各种检查
    项目中,降低开发门槛的方法有很多:除了 制定代码规范、划分功能模块、完善单元测试、推行代码审查、整理相关文档之外,针对强类型的编译语言 C++,Chromium/base 库加入了大量的检查。为什么代码中需要各种检查?漫谈 C++ 的各种检查1 编译时检查编译时静态检查,主要依靠 C++ 语言提供的语法支持/静态断言和编译器扩展实现 —— 在检查失败的情况下,编译失败。在之前写的深入 C++ 回调中分析了:Chromium 的base::Callback <>+base::Bind()回调机制,提到了相关的静态断言检查。
  • 浅谈 C++ 元编程
    结合已有文献和个人实践,对有关 C++ 元编程进行了系统的分析。1995 年的 Todd Veldhuizen 在 C++ Report 上,首次提出了 C++模板元编程的概念,并指出了其在数值计算上的应用前景。受限于 C++ 对模板本身的限制,Andrei Alexandrescu 等人又发明了 D 语言,把元编程提升为语言自身的一个特性。元编程已被广泛的应用于现代 C++ 的程序设计中。
  • 一次艰难的渗透提权过程
    来自公众号:信安之路本文作者:F0rmat0x01 前言某日朋友丢了一条 shell 叫我提权,我拿到 shell 看了一下,菜刀蚁剑都无法执行命令。0x02 信息探测上一个 phpinfo 看下环境PHPVersion5.6.30disable_functions:passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthrusendmail_path:/usr/sbin/sendmail-t-imysql:mysqlnd5.0.11-dev-20120503宝塔警告!问了宝塔的开发工程师,宝塔确实是做得挺好的,Windows 的基本没什么希望了,看下 Linux 的。0x03 肝putenv这个没禁可以利用一下,看了 P 神的一篇文章:https://www.leavesongs.com/PHP/php-bypass-disable-functions-by-CVE-2014-6271.htmlhttp://www.exploit-db.com/exploits/35146/的POC<?0x04 新希望 LD_PRELOAD上 gayhub 上面搜了一下看到了一篇不错的姿势https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD按照了里面的一段代码bypass_disablefunc.c#define_GNU_SOURCE#include<stdlib.h>#include<unistd.h>#include<sys/types.h>__attribute__voidpreloadme{unsetenv;constchar*cmdline=getenv;system;}编译了一下然后上传调用文件 php<?>利用的时候没回显,what?
  • 浅谈 C++ 元编程
    post=2017/Cpp-Metaprogramming随着 C++ 11/14/17 标准的不断更新,C++ 语言得到了极大的完善和补充。结合已有文献和个人实践,对有关 C++ 元编程进行了系统的分析。1995 年的 Todd Veldhuizen 在 C++ Report 上,首次提出了 C++模板元编程的概念,并指出了其在数值计算上的应用前景。受限于 C++ 对模板本身的限制,Andrei Alexandrescu 等人又发明了 D 语言,把元编程提升为语言自身的一个特性。元编程已被广泛的应用于现代 C++ 的程序设计中。除了模板,现代 C++ 还允许使用constexpr函数进行常量计算。
  • Linux 内核测试的生命周期 | Linux 中国
    -- Major Hayden在Linux 内核的持续集成测试一文中,我介绍了内核持续集成Continuous Kernel Integration项目及其使命:改变内核开发人员和维护人员的工作方式。CKI 项目维护的触发器用于监视这些补丁集并采取措施。补丁系列作为一个整体历经 CKI 系统,并可以针对该系列发布单个报告。上游内核会打包成压缩包,而 Red Hat 的内核会生成下一步所用的源代码 RPM 包。大型测试框架,例如Linux Test Project,包含了大量测试,这些测试在内核中寻找麻烦的回归问题。总结CKI 项目团队通过向内核开发人员和维护人员提供及时、自动的反馈,努力防止错误进入 Linux 内核。
活跃用户
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
《中国银行保险报》是中国银行保险监督管理委员会主管唯一工作日报。
数字生活家,手机新娱乐
专业的中文 IT 技术社区,与千万技术人共成长。
数字公民的糖
腾讯新闻旗下腾讯科技官方账号,在这里读懂科技!
凤凰科技频道官方账号,带你直击真相。
TechWeb专注于互联网消费领域,每日专业提供互联网产品、智能设备及互联网服务等方面的最新资讯。
从思考,到创造
让创业者不再孤独@i黑马
《环球科学》杂志官方帐号 www.huanqiukexue.com
用极客视角,追踪你最不可错过的科技圈。有快闻、也有洞见;有脑洞、也有思考。
雷锋网,读懂智能&amp;未来。
36氪是中国领先的新商业媒体,提供新锐深度的商业报道。我们强调趋势与价值,我们的slogan是:让一部分人先看到未来。
最好的中文人物报道
笑谈开发轶事,品味程序人生。
可能是最会用故事讲解技术本质的公众号!
以通俗易懂的方式讲解数据结构与算法、计算机网络,计算机基础等编程知识。
程序员职业规划:职场晋升之路;探讨程序员转化转管理之路。程序员学习管理之道:团队管理、项目管理、管理工具的推荐和使用经验。
促进软件测试领域知识的传播