Java的垃圾回收机制详解和调优
1.JVM的gc概述 gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。 在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注…
1.JVM的gc概述 gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。 在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注…
JavaScript对象的概述 对象 就是指现实世界中的某个具体事物或者一个独立的实体,如一个学生、一辆汽车、一个div标记都是一个对象。 面向对象的概念:就是把现实中的对象抽象为一组数据和若干操作方法(函数) ,可以把对象想象成一种新型变量:这种变量既能保存自己的若干数据成员(特征或属性),又包含对这些数据进行处理的方法 (函数或行为)。 学生对象的属性:学号、姓名、性别、年龄、各门课成绩 学生…
在Java NIO编程中,对缓冲区操作常常需要使用 java.nio.Buffer中的 flip()方法。 Buffer 中的 flip() 方法涉及到 Buffer 中的c apacity、position、limit 三个概念。 capacity: 在读/写模式下都是固定的,就是我们分配的缓冲大小(容量)。 positi on: 类似于读/写指针,表示当前读(写)到什么位置。 l imit:…
Java教程:Https(get,post)请求工具类 源码: HttpClientUtil import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import …
Protobuf在Java中的简单使用 1. 在Java中使用protobuf需要jar包,下载protobuf-Java-2.5.0.jar包文件,添加到项目中。另外需要protoc.exe来编译proto文件。jar包及测试代码地址: http://download.csdn.net/detail/yaoyuanyylyy/7581985 2. 新建一个msg.proto文…
前言 在写后端的c层返回字段断言的时候,进行对于user对象的isAdmin字段断言。相关实体类字段如下 当我断言时,我断言isAdmin字段存在 但是他报错说不存在$.isAdmin。 解决方法是打印一下相关数据,看见返回值为“admin”: true,我们将isAdmin改成admin,运行通过。但是为什么是admin而不是isAdmin呢?在我过去的认知里,json字符串的键值一直跟对象的属…
csv文件导出UTF-8乱码解决方案 文末有个自己开发过程中遇到的问题。 原因:缺少bom设置 设置bom byte[] bom ={(byte) 0xEF,(byte) 0xBB,(byte) 0xBF}; 业务代码: public ResultMap appleExportCSV() throws Exception { File bcpFile = new File("G:\\csv\\te…
一、并发容器概览 ConcurrentHashMap:线程安全的HashMap CopyOnWriteArrayList:线程安全的List BlockingQueue:这是一个接口,表示阻塞队列,非常适合用于作为数据共享的通道 ConcurrentLinkedQueue:高效的非阻塞并发队列,使用链表实现。可以看做一个线程安全的LinkedList。 ConcurrentSkipList:是一个…
设计一个学生类Student和它的一个子类Undergraduate,要求如下: (1) Student类有name(姓名)和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show()方法打印Student的属性信息。 (2) 本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和ag…
1、线程的5种状态 新建 : 就绪 :当调用线程对象的start()方法(t.start();),线程即进入就绪状态。等待CPU分配时间片。 运行 : 堵塞 :等待堵塞(线程执行wait()方法)、同步阻塞(锁被其他线程占用)、.其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。 死亡 : 2、线程优先级 Java 线程的优先级是一个整数,其取值…