java
CaptainDing
努力成为互联网行业的一名成功的技术人才!
展开
-
java双亲委派机制与作用
双亲委派机制与作用2.1 什么是双亲委派机制当某个类加载器要加载 .class文件时,先上级类加载器去加载,一直递归下去,如果上级类加载器没有加载,则自己在去加载。2.2 类加载器的区别启动类加载器 BootstrapClassLoaderC++编写,加载核心库 java.* 创建 ExtClassLoader 和appClassLoader标准扩展类加载器 ExtClassLoaderjava编写,加载扩展库, classpath中的jre javax 或者 java.ext.原创 2021-03-08 23:20:44 · 197 阅读 · 0 评论 -
log4j配置 自动删除日志文件
1. 需要使用的两个包log4j-core-xx.jar log4j-api-xx.jar2. classpath为scr文件夹下必须注意.xml 文件的文件名为log4j2<?xml version="1.0" encoding="UTF-8"?> <!-- status=debug 可以查看log4j的装配过程 --> <Configuration status="off" monitorInterval="1800"&g...转载 2020-05-13 20:35:08 · 7152 阅读 · 1 评论 -
Linux centos yum 安装jdk
1.查看linux是否是centoslsb_release -a 可以查看是否是centos2. 安装jdkyum -y install java-1.8.0-openjdk安装之后,java -version 可以查看版本,但是javac -version不行3.执行命令使得javac可以执行yum install java-devel利用该命令,之后java...原创 2019-10-24 22:39:05 · 220 阅读 · 0 评论 -
PowerMock类的私有属性和方法
项目的单元测试经常会对某一些类的私有属性和私有方法进行mock,这个时候powerMock可以胜任这个任务。maven 依赖的pom <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-...原创 2019-09-10 15:50:54 · 9282 阅读 · 0 评论 -
log4j日志系统学习
<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"> <Properties> <Property name="logDir">/export/Logs/jimi3-dm.jd.local</Property> &l...原创 2019-07-17 11:37:29 · 215 阅读 · 0 评论 -
code review 常见问题
1. 共有方法判空问题只要是public方法,入参一定要判空,这样其他人在使用该方法时入参错误了可以收到具体的错误信息。另外所有的对象在使用前都要记得判空,防止因为一个空指针异常,程序终止。2. 异常块的包裹范围大在finally块中,文件close之前一定记得判空File file = new File(fileName); BufferedReader reader ...原创 2019-04-17 21:46:08 · 257 阅读 · 0 评论 -
同一个工程MQ 的producer和consumer以及Dubbo的provider 分离 独立发布
背景:好多时候在同一个项目中需要完成MQ Dubbo等服务,但是发布项目的时候想把每个服务单独部署,相互不要干扰,这样在出现问题时候也容易排查,方便管理。解决思路:配置文件在java Spring 工程中,我们一般都是通过spring.xml来管理主要的service、listener、producer等。 我们可以通过spring.xml加载不同的resource来实现把不同的服务独...原创 2018-11-16 09:17:22 · 1129 阅读 · 1 评论 -
当运行jar时,如何设置 jar 的-Xmx
只需要在 -jar 与jar包名的中间添加 -XX:MaxHeapSize=7168M 就可以设置最大堆内存了java -jar -XX:MaxHeapSize=7168M A.jar原创 2018-08-08 17:06:39 · 5797 阅读 · 0 评论 -
volatile和synchronized区别
volatile和synchronized特点首先需要理解线程安全的两个方面:执行控制和内存可见。执行控制的目的是控制代码执行(顺序)及是否可以并发执行。内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。synchronized关键字解转载 2017-04-04 10:41:13 · 478 阅读 · 0 评论 -
Java为什么要使用内部类?
1.内部类 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个 方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直 接实现这个接口的功能。 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作为设计转载 2017-03-12 10:52:23 · 2763 阅读 · 0 评论 -
java的native方法
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。 "A na原创 2016-11-25 22:08:20 · 367 阅读 · 0 评论 -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟机规范中规转载 2016-11-25 09:50:26 · 350 阅读 · 0 评论 -
程序员学习网站大全
1、 http://pengjiaheng.iteye.com/?page=2 虚拟机调优2、 http://blog.csdn.net/column/details/jvm-principle.html Java虚拟机规范3、 http://blog.csdn.net/column/details/java-vm.html Java虚拟机规范4、 http:/转载 2016-11-23 13:22:44 · 3883 阅读 · 0 评论 -
深入理解Java的接口和抽象类
1.接口 接口只能有成员变量和方法,没有构造方法。它是一种行为的具体抽象。并且成员变量只能是静态的 即public static final(即使在自己写程序,没有明确指出,java也会隐式地指定为 public static final).同样地,方法必须是抽象的方法,只能是public abstract(即使在自己写程序,没有明确指出,java也会隐式地指定为 public st原创 2016-09-13 22:11:10 · 323 阅读 · 0 评论 -
socket输入流中读取一个固定长度的字节
前段时间项目中用到socket编程,我用socket输入流读取一个固定长度的字节经常会遇到各种各样的错误:后面读取内容的错位,或者直接后面的内容读取不到等问题。原创 2016-04-22 12:04:48 · 8798 阅读 · 0 评论 -
eclispe控制台输出太多前面的被掩盖,设置输出定向到一个文件,但是文件有时候内容不全问题解决
1.对Java标准输出重新定向到一个文件有时候我们为了调试程序需要输出很多内容到控制台(Console)上,但是有时候前面输出的内容已经看不到(我猜应该是Console有一定的运行内存有关),所有我们就看不到完整的输出信息。这个时候有一个办法就是通过把System.out这个输出流定向到一个文件,在程序中利用System.out...等方法打印的内容就会完全存入这个制定的文件中去,方便记录原创 2016-04-22 08:27:34 · 2132 阅读 · 0 评论 -
eclipse错误: 找不到或无法加载主类 main.Main
把properties属性里的java compiler-->building-->abort build when build path errors occur 前的勾去掉了这样就ok 了好像还有好多其他的情况,请查看http://blog.csdn.net/chenleixing/article/details/44816629原创 2015-09-16 21:16:05 · 8504 阅读 · 0 评论