JAVA和计算机原理

  • 计算机由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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值