JAVA
文章平均质量分 79
chenjian98
从事java开发。
展开
-
Java内存溢出
内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码。更严重的是内存溢出与数据库锁表在系统开发和单元测转载 2014-11-27 09:22:49 · 429 阅读 · 0 评论 -
Java虚拟机体系结构深入研究总结
工作以来,代码越写越多,程序也越来越臃肿,效率越来越低,对于我这样一个追求完美的程序员来说,这是绝对不被允许的,于是除了不断优化程序结构外,内存优化和性能调优就成了我惯用的“伎俩”。要对Java程序进行内存优化和性能调优,不了解虚拟机的内部原理(或者叫规范更严谨一点)是肯定不行的,这里推荐一本好书《深入Java虚拟机(第二版)》(Bill Venners著,曹晓刚 蒋靖 译,实际上本文正是原创 2016-03-02 18:39:30 · 362 阅读 · 0 评论 -
java GBK中文乱码问题
在io相关的操作中经常会出现乱码问题比如在一个txt文件中按GBK编码保存内容”淘!我喜欢!”然后用RandomAccessFile类读取并打印一行。RandomAccessFile raf = new RandomAccessFile("D://1.txt","r");System.out.print(raf.readLine());打印结果显示乱码:原创 2016-02-17 10:53:17 · 3871 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2016-03-03 18:35:20 · 235 阅读 · 0 评论 -
Java Web应用中调优线程池的重要性
不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求。线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的。本文主要介绍Java线程池的使用和如何正确的配置线程池。单线程我们先从基础开始。无论使用哪种应用服务器或者框架(如Tomcat、Jetty等),他们都有类似的基础实现。Web服务的基础是套接字(socket),套接字负责监听端口,等待T原创 2016-02-22 15:00:09 · 742 阅读 · 0 评论 -
Java 微服务框架 Redkale 入门介绍
Redkale虽然只有1.xM大小,但是麻雀虽小五脏俱全。既可作为服务器使用,也可当工具包使用。作为独立的工具包提供以下功能:1、convert包提供JSON的序列化和反序列化功能,类似Gson、Jackson。2、convert包提供Java对象二进制的序列化和反序列化功能,类似Protobuf。3、source包提供很简便的数据库操作功能,类似JPA、Hibernate。4、n原创 2016-02-22 15:39:53 · 2338 阅读 · 1 评论 -
Java常量池理解与总结
一.相关概念什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存原创 2016-02-25 15:04:11 · 302 阅读 · 0 评论 -
Integer缓存策略
一、测试类public class TestInteger { public static void main(String[] args) { Integer t1 = 3; Integer t2 = Integer.valueOf(3); System.out.println(t1==t2);//true //-127到128之间 Integer t3 = 30原创 2016-04-06 14:59:48 · 417 阅读 · 0 评论 -
性能测试应该怎么做?
偶然间看到了阿里中间件Dubbo的性能测试报告,我觉得这份性能测试报告让人觉得做这性能测试的人根本不懂性能测试,我觉得这份报告会把大众带沟里去,所以,想写下这篇文章,做一点科普。首先,这份测试报告里的主要问题如下:1)用的全是平均值。老实说,平均值是非常不靠谱的。2)响应时间没有和吞吐量TPS/QPS挂钩。而只是测试了低速率的情况,这是完全错误的。3)响应时间和吞吐转载 2016-07-06 14:53:51 · 5158 阅读 · 0 评论 -
GitHub上那些值得一试的Java开源库
作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,Spring,Hibernate等等。除了这些,你可能还会fork或Star一些其他的开源库,但GitHub上的库实在太多了,以至于对于个人来说,你很难有时间去发现并了解那些不断加入的新库,而它们却往往能在一些新兴领域中给你提供帮助。我一直使用JAVA来写后端应用,平时也会关转载 2016-07-19 22:16:51 · 2891 阅读 · 0 评论 -
jsp call shell or linux command
String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> "> My JSP 'index.jsp'原创 2016-08-01 09:42:00 · 397 阅读 · 0 评论 -
JAVA IO
1、之前学习JAVA io仅限于会用,通过度娘找一段例子,实现功能,但是 并没有深入研究。如果你对Java的IO包没有一个全貌的了解,或者对设计模式没有做到深入理解的话,是不可能彻底搞明白这些关系的。由此也可以看出,学习必须是递进式的,如果你在底子还不够的时候,就打算一口吃个胖子的话,是很容易碰一鼻子灰的。好在林萧一直对于自己学习的食量,把握的都还比较到位。该搞明白的,哪怕花再多时间原创 2016-10-14 15:22:14 · 296 阅读 · 0 评论 -
thinking in java 第十四章 类型信息
1、RTTI:运行时识别一个对象的类型。2、所有的类都是第一次使用时,动态加载到jvm中。当程序创建第一个对类的静态成员引用时,就会加载这个类。3、Class对象仅在需要的时候才会被加载,static初始化是在类加载的时候进行的。public interface A {}public interface B {}public interface C {}public原创 2016-10-03 12:19:30 · 535 阅读 · 0 评论 -
Project Lombok
Project Lombok 通过注解来减少 Java 中的重复性代码,比如 getter 和 setter、非空检查、生成 Builder 等。 环境准备: 1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下 2. 打开 eclipse.ini / myeclipse.ini,在最后面插入以下两行并保存:原创 2017-03-05 22:16:39 · 469 阅读 · 0 评论 -
Java高级特性之反射学习总结
老规矩我们还是先提出几个问题,一门技术必然要能解决一定的问题,才有去学习掌握它的价值一、 什么是反射?二、反射能做什么?一、 什么是反射?用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值转载 2016-01-11 16:36:03 · 325 阅读 · 0 评论 -
分布式缓存-Memcached
分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性)。分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由。原文:http://wenku.baidu.com/view/8686d46c7e21af45b307a8c转载 2016-01-08 10:27:06 · 293 阅读 · 0 评论 -
如何诊断 Java 中的内存泄露
每次我怀疑有内存泄漏时,我都要翻箱倒柜找这些命令。所以,这里总结一下以备后用:首先,我用下面的命令监视进程:while ( sleep 1 ) ; do ps -p $PID -o %cpu,%mem,rss ; done(如果有的话还有New Relic)如果你看到内存上升很快,可能是因为虚拟机设置。如果你没有明确指定JVM的内存设置,它将设置默认值给他们。转载 2015-12-05 10:33:53 · 339 阅读 · 0 评论 -
深入解析ArrayList
1.前言在平时的开发中,Java集合一直是比较常用的。以前,对集合的掌握并不深入,仅简单的使用增删改查的相关方法。这个星期,抽时间反复的读了几遍ArrayList的源码,有了一些收获,写出来给自己,也希望对大家有帮助。2.走进ArrayList看一下ArrayList的声明和属性声明:转载 2014-11-25 09:35:09 · 484 阅读 · 0 评论 -
java实现简单的单点登录
Java代码 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单转载 2015-01-06 16:17:01 · 813 阅读 · 0 评论 -
HTML5
HTML5都有哪些功能?博客分类:HTML5HTMLHTML5 What's new in HTML5?参考自:HTML5:MDN语义1.HTML5中的节段和外观元素。,,,,,标签简介提示article标签定义文章标签规定独立的自包含内容。潜在来源:论坛帖子转载 2015-03-06 10:02:55 · 492 阅读 · 0 评论 -
Http协议学习总结
一、什么是HTTP协议 HTTP,全名HyperText Transfer Protocol。因特网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。现在对与HTTP协议的应用已经很多了,浏览器上网,下载文件,服务器间通信等。 二、HTTP协议格式 如下图,一次完整的HTTP交易过程,是由HTTP请求和HTTP响应组成的。下面介转载 2015-03-09 09:33:27 · 601 阅读 · 0 评论 -
HTTP Servlet 的service() 方法
HTTP Servlet 的service() 方法Servlet编程浏览器HTML工作 1、HTTP Servlet 使用一个 HTML 表格来发送和接收数据。要创建一个 HTTP Servlet,就需要扩展 HttpServlet 类,该类是用专门的方法来处理 HTML 表格的 GenericServlet 的一个子类。当表单信息被提交时,会指定服务器应执行哪一个Servl转载 2015-03-12 09:35:12 · 4104 阅读 · 2 评论 -
浅析Java虚拟机结构与机制
本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。当然本文只是一个简单的入门,不会涉及过多繁杂的参数和配置,感兴趣的同学可以做更深入的研究,在研究JVM的过程中会发现,其实JVM本身就是一个计算机体系结构,很多原理和我们平时的硬件、微机原理、操作系统都有十分相似的地方,所以学习JVM本身也是加深自转载 2015-12-10 19:32:59 · 301 阅读 · 0 评论 -
面向GC的Java编程
Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题。以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象,就交给GC来做吧!甚至有人说,如果在编程过程中频繁考虑内存问题,是一种退化,这些事情应该交给编译器,交给虚拟机来解决。这话其实也没有太大问题,的确,大部分场景下关心内存、GC的问题,显得有点“转载 2015-12-10 19:18:21 · 248 阅读 · 0 评论 -
Redis整合Spring结合使用缓存实例
摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方法前面。一、Redis介绍什么是Redis?redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序转载 2015-12-29 23:19:24 · 491 阅读 · 0 评论 -
java性能优化总结
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的原创 2015-11-29 11:04:29 · 391 阅读 · 0 评论 -
Set中的元素为什么不允许重复
版权所有,转载请声明出处 zhyiwww@163.com 为了弄清楚这个问题 , 我又看了一遍 Collection 部分 , 并且看了些其中的源码 , 觉得对其中的实现又明白了一点 , 现在说出来和大家共享 .我们先看一下 Set 类的关系图: 现在我们就从 Set 说起。Set 接口为我们提供了一个 add() 方法,以让我们添加元素。所以我们看一下在其实现类转载 2015-12-16 18:44:37 · 14904 阅读 · 1 评论 -
Java读取文本文件中文乱码问题
最近遇到一个问题,Java读取文本文件(例如csv文件、txt文件等),遇到中文就变成乱码。读取代码如下:[java] view plain copy print?List lines=new ArrayList(); BufferedReader br = new BufferedReader(new FileReader(fil转载 2016-01-19 10:02:59 · 266 阅读 · 0 评论 -
jvm理解
Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。一、JVM原理1、JVM简介:JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计原创 2016-01-21 18:46:59 · 299 阅读 · 0 评论 -
多线程总结
java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所原创 2015-12-21 22:43:08 · 319 阅读 · 0 评论 -
JavaScript 操作 DOM 常用 API 总结
文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识。基本概念在讲解操作DOM的api之前,首先我们来复习一下一些基本概念,这些概念是掌握api的关键,必须理解它们。Node类型DOM1级定义了一个Node接口,该接口由DOM中所有节点类型实现。这个Node接口在原创 2016-01-07 09:25:50 · 405 阅读 · 0 评论 -
java 8 操作List List<T>转换成List<String>
如:Class MdmOrgPostcodeEntity{ String id, String name}需要将List<MdmOrgPostcodeEntity>-->转换成List<String>这样方便根据ID批量删除List<String> list = functions.stream().map(MdmOrgFun...原创 2019-02-26 16:49:23 · 11333 阅读 · 0 评论