一般的桌面程序,有源代码的话就找带main方法的吧,当然可能有些测试类也有main方法,如果是打包jar的,用winrar打开它,看其META-INF/menifest.mf文件里面Main-Class这个段后面写的就是主类,也就是程序入口了。
Java是一种可以撰写跨平台应用软件的面向尘厅对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计辩兄腔算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和
Java平台的总称。Java由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。
技术优势
与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。java的应用已十分广泛。
Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。
JAVA 的用途:80%以上的高端企业级应用都使用JAVA平台(电信、银行等)。JAVA是成熟的产品,已经有10年的历史。
自从1995年Sun公司正式发布Java1.0版以来,在全球范围内引发了经久不衰的Java热潮,Java的携衫版本也不断更新到v1.1,v1.2,v1.3,v1.4,其内容也有了巨大的改进和扩充,还出现了标准版、企业版、服务器版等满足不同需要的版本。另外还有迅速发展的JavaBean,其它的Java编译器和集成开发环境等第三方软件。
main函数。
class CMyCountTime
{
private:
clock_t m_time
public:
CMyCountTime(){m_time=clock()}
~CMyCountTime()
{
m_time=clock()-m_time
cout <<m_time/CTK_CLK <<endl
}
}
测速例子
{
CMyCountTime mytime;
运行被测试程序代码
}
扩展资料:
C是C++的基础,拆戚C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到誉空输出或实现过程(事务)控制。 所以C与C++的最大区别在庆御瞎于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
参考资料来源:百度百科-c++程序
编译技术什么是程序的入口语句?我们刚开始学习C语言的时候,总会以一个hello world程序开始了解,并会被告知main是程序的入口函数。那么是否有怀疑过,既然main是函数的入口,那么全局函数是如何初始化的?
实际上main并不是一个程序的入口地址。
以linux为例,一个可执行程序是ELF格式(Executable and Linkable Format)。在ELF的文件头里老档记录了当程序入口地址,该入口地址是内核加载该文件后的第一条指令执行的地方。
可以写个hello world,生成可执行文件,然后通过readelf -h a.out查看文件头:
ELF 头: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 类别: ELF64 数据: 2 补码,小端序 (little endian) 版本: 1 (current) OS/ABI: UNIX - System V ABI 版本: 0 类型: DYN (共享目标文件) 系统架构: Advanced Micro Devices X86-64 版本: 0x1 入口点地址: 0x1040 程序头起点: 64 (bytes into file) Start of section headers: 14688 (bytes into file) 标志: 0x0 本头的大小: 64 (字节) 程序头大小: 56 (字节) Number of program headers: 11 节头大小: 64 (字节) 节头数量: 29 字符串表索引键含帆节头: 28
这里入口地址是0x1040。
让我们反编译看看:
0000000000001040 <_start>: 1040: f3 0f 1e fa endbr64 1044: 31 ed xor %ebp,%ebp 1046: 49 89 d1 mov %rdx,%r9 1049: 5e pop %rsi 104a: 48 89 e2 mov %rsp,%rdx 104d: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp 1051: 50 push %rax 1052: 54 push %rsp 1053: 4c 8d 05 76 01 00 00 lea 0x176(%rip),%r8 # 11d0 <__libc_csu_fini>105a: 48 8d 0d ff 00 00 00 lea 0xff(%rip),%rcx # 1160 <__libc_csu_init>1061: 48 8d 3d d1 00 00 00 lea 0xd1(%rip),%rdi # 1139 <main>1068: ff 15 72 2f 00 00 callq *0x2f72(%rip) # 3fe0 <__libc_start_main@GLIBC_2.2.5>106e: f4 hlt 106f: 90 nop
0x1040对应的是_start函数,_start调用了glibc中的__libc_strat_main.__libc_strat_main最终会调用main函数。(_start和__libc_start_main的分析见《程序员的自我修改——链接、装载与库》11.1)
既然知道main不是程序的真正入口,那么是否稿雹有办法在main之前或之后执行代码呢?
gcc提供了一组“进入”、“退出”函数可以首先这个功能:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)