- 计算机由CPU,DDR缓存,内存,硬盘组成。计算机的工作原理与编程语言的原理都是相通的。
- 线程是进程(如JVM就是一个进程)的单位,进程间相互独立,进程可申请系统资源,同一进程的各线程间共享资源。某进程内的线程在其它进程不可见。
- 目前CPU的基本单位是线程,JAVA也是基于多线程模式,当JAVA程序运行中一个线程使用资源过大,可能导致整个JVM进程挂掉,这种情况在多进程模型中不会发生,因为多进程模型中,单个进程挂掉不影响其他进程运行。
- 单核CPU在处理请求时,为了实现多线程高效处理,会分配时间片来处理,没有处理完的数据,就会放在DDR缓存中,方便下次直接读取,这就是缓存(cache),其实就是一个“就近原则”,java大部分操作都是申请对象和操作对象,对象的实例空间通常就存储在JAVA的“堆”中,当程序使用基本类型时,直接在“栈”申请空间,对象的引用地址也在“栈”上,“堆和栈”就是java的Cache。
- 内存,Java语言中,主要是Heap区域,当系统参数设置为-xms(物理内存),-xmx(虚拟内存)时,JVM申请,通过OS预先分配的实际物理内存是-xms的大小,但是未必会立即分配-xmx大小的空间给JVM。JVM管理自己的内存,输出时交给OS或者网络。
- 缓存,java中普通的Mysql数据库单机的QPS(每秒查询次数)达到几千就很高,但是缓存可以几万甚至十万以上,主要原因是缓存基于K-V结构,剥离了数据库中许多复杂一致性概念,大部分情况在内存中完成,通常就处理简单的存取操作。缓存大多用于“非强制一致性”环境,容忍少量数据丢失。查询命中率90%以上算比较好利用到缓存。
- I/O和乱码,I/O传输数据都是基于字节(byte)的,也可以说是二进制数据,JAVA虽然有字符流,是因为对字节做了包装处理,实际交互中最终还是字节。数据的I/O传输就涉及到编码,没有统一的规范协议,数据接收方就不知道该怎么处理接受到的数据,所以编写代码时,要么双方约定,要么在数据头部包装字符集和数据类型,如http的contentType。
JAVA和计算机原理
最新推荐文章于 2023-10-26 23:57:03 发布