编译程序

类加载器

二次信任 提交于 2020-03-25 20:32:41
类加载机制 类加载器负责加载所有的类,系统为所有被载入内存中的类生成一个 java.lang.Class 实例。一旦一个类被载入 JVM 中,同个类就不会被再次载入了。现在的问题是,怎么样才算“同一个类”? 正如一个对象有一个唯一的标识一样,一个载入 JVM 中的类也有一个唯一的标识。在 Java 中,一个类用其全限定类名(包括包名和类名)作为标识:但在 JVM 中,一个类用其全限定类名和其类加载器作为唯一标识。例如,如果在 pg 的包中有一个名为 Person 的类,被类加载器 ClassLoader 的实例 k1 负责加载,则该 Person 类对应的 Class 对象在 JVM 中表示为(Person、pg、k1)。这意味着两个类加载器加载的同名类:(Person、pg、k1)和(Person、pg、k12)是不同的,它们所加载的类也是完全不同、互不兼容的。 当 JVM 启动时,会形成由三个类加载器组成的初始类加载器层次结构。 Bootstrap ClassLoader:根类加载器。 Extension ClassLoader:扩展类加载器。 System ClassLoader:系统类加载器。 Bootstrap ClassLoader 被称为引导(也称为原始或根)类加载器,它负责加载 Java 的核心类。在Sun 的 JVM 中,当执行 java.exe 命令时,使用

Python简介

筅森魡賤 提交于 2020-03-25 12:32:38
Python简介 Python官方的介绍是: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。 Python是一种解释型语言、交互式语言、面向对象语言 创始人 :吉多·范罗苏姆(Guido van Rossum),荷兰人。人称“龟叔” 名称来源 :龟叔是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者 创造初衷 :龟叔想设计一种基于C和shell之间、功能全面、易学易用、可拓展的语言。 设计哲学 :“优雅”、“明确”、“简单” 开发哲学 :“用一种方法,最好是只有一种方法来做一件事” Python格言 : >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested.

LESS ---在windows下编译less

时光怂恿深爱的人放手 提交于 2020-03-25 12:30:05
3 月,跳不动了?>>> 简介 ---- CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中。HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义。 作为一门标记性语言,CSS 的语法相对简单,对使用者的要求较低,但同时也带来一些问题:CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码,造成这些困难的很大原因源于 CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。LESS 为 Web 开发者带来了福音,它在 CSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了 CSS 的编写,并且降低了 CSS 的维护成本,就像它的名称所说的那样,LESS 可以让我们用更少的代码做更多的事情。 原理 ---- 本质上,LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。LESS 并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。 LESS 可以直接在客户端使用

Java内部类详解

