Java语言
gstormspire
这个作者很懒,什么都没留下…
展开
-
Java入门(二):windows环境下Java配置Path classpath等环境变量
Java需要配置path、classpath、JAVA_HOME等多个环境变量,初学者可以按照教程一步一步配置,但是因为不明白这些变量的具体含义,所以过段时间又忘记怎样配置,反复查询资料。计算机的学习需要大家善于发问,并找到问题的答案。下面我们具体看一下这几个变量的原理和配置。 一、path变量 当你用快捷键 windows键 + R ,打开运行界面后,在输入框里cacl ,原创 2016-09-06 09:29:14 · 11808 阅读 · 0 评论 -
Java Garbage Collection (GC) Tuning
Here is some important parameters that needs to be configured to get good performance on garbage collection. These are what we use in our applications and I will try to explain them one by one:原创 2012-12-18 10:05:01 · 644 阅读 · 0 评论 -
javacc简介
JavaCC 简介许多基于 Web的项目都包含即席(ad-hoc)查询系统以允许终端用户搜索信息。因此,终端用户会需要某种语言来表达他们所希望搜索的内容。以前,用户查询语言的定义极其简单。如果终端用户满足于使用与最典型的 Google 搜索一般简单的语言,那么 Java 的 StringTokenizer对于解析任务就绰绰有余了。然而,如果用户希望有一种更健壮的语言,比如要添加括号和"AND"转载 2012-12-04 10:55:27 · 2486 阅读 · 0 评论 -
DCL 和 乱序
在很多设计模式的书籍中,我们都可以看到类似下面的单例模式的实现代码,一般称为Double-checked locking(DCL)01public classSingleton {02 03 privatestatic Singleton instance;转载 2012-10-25 17:43:09 · 585 阅读 · 0 评论 -
JVM参数调优实例解析
JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了。这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题就暴露出来了。 要想配置好JVM参数,需要对年轻代、年老代、救助空间和永久代有一定了解,还要了解jvm内存管理逻辑,最终还要根据自己的应用来做调整。关于JVM转载 2012-10-24 11:32:34 · 728 阅读 · 0 评论 -
多核平台下的Java优化
现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集。但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了。目前内存和CPU之间的带宽是一个主要瓶颈,每个核可以独享一部分高速缓存,可以提高性能。JVM是利用操作系统的“轻量级进程”实现线程,所以线程每操作一次共享内存,都无法在高速缓存中命中,是一次开销较大的系统调用。所以区别转载 2012-10-24 11:32:13 · 2401 阅读 · 0 评论 -
守护进程和守护线程
守护线程守护线程在没有用户线程可服务时自动离开,在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的setDaemon方法。典型的守护线程例子是JVM中的系统资源自动回收线程,我们所熟悉的Java垃圾回收线程就是一个典型的守护线程,当我原创 2012-09-25 17:27:06 · 1404 阅读 · 0 评论 -
Java编程的几个注意问题(随时添加)
1、注释尽可能全面对于方法的注释应该包含详细的入参和结果说明,尤其是参数是否可谓Null的说明,有异常抛出的情况也要详细叙述;类的注释应该包含类的功能说明、作者和修改者。2、多次使用的相同变量最好归纳成常量多处使用的相同值的变量应该尽量归纳为一个常量,方便日后的维护。3、尽量少的在循环中执行方法调用尽量在循环中少做一些可避免的方法调用,这样可以节省方法栈的创建。例如:for原创 2012-09-04 12:01:06 · 444 阅读 · 0 评论 -
4大 Java OSGi 框架比较 (Knopflerfish, Apache Felix, Equinox, Spring DM)
OSGi正在成为一种趋势,越来越多的项目采用了OSGi,越来越多的中间件都开始采取了OSGi的标准。身为一名Java开发人员,如果你还对OSGi结构一无所知,那你真的有点Out了。 什么是OSGi OSGi的名称来源于其开源组织的名称Open Services Gateway initiative,OSGi是一个标准,它致力于提供给Java项目一个模块化的底层环境,以及转载 2012-08-21 11:14:03 · 1193 阅读 · 0 评论 -
StringBuffer与StringBuilder的区别
StringBuffer与StringBuilder是java.lang包下被大家熟知的两个类。其异同为:一、长度都是可扩充的;二、StringBuffer是线程安全的,StringBuilder是线程不安全的。实现机制都是通过 System.arraycopy实现的,所以比String要快。原创 2012-08-20 17:47:08 · 343 阅读 · 0 评论 -
Future接口介绍
在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实 现,可以来进行异步计算。Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完转载 2012-06-18 17:43:36 · 384 阅读 · 0 评论 -
Java编程中“为了性能”需做的26件事
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:转载 2012-06-15 12:19:33 · 531 阅读 · 0 评论 -
Java泛型-类型擦除
前两天利用GSON解析JSON串,碰到了Java 泛型擦除的问题:public static List getListFromJson(String value){ return gson.fromJson(value,new TypeToken>(){}.getType()); }这其中涉及Java泛型的实现机制和泛型擦除问题,详见下面文章。一、概述转载 2012-06-06 16:00:52 · 3378 阅读 · 0 评论