
J2EE
CopyProfessor
不生产代码,只是代码的搬运工
展开
-
java.lang.OutOfMemoryError: PermGen space: java reflection
原文地址:https://stackoverflow.com/questions/16130292/java-lang-outofmemoryerror-permgen-space-java-reflection/47090043#47090043问题使用如下java反射代码:Method method = LogFactory.class.getDeclaredMethod("getContex翻译 2017-11-04 14:53:17 · 680 阅读 · 0 评论 -
PermGen space : Caused by reflection
原文地址原创 2017-11-03 14:27:41 · 326 阅读 · 0 评论 -
JVM GC一个对象的朝生夕死
一,假如活在一个没有分代的连续内存中 假设程序占用的内存是从0000~FFFF这个地址,现在程序执行到给一个对象分配内存的那部分代码,给这个对象分配了2345~2346这段内存,程序继续执行,到了某一个时刻,程序分配的内存地址用完了,这时候,程序要回收这段地址里面,已经无用的对象,那么,它首先要从头到尾扫描一遍,然后把其中没用的地址空间找到,之后将对象占用地址的起始位置和终止位置进行一个向上或原创 2017-09-11 23:58:38 · 999 阅读 · 0 评论 -
JVM FULL GC太频繁,CPU占用率过高问题
一,问题描述 今天上午时候,kafka的一个topic涌上来超过平常值的一堆数据,消费客户端就开始出现了几个明显的问题: 1,首先是ZK连接超时 2,CPU飙升到400% 3,观察程序GC,发现老年代,S0,Eden这三个,100%; 4,线程数目太多二,问题分析 ...原创 2017-09-11 23:22:34 · 10026 阅读 · 1 评论 -
Java——RMI
之前分布式系统调用用的是比较老的EJB,当时还是作为服务调用方,去调用别的系统的服务。最近发现新公司里面,用的是RMI,查了下发现EJB的底层实现就是RMI,也算是熟悉了。。。 一,使用JDK 中的RMI实现服务发布和引用服务端接口:/** * Created by LiuHuiChao on 2016/11/18. */public interface UserInfoService ex原创 2016-11-18 21:58:37 · 2191 阅读 · 4 评论 -
Java String源码解析
public final class String implements java.io.Serializable, Comparable, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash co原创 2016-10-31 20:51:29 · 896 阅读 · 1 评论 -
MyBatis review(一)——常见配置及方法
一,#{} 与 ${}#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。${}表示拼接sql串,通过${}可以将parameterType 传入的内原创 2016-05-21 15:22:41 · 1913 阅读 · 1 评论 -
Solr在Tomcat上的搭建
一,关于Solr 1,From Where apache lucene是apache下一个著名的开源搜索引擎内核,基于Java技术,处理索引,拼写检查,点击高亮和其他分析,分词等技术。 nutch和solr原来都是lucene下的子项目。但后来nutch独立成为独立项目。nutch是2004年由俄勒冈州立大学开源实验室模仿google搜索引擎创立的开源搜索引擎,后归于apache旗原创 2016-05-21 09:43:01 · 13765 阅读 · 2 评论 -
Spring源码解析——配置文件读取相关的类
一,整体结构图 在Spring中,定义了如下类来处理经过经过验证的Document对象,并且对文档元素及属性进行解析。二,各个类基本介绍 1,ResourceLoader public interface ResourceLoader { /** Pseudo URL prefix for loading from the原创 2016-05-11 21:31:24 · 1978 阅读 · 2 评论 -
Java——ThreadLocal类
一,引入ThreadLocal/*测试ThreadLocal对象 * ThreadLocal:这个类提供了一个线程本地的变量。 * 这些变量在被共享访问的情况下在不同的线程里是独立的 ( 必须通过 get 和 set 方法来访问 ) 。 * 很显然该类提供了一个机制可以防止多线程访问带来的不安全机制。实际上就是在线程本地保存一个变量, * 而不是通过共享变量。这个就要看我们原创 2016-05-10 09:40:58 · 2123 阅读 · 1 评论 -
Spring源码解析—— ClassPathResource类
一,简单介绍Spring中资源处理相关类BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));在Spring中,定义了接口InputStreamSource,这个类中只包含一个方法:public interface InputStreamSource { /**原创 2016-05-09 20:08:10 · 17373 阅读 · 0 评论 -
Spring 三大基础组件简介
一,Bean,Core,Context关系 在Spring的各种组件中,Bean,Core,Context算是基础组件(ExpressionLanguage表达式支持, 这个主要就是用来支持一些spring XML配置文件表达式 和 注解中一些表达式解析,让配置有动态特性,spring早期的版本是没有这货的,不算是特别必须的,特别核心的东西,只是为了灵活性加的),在Core container这一转载 2016-05-09 11:23:13 · 12643 阅读 · 0 评论 -
Spring源码解析——start from BeanFactory(一)
先来看一下我们学习Spring时候的ABC代码: BeanFactory beanFactory=new ClassPathXmlApplicationContext("applicationContext.xml"); UserManager userManager=(UserManager)beanFactory.getBean("UserManagerImpl"); userMana原创 2016-05-09 08:26:56 · 3448 阅读 · 0 评论 -
Java反射整理
无论是在C#还是Java(平常常玩儿的就这俩,所以这么举例,别的语言也雷同!),为了获取类的灵活性,我们会时常使用反射,将类的信息写入配置,通过运行时候动态获取类,类的方法,字段,等等。 在Java中,我们通常是一个思路来动态访问类信息的,先获取类的Class 类,这个Class指明了是哪个类,然后通过获取到的Class get各种类信息。一,获取Class类 public cla原创 2016-04-05 15:19:32 · 1181 阅读 · 5 评论 -
Spring源码导入MyEclipse
一,安装Gradle 解压之后,配置GRADLE_HOME: 之后在Path中加入: cmd监测是否安装成功:输入 gradle 出现上面结果表示安装成功。原创 2016-03-27 17:20:10 · 3491 阅读 · 2 评论 -
JUnit简单使用
刚开始做java web开发,感觉80%的东西跟.net平台还是蛮相似的。所以入手也木有啥压力。前段时间做一个东西,数据访问层是比较原始的JDBC写的,每次测试方法,都要写一个main方法在类里面进行测试,感觉很不爽:一是这个测试方法本来就不属于DAO的方法,写完之后还要删去,但是下次用到还得写。二是加入这个方法之后,感觉这个类开始变得职责不明确。 现在开始使用Junit了, 加入J原创 2015-12-25 10:32:24 · 1831 阅读 · 11 评论 -
Java的国际化支持(I18N问题)
一,读取PC的locale信息Locale信息是由语言跟国家代码组成的,在Java中,提供了Locale类对应语言信息。/* * //获取local信息 Locale defaultLocale = Locale.getDefault(); * System.out.println("country:" + defaultLocale.getCountry()); * System.o原创 2015-12-16 20:23:01 · 2944 阅读 · 4 评论 -
Java——动态代理
在静态代理中,我们在调用target类的时候,都是先拿到proxy类,因为proxy类中将target类作为了成员变量,并且跟target类继承了一样的接口,具有相同的方法,所以,在proxy类中,通过调用target类的方法来对目标类方法的执行前后插入特殊操作。 但是静态代理有俩缺点:1,代理类特别多,每增加一个target类,就要写一个代理;2,在proxy类中,可能我们需要插原创 2015-12-08 15:16:20 · 2087 阅读 · 2 评论 -
bug检查工具——FindBugs
Findbugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种Internationalization,12种Malicious code vulnerability,27种Multithreadedcorrectness,23种Performanc原创 2015-12-07 10:16:37 · 3737 阅读 · 6 评论 -
DOM4j读取XML基本操作及常见错误
前段时间用dom4j读取配置文件的时候,当时报了个小bug,后来中间去做别的东西了,几天又把那段代码拿出来调了下,发现ok了。 一,基本使用 为了使用这个东西读配置文件,首先引入: 下面是测试代码: public class DOM4Jtest { public static void main(String[] args){ SAXReader原创 2015-11-11 21:36:04 · 4183 阅读 · 10 评论 -
多线程之间的同步控制
问题:同时运行的几个线程需要共享一个数据,并且要考虑到彼此的状态和动作。例如,当一个线程对共享的数据进行操作时,在没有完成相关操作之前,不允许其他线程打断它,否则会破坏数据的完整性。也就是说,被多个线程共享的数据在同一时刻只允许一个线程处于操作之中。 实现原理: 为了保证线程安全,使用“锁旗标”;当线程A获得了一个对象的锁旗标后,线程B若也想获得该对象的锁旗标,就必须等待线程A完成规定的操原创 2015-10-05 10:52:28 · 2339 阅读 · 9 评论 -
Java——Thread/Runnable实现多线程
一,关于线程的基本概念 一个独立程序的每一次运行成为一个进程。 每个进程又可以包含多个同时执行的子任务,对应多个线程。 将一个进程分解为互不影响的多个线程,可以使多个线程并行执行,大大缩短了执行时间。二,通过继承Thread类实现新线程 public class FactorialThreadTe原创 2015-10-04 16:45:21 · 2203 阅读 · 6 评论 -
配置Tomcat解决URL传参引出的中文乱码问题
今天在写一个JSP页面时候,发现下面报错: 测试URL传参 通常情况下,通过使用contentType和下面的就可以解决传参过程中的中文乱码问题,但是貌似URL传参还要设备别的东西。 <% request.setCharacterEncoding("utf-8"); //用来解决中文乱码问题 %>原创 2015-03-10 22:25:25 · 3080 阅读 · 5 评论 -
MyEclipse+Tomcat部署发布webapp
一,MyEclipse中集成Tomcat服务器 我的MyEclipse使用的是10.0,Tomcat使用的是7.0.027;为了发布使用MyEclipse编写的web应用程序,需要现在MyEclipse中进行一些设置。 1,设置JDK版本在windows——首选项中设置如下:原创 2015-02-25 23:06:54 · 2896 阅读 · 12 评论 -
搭建Tomcat
1,安装apache-tomcat-7.0.27,下一步即可。 2,配置的环境变量 1,新建变量名:CATALINA_BASE,变量值例如:D:\Tomcat\apache-tomcat-7.0.272,新建变量名:CATALINA_HOME,变量值例如:D:\Tomcat\apache-tomcat-7.0.273,打开PATH,添加变量值:%CATALINA_HO原创 2015-02-25 20:38:23 · 1580 阅读 · 5 评论