现在位置: 首页 > 编程技术 > Java > 文章
2015年11月29日 Java ⁄ 共 8282字 JVM gc参数设置与分析已关闭评论 ⁄ 阅读 858 次
概述 java的最大好处是自动垃圾回收,这样就无需我们手动的释放对象空间了,但是也产生了相应的负效果,gc是需要时间和资源的,不好的gc会严重影响系统的系能,因此良好的gc是JVM的高性能的保证。JVM堆分为新生代,旧生代和年老代,新生代可用的gc方式有:串行gc(Serial Copying),并行回收gc(Parellel Scavenge),并行gc(ParNew),旧生代和年老代可用的gc方式有串行gc(Serial MSC),并行gc(Parallel MSC),并发gc(CMS)。 回...
阅读全文
2015年11月29日 Java, 建站相关 ⁄ 共 3197字 tomcat7部署已关闭评论 ⁄ 阅读 837 次
tomcat部署 1 2 3 4 5 U=admin && cd /opt/ \ && tar zxvf apache-tomcat-7.0.37.tar.gz \ && ln -sfT apache-tomcat-7.0.37 tomcat \ && chown -R $U:$U apache-tomcat* tomcat* \ && chmod 700 tomcat/bin/*.sh tomcat配置 日志及临时目录配置 1 2 3 4 5 6 7 8 9 cd /opt/tomcat \ && U=admin && LOGD=/var/log/tomcat \ && sed ...
阅读全文
2015年11月26日 Java ⁄ 共 2848字 Java学习-Vector vs ArrayList已关闭评论 ⁄ 阅读 795 次
在写jdk util库的时候,经常会被一些细节问题搞的莫名其妙。 比如之前的静态私有内部类的问题。 这次又注意到Vector与ArrayList的实现定义的存储结构上。 要深入理解,需要从各种角度来考虑设计的思路,但由于经验匮乏,很多时候还是想不到。 问题 先看两个定义: ArrayList: private transient Object[] elementData; Vector: protected Object[] elementData; ArrayList使用了transient关键字进行存储优化,而Vector没有这样...
阅读全文
2015年11月26日 Java ⁄ 共 1515字 Java学习-嵌套类 vs 内部类已关闭评论 ⁄ 阅读 1003 次
词汇表 顶层类 - top-level class 嵌套类 - nested class 内部类 - inner class(aka: non-static nested class) 外围类 - outer class(aka: enclosing class) 定义 首先通过Java Language Specs的一段话来详细看一下内部类,嵌套类的关系 > A nested class is a member of its enclosing class. Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declar...
阅读全文
2015年11月23日 Java, 安卓开发 ⁄ 共 4675字 建立一个属于自己的框架已关闭评论 ⁄ 阅读 723 次
1、拥有一套属于自己的框架的重要性 拥有属于自己的一套框架和代码库是非常重要的事情。这里面有个词语“属于”,嗯,没错,只有属于自己的事物才能真正掌控着并把它玩转起来。 一套框架、一套成熟的解决方案、一套成熟的代码库是你去谈项目或者和产品经理交涉时候的筹码,它有多少,你心中就有多少底,即使你的学习能力再强,也是不能胜过已经有的代码,因为商业项目讲求的是质量 + 效率,只有经过多次实践而不败的代码才是拥有...
阅读全文
2015年11月22日 Java ⁄ 共 3226字 Java 中的阻塞队列已关闭评论 ⁄ 阅读 710 次
1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 操作\处理方式 抛出异常 返回特殊值 阻塞 超时退出 ...
阅读全文
2015年11月22日 Java ⁄ 共 615字 Java中获取文件名、类名、方法名、行号的方法已关闭评论 ⁄ 阅读 722 次
 在C语言中,可以通过宏__FILE__、__LINE__来获取文件名和行号,在Java语言中,则可以通过StackTraceElement类来获取文件名、类名、方法名、行号,具体代码如下: public static int getLineNumber( ){ StackTraceElement[] stackTrace = new Throwable().getStackTrace(); return stackTrace[1].getLineNumber( ); } public static String getMethodName( ){ StackTraceElement[] stackTrace = new Throwable()....
阅读全文
2015年11月21日 Java ⁄ 共 3404字 使用JDK的Parser来解析Java源代码已关闭评论 ⁄ 阅读 803 次
在JDK中,自带了一套相关的编译API,可以在Java中发起编译流程,解析Java源文件然后获取其语法树,在JDK的tools.jar(OSX下可以在/Library/Java/JavaVirtualMachines/jdk_version/Contents/Home/lib中找到)中包含着这整套API,但是这却不是Oracle和OpenJDK发布中的公开API,因此对于这套API,并没有官方的正式文档来进行说明。但是,也有不少项目利用了这套API来做了不少事情,例如大名鼎鼎的lombok使用了这套API在Annotation ...
阅读全文
2015年11月20日 Java, 安卓开发 ⁄ 共 9812字 RxJava入门-Getting Started with RxJava and Android已关闭评论 ⁄ 阅读 754 次
什么是 ReactiveX? ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。 实时数据处理是一件普通的现象,有一个高效、干净和可扩展的方式来处理这些情景是重要的。使用 Observables 和 Operators 来熟练操作它们。ReactiveX 提供一个可组合又灵活的 API 来创建和处理数据流,同时简化了异步编程带来的一些担忧,如:线程创建和并发问题。 RxJava 简...
阅读全文
2015年11月18日 Java ⁄ 共 3275字 Java 内存分析已关闭评论 ⁄ 阅读 199 次
文章目录 内存分析的几个概念 Java 对象的内存占用分析 Dominator Tree 构造方式 导言 由于 Java 虚拟机的自动管理内存机制,Java 程序员不需要像C/C++一样去关注内存的分配和释放,也不容易出现内存泄露和内存溢出的问题。但是如果一旦出现此类问题,如果我们对虚拟机的内存管理机制不了解,要解决这类问题还是比较困难的。 在 Android 平台上(Dlavik模式),Java 代...
阅读全文