六月ゝ 毕业季﹏ 提交于 2020-03-25 09:16:54
在一个类的里面再定义的类,叫做内部类,也可以叫做寄生类,在平时的编程中很少用到内部类,而且显的特别乱。 但是内部类也是有很大作用的: 提供了更好的封装,把类隐藏在外部类中,这样其他的类不能调到。 内部类可以使用外部类的所有数据,包括private修饰的。 在jdk中哟哟很多地方都用到了内部类,在集合的源码中,比如在ArrayList中为了实现Iterator接口,就利用了内部类实现了Iterator接口。 包含内部类的类叫做顶层类,顶层类只能用public和默认修饰,内部类可以用四种权限修饰符的任意一个。我们要访问内部类的时候,要通过外部类访问内部类,不能直接访问内部类。 package demo_Inner; public class Test { public static void main(String[] args) { Outer outer = new Outer(); outer.print();//外部类 Outer.Inner inner = new Outer().new Inner(); inner.print();//内部类 } } class Outer{ public class Inner{ public void print() { System.out.println("内部类"); } } public void print() {

JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签

ⅰ亾dé卋堺 提交于 2020-03-25 09:04:31
JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签 在2015年6月至今,JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签,并总量操作第二第三的和。 新潮的Web开发技术,比如React,Node.js,还有AngularJS正在逐渐起势,都是用的js(es6)。 全栈工程师最青睐的技术,JS 第一 前端开发者最青睐的技术,JS 自然第一 后端开发者最青睐的技术,JS 第一 学生程序员最青睐的技术,JS 第二 JavaScript 是这个星球上最受欢迎的编程语言。而且后端开发者甚至更喜欢使用JavaScript来工作。 根据职业划分的技术栈 Javascript 可以做什么 1. Web 前端 相信这个这个是毫无疑问的,在 Web 前端的地位目前是没有任何语言能撼动它的霸主地位。 image.png 2. 后端 Nodejs Node.js 是一个 Javascript 运行环境(runtime environment),发布于2009年5月,由Ryan Dahl 开发,实质是对 Chrome V8 引擎进行了封装。Node.js 对一些特殊用例进行优化,提供替代的 API,使得V8在非浏览器环境下运行得更好。 使 Javascript 走向了服务端,这使得 Web

GDB在ARM板中的应用

依然范特西╮ 提交于 2020-03-25 08:13:53
GDB的下载: http://www.gnu.org/software/gdb/ 下载gdb-7.4.tar.bz2 1.解压: tar xjf gdb-7.4.tar.bz2 2.编译gdb和gdbserver 2.1 编译gdb:    cd gdb-7.4/   .configure -- target=arm-linux //配置    make //编译    make install //安装,注意如果直接运行make install的话,直接撞到pc机的usr/bin中去了。我不想这么直接安装,想看看安装时生成什么东西?    vi makefile,然后搜索prefix,这prefix就是指代安装的路径。因此我可以自定义我的安装路径   mkdir tmp    make install prefix = $PWD / tmp   此时可以去tmp目录下,看一下都生成了什么东西。你会看到有bin include lib share目录。进入bin目录,你会看到arm-linux-gdb的程序。 2.2 编译gdbserver   cd gdb / gdbserver   .configure --host = arm-linux    make    编译的过程中会出现错误:PTRACE GETSIGINFO没有定义。-I表示头文件在哪里。在

db2 sqc文件

*爱你&永不变心* 提交于 2020-03-25 08:10:33
针对DB2的嵌入式开发的SQC代码文件,从SQC文件编译成可实行文件的过程,在一般情况下都是通过这本程序的make文件进行编译的,在这里对这个编译过程做一个简单的说明。 1.首先把自己编辑好的SQC文件(如:test.sqc)放在指定的目录下。 2.正式开始编译前,需要和DB2数据库(如:TESTDB)建立连接。 以linux环境为例,在命令行状态下,输入:db2 connect to TESTDB 3.调用DB2的prep命令对SQC文件进行预编译,用来生成C文件。 在命令行状态下,输入:db2 prep test.sqc BINDFILE package using bindtes 来源: https://www.cnblogs.com/hshy/p/12563769.html

模块的导入和使用

好久不见. 提交于 2020-03-25 05:37:59
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别:    1 使用python编写的代码(.py文件)   2 已被编译为共享库或DLL的C或C++扩展   3 包好一组模块的包   4 使用C编写并链接到python解释器的内置模块 2 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的 结构更清晰,方便管理 。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中, 实现了功能的重复利用. 3.如何使用模块? 3.1 import 示例文件:自定义模块my_module.py,文件名my_module.py,模块名my_module #my_module.py print('from the my_module.py') money=1000 def read1(): print('my_module->read1->money',money) def

python学习笔记(python简史)

血红的双手。 提交于 2020-03-24 17:35:55
一、python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算、人工智能 ·系统运维 ·金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛 ·图形GUI python是一门什么样的语言? 编程语言主要从以下几个角度进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。 编译型和解释型 编译型,如:c,c++,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就成为编译(Compile),而负责编译的程序自然就成为编译器(Compiler)。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。对于较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Object file)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已经是可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件

用好Lua+Unity,让万金6.0平台搭建性能飞起来——Lua与C#交互篇

谁说我不能喝 提交于 2020-03-24 12:22:13
前言万金6.0平台搭建论坛:haozbbs.com Q1446595067 在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。 整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的说可以肆意使用,要用好,你需要知道很多。 因此,这篇文章是从一堆简单的优化建议里头,逐步挖掘出背后的原因。只有理解了原因,才能很清楚自己做的优化,到底是为了什么,有多大的效果。 从最早的lua纯反射调用c#,以及云风团队尝试的纯c#实现的lua虚拟机,一直发展到现在的各种luajit+c#静态lua导出方案,lua+unity才算达到了性能上实用的级别。 但即使这样,实际使用中我们会发现,比起cocos2dx时代luajit的发扬光大,现在lua+unity的性能依然存在着相当的瓶颈。仅从《性能比较》的test1就可以看到,iphone4s下二十万次position赋值就已经需要3000ms,如果是coc这样类型的游戏,不处理其他逻辑,一帧仅仅上千次位置赋值(比如数百的单位、特效和血条)就需要15ms,这显然有些偏高。 是什么导致lua