java虚拟机在执行java程序的过程中,会把自己所管理的内存划分为几个不同的区域。每个区域的作用不同,创建和销毁的时间也不同。java虚拟机所管理的内存分为以下几个运行时区域:
JVM中对象的创建过程
在使用java开发程序的时候,用new就可以创建出一个对象。在这个创建对象的过程中,JVM做了不少的工作,流程大体如下:
Linux sftp、rlogin命令中执行一段脚本的方法
Linux中使用rsh远程登陆或者sftp的时候,想要在登陆命令后面执行一段命令,可以使用下面的方式。
office online server实现文档的预览编辑
最近项目中需要用到office文件在线编辑功能,然而很多解决方案都是收费的,于是决定采用微软免费的microsoft office online 2016和wopi 协议来实现。
java多线程之Semaphore
信号量(Semaphore)是一个线程同步的辅助类,可以维护当前访问自身的线程个数。使用Semaphore可以控制同时访问某个特定资源的线程个数,例如,实现一个文件允许的并发访问数。
java多线程之CyclicBarrier
栅栏 (CyclicBarrier) 的类似于闭锁,它能阻塞一组线程直到某个事件发生。栅栏与闭锁的不同之处在于,所有线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏则用于等待其他线程。
MyBatis之一二级缓存
对于DB中更新不频繁的数据使用缓存可以大大提高查询效率。MyBatis 作为一款非常流行的持久层框架,自然是提供了缓存支持的。MyBatis支持一级缓存和二级缓存。在没有配置的默认情况下,它只开启一级缓存。
java多线程之CountDownLatch
闭锁(CountDownLatch)是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。闭锁的作用相当于一扇门:在闭锁到达结束状态前,这扇门一直是关闭的,不允许任何线程通过:当到达结束状态时,这扇门会打开并允许所有的线程通过。当闭锁到达结束状态后,将不会再改变状态。
Spring MVC不能直接接收List类型参数的问题
前端使用jquery向后台传递数组类型的参数,Java后台直接通过List类型接收,会发现无法取到参数。就像下面的情况:
SQL语句执行顺序
数据库是大多数程序员经常接触的东西。虽然项目中经常写sql,相信有部分人对SQL的执行顺序了解的不多。这里简单的介绍一下。