java
文章平均质量分 83
jackesy
从事JAVA技术研发工作近10年,带领过30人左右的技术团队。具有搭建高可用、可扩展性系统的架构设计能力,熟悉微主流服务架构设计思想,熟悉SpringBoot、SpringCloud微服务框架,了解docker、k8s集群架构,熟悉Scrum敏捷研发流程,业余时间爱好关注互联网前沿新技术,2016年获得51CTO认证的优秀技术经理毕业证书。
展开
-
Java内存的原型及工作原理深度剖析
一、java虚拟机内存原型寄存器:我们在程序中无法控制;栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中;堆:存放用new产生的数据;静态域:存放在对象中用static定义的静态成员;常量池:存放常量;非RAM存储:硬盘等永久存储空间。二、常量池(constant pool)常量池指的是在编译期被确定,并被保存在已编译的。class文件中的一些数据原创 2015-01-27 10:49:41 · 560 阅读 · 0 评论 -
使用Eclipse Memory Analyzer分析内存
MAT(Memory Analyzer Tool) 是基于heap dumps来进行分析的,所以首先必须通过一定的手段得到JAVA堆的DUMP文件。原创 2015-07-24 13:32:48 · 11869 阅读 · 0 评论 -
JAVA垃圾收集机制与内存分配
垃圾收集器在对一个对象回收之前,首先要判断对象在程序中是否还有使用的可能性,充要条件就是没有被程序可访问的引用再指向这个对象实例。最简单的办法就是给对象实例添加中添加一个引用计数器,每当有一个引用指向它时,计数器就加一,当引用失效时,计数器就减一,如果计数器值为0则说明没有引用指向它,可以进行回收。但是这个方法中计数器为0并不是一个必要条件,例如,生成两个对象实例,每个对象实例的属性都指向对方,那么这个两个对象实例分别最少有一个引用。原创 2015-07-26 16:42:38 · 946 阅读 · 0 评论 -
web.xml配置详解
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并交给servletContext。 4、容器创建中的类实例,创建监听器。 二 Load-on-startupLoad原创 2015-03-13 11:19:55 · 960 阅读 · 0 评论 -
JAVA负载均衡
改善JAVA服务器的性能需要模拟负载下的服务器。创建一个模拟环境、搜集数据并且分析结果可能是对许多开发人员的挑战。这篇文章中的示例介绍了JAVA服务器性能分析的概念和工具。作者使用这个示例来研究超额请求次数下内存使用和同步竟争的影响。原创 2015-01-23 17:30:02 · 6964 阅读 · 0 评论 -
深入理解java内存模型
在java中,所有实例域、静态域和数组元素存储在堆内存中,堆内存在线程之间共享(本文使用“共享变量”这个术语代指实例域,静态域和数组元素)。局部变量(Local variables),方法定义参数(java语言规范称之为formal methodparameters)和异常处理器参数(exception handler parameters)不会在线程之间共享,它们不会有内存可见性问题,也不受内存模型的影响。原创 2015-01-23 16:23:15 · 692 阅读 · 0 评论 -
JAVA常见异常解析
1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化原创 2015-01-23 17:26:03 · 6064 阅读 · 0 评论 -
Java读取大文件的高效率实现
1、在内存中读取读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:Files.readLines(new File(path), Charsets.UTF_8);FileUtils.readLines(new File(path));这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大原创 2015-01-27 11:09:39 · 6609 阅读 · 0 评论 -
写好Java代码的30条经验总结
成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写s原创 2015-01-27 10:52:53 · 725 阅读 · 0 评论 -
Java程序员必须掌握的8大排序算法
8种排序之间的关系1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 package com.njue; public class原创 2015-01-27 10:54:02 · 705 阅读 · 0 评论 -
java八大经典排序算法
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序。8种排序之间的关系: 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。快速排序:是目前基于...原创 2018-04-28 15:00:03 · 30866 阅读 · 8 评论