首页 > 编程语言 > 详细

java编程探究

时间:2022-05-27 21:38:50      阅读:10      评论:0      收藏:0      [点我收藏+]

  一些对底层知识点的概括。

  汇编程序可以当成一个函数,C语言的时候函数量就更大了,c++和java衍生成了对象的方法。一个类就是一个c结构和函数库增加一个类方法组。创建对象时候,结构被放在堆中,类函数组被加载到方法区内存。堆、方法区,以及线程操控的栈,共同构成程序的内存。其中GC会对堆进行管理,线程的回收利用对栈进行管理,方法区随着类的加载而增大。

  程序运行起来会有热点机制,循环和重复引用的代码会被检测出来。这些代码不是通过解释-执行,而是直接解释成机器码存储起来,直接引用。超过阀值的就会被设成热点,阀值的选取还有类似的机制都是虚拟机在做的事。一些脚本语言也有热点机制,比java早。

  程序的内存是虚拟内存,每个程序占用一些虚拟内存页,这些页指向的内容被操作系统放到内存或磁盘上。物理内存一部分用来放翻译虚拟地址用的页表,包括高速缓存也会被页表缓冲占用。地址翻译被MMU和TLB等外设完成,不占用CPU的计算量。

  CPU的计算并不是一条条完成,像线程一样分流水。同一时间一个核心进行着多个指令。有些指令之间有因果关系不能并发执行,这会变相提升相关程序代码的执行时间。编程时尽量把外界变量变为更局部的变量,可以减轻因果关系。编译器也会做一些其它的优化处理。

  对外界的读主要通过TCP。网络传输通道通过路由器的交互建立,TCP对通道的可靠性做些优化,产生了交互规则。对内可以把TCP看成网卡驱动,由操作系统申请TCP内存,以及每个套接字的内存。程序对套接字内存只可以读出和写入,并在程序本身申请的内存上完成对数据的加工。

  对磁盘读写和读内存不同,虚拟内存只有物理内存大小囊括不了磁盘。读磁盘使用了一些系统调用指令或函数方法。可以读一个文件并得到句柄,也可以直接读磁盘,都需要把磁盘内容加载到内存。

java编程探究

原文:https://www.cnblogs.com/flangrean/p/15352157.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!