`
Mysun
  • 浏览: 273434 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
在java中,final关键字可以有如下的用处: final关键字可以被加到类的声明中,final类是不允许继承的; final关键字可以被加到方法声明中,final方法是不允许重写的(override),这个效果同私有方法一样; final关键字可以被家到属性或者变量的声明中,final属性或者变量一旦赋值之后就不允许再发生变化。对于基本类型(primitive type),比如int、double、long、byte等,一旦被生命为final,我们就可以将其当作常量来看待,但是对于引用类型或者数组(数组在java中也是对象)来说,则不是。虽然一个引用类型被赋值之后无法发生变化,但是我们仍然 ...
在Java中,为了限制多个不同线程对共享变量或者状态的访问,利用语言提供的同步或者加锁机制是最简单有效的办法。通过加锁或者同步,我们可以控制同一时间只有一个线程能够访问共享变量或者转台,从而保证变量或者状态的在多个线程之间的一致性和完整性。加锁或者同步的方式对于所有需要限制线程对其进行访问的变量或者状态来说都是有效的,但是对于有些场景来说并不是最好的。也就是说,在某些场景下,通过加锁或者同步确实可以保证程序在多线程环境下的正确性,但是也对程序的性能造成了很大的伤害。 下面的代码给出了一个例子。我们定义了一个Cooker类,这个类有一个cook方法,在cook方法中会根据其menu属性执行一些操作 ...
首先,为什么需要有内存模型? 因为我们的程序(不管是什么程序)在运行的时候,数据和代码都是放在内存中的,在一个程序的执行过程中,都需要读取和写入数据的。在java中,可以是对本地变量的读写、对对象后属性的读写、 ...
本文尝试对java在编译器和运行期如何处理程序代码中的方法调用表达式进行描述,本文的大部分内容来自于java语言规范3.0. 由于java动态语言的特性,因此它在编译期和运行期都需要对程序代码中的方法调用表达式进行处理。其中对方法调用表达进行处理的大部分工作是在编译期完成的,而运行期的大部分工作则是对编译完成的方法调用表达式进行有效性检查。 编译期完成的处理 在编译期,java需要对方法调用表达式进行检查和分析,如果表达式能够被正确地解释,那么java的编译器需要将有关方法调用的元数据记录到字节码文件中,为jvm能够在运行期正确地执行方法调用提供足够多的信息。java编译器要完成的主要工作可以用 ...
  内部类的初始化同一般类的初始化基本相同,只是内部类的类名全称有些区别。下面定义了一个Outer类和一个Inner类: public class Outer{ public class Inner{ } }    通过如下方法可以得到Inner类的类名: public class Outer{ public class Inner{ } public static void main(String[] args){ System.out.println(Inner.class); } }    从输出结果可以看到 ...
配置Jboss的数据源非常简单,可以从$JBOSS_HOME\docs\examples\jca这个目录下面找到jboss对各种数据库提供的数据源配置文件。拿MS SQLServer来说,就有两个,一个是mssql-ds.xml,一个是mssql-xa-ds.xml。后一个文件时用来配置两阶段提交数据源的,一般来说我们只使用第一个配置文件就可以了。 将与你的数据库类型匹配的数据源文件复制一份到$JBOSS_HOMEserver\default\deploy目录下,然后修改里面的相关参数就可以了。例如: <?xml version="1.0" encoding=&qu ...
注:本文中所述内容适合于Jboss 4.x系列应用服务器。 为了在同一台服务器上能够运行多个Jboss服务器,或者同时运行Jboss和Tomcat服务器,我们需要修改Jboss的各种端口。 Why configure JBoss's Ports?     Configuring port numbers in JBoss can seem a little complicated, but it's actually pretty easy to understand once you get how JBoss is configured. However, why bother spe ...
  Java的泛型实现采用了擦除(erasure)机制,这给获取泛型的类型信息带来了一点麻烦。比如下面的代码(摘自Thinking in Java): import java.util.*; class Frob {} class Fnorkle {} class Quark<Q> {} class Particle<POSITION,MOMENTUM> {} public class LostInformation { public static void main(String[] args) { List<Fr ...
  最近在用Jquery的getJSON方法进行AJAX异步调用的时候,碰到了在中文乱码问题。在我的代码中需要传中文到后台的Webwork Action里面,然后返回值里面也包含中文。请求和相应的参数都是通过JSON传送。   需要说明一点,jQuery的getJSON方法其实是把JSON格式的参数转换成URL上面的参数,然后发起请求。返回的时候才以真正的json格式数据返回。   我的页面和Action的编码都是utf-8。碰到的问题是页面传送到Action的中文能够正常显示,但是Action通过JSON格式返回中文却显示乱码。网上找了很多相关资料,但是都没有解决问题。因为我的Webwork ...
刚刚入手一个Noppoo Choc mini 84青轴键盘,有没有买之前没做功课,发现mac尽然无法识别这款键盘。 google了一下,发现github上有一个项目专门来解决这个问题,按照这个项目给出的方法,就能够让mac支持Noppoo Choc mini 84键盘了,地址记录下来,方便后面用: https://github.com/thefloweringash/iousbhiddriver-descriptor-override http://likidu.com/2012/11/noppoo-chic-mini84-osx-support/ http://geekhack.org/ind ...
在本系列的前面几篇文章中,主要介绍了利用Map-Reduce任务来完成两个或者多个文件的Join操作的一些算法和思路。基于的前提是对这些文件在相同的列上进行Join,本文将要讨论如何通过Map-Reduce任务来完成对多个文件在不同列上进行Join。由于需要在不同的列上进行Join,涉及到的文件个数至少会是三个,比如有三个文件T1(A,B)、T2(B,C)、T3(C,D),T1和T2基于B列进行Join,而T2和T3则需要基于C列进行Join。本系列的第二和第三篇中提到的针对两个文件和多个文件进行Join的相关算法和思路稍加扩展就可以用到对多个文件在不同列上进行Join的情况中,另外,文本还将介 ...
在这个系列的前两篇中,介绍了基本的Join算法以及在Hadoop环境中,如何利用Map-Reduce过程来完成Join。而前面的介绍都是基于两个集合的Join,本文将会介绍利用Map-Reduce来完成2个以上文件的Join的相关算法(Multi-way join algorithms)。基本的思路与第二篇文章中介绍的Map-Reduce Join类似,根据将这个算法扩展到多个文件的方式,可以分为两种,一种是使用一个Map-Reduce任务完成所有文件的Join,另外一个中使用多个任务来完成多个文件的Join。 1.使用单个Map-Reduce任务完成Join 这种算法可以看作是第二篇中提到的基 ...
在本系列的第一篇中,介绍了几种在数据库应用中常见的Join算法,本文将会介绍两种使用Map-Reduce实现对两个数据集合进行Join的算法,其中的一种会用到第一篇中提到的哈希Join算法。这里将这两种方法分别命名为Map-Reduce Join和Map ...
本系列的开篇在提到使用Map-Reduce实现Join之前,先来看看目前在数据库中应用比较广泛和流行的集中Join算法。它们分别是嵌套循环Join(Nested Loops Join)、排序合并Join(Sort-Merge Join)和哈希Join(Hash Join)。 1.嵌套循环Join for R中的每一条记录r do for S中的每一条记录s do if (r和s满足Join条件) 将r和s进行合并,然后输出 end for end for 这种Join算法实现起来非常简单,而且可以支持任何类型的Join条件。但是在当 ...
Google在2010年的时候对外公布了其使用的一个大数据交互式分析系统,名字叫Dremel。同时还发布了相关的论文,http://research.google.com/pubs/pub36632.html。 从论文中看,Dremel有两个方面的重大创新点, 以面向列的结构存储记录 并行聚合计算 以面向列的结构存储记录 Dremel将数据集合中的每条记录中的相同属性组织称一个列。比如说,有一份数据,每条记录有三个属性,分别是F1、F2和F3,在Dremel中,所有记录的F1会被放到一起进行存储,相同的、F2和F3也会被放到一起存储。这个就是基于列的结构。 采用这种结构,如果统计或者分析 ...
Global site tag (gtag.js) - Google Analytics