- 博客(19)
- 资源 (12)
- 收藏
- 关注
原创 Java语言中的枚举类型
枚举类型(Enumerated Type)在编程语言中常用,程序员必备食粮,下面随着我的思路来认识一下枚举类型。 是什么枚举类型在java中是一种基本数据类型。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。为什么用至于为什么,可以简单这样理解,知道用一个东西的劣势后,出来一个新东西来弥补它。再加上点好处。举个例子,如
2017-05-19 18:00:02 1769 12
原创 JVM(十三) 类的卸载
同一个命名空间内的类是相互可见的。子加载器的命名空间包含所有父加载器的命名空间。因此由子加载器加载的类能看见父加载器
2017-05-13 10:33:22 2431 13
原创 JVM(十二) 创建用户自定义的类加载器
要创建用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定的类的名字,返回对应的Class对象的引用。我们来看看官网api文档的findClass方法。http://docs.oracle.com/javase/7/docs/api/findClassprot
2017-05-12 17:52:55 1333 6
原创 JVM(十一) 运行时包
由同一类加载器加载的属于相同包的类组成了运行时包。决定两个类是不是属于同一个运行时包,不仅要看它们的包名是否相同,还要看定义类加载器是否相同。只有属于同一运行时包的类才能互相访问包可见(即默认访问级别)的类和类成员。这样的限制能避免用户自定义的类冒充核心类库的类,去访问核心类库的包可见成员。假设用户自己定义了一个类java.lang,Spy,并由用户自定义的类加载器加载,由于java.
2017-05-09 12:42:44 1110 7
原创 JVM(十) 命名空间
每个类加载器都有自己的命名空间。和我们Java中的Package的概念是一样的,和XML中的namespace的概念类似。命名空间由该加载器及所有父加载器所加载的类组成。比如说loader1上面有父加载器,父加载器和所加载的所有的类在一个命名空间里面。在同一个命名空间中,不会出现类的完整名字(包括类的包名)相同的两个类;在不同的命名空间中,有可能会出现类的完整名字(包括类的包名
2017-05-09 11:34:37 1079 8
原创 JVM(九) 类加载的父亲委托机制
父子关系从JDK1.2版本开始,类的加载过程采用父亲委托机制,这种机制能更好地保证Java平台的安全。在此委托机制中,各个加载器按照父子关系形成了树形结构,除了根类加载器外, 其余的类加载器都有且只有一个父加载器。比如:Class sampleClass = loader2.loadClass("Sample");根据上图进行分析:loader2首先从自己的命名空间
2017-05-09 11:16:37 707 7
原创 JVM(八) 类加载器
前面博客中简单提到类加载器,并有demo展示。在这里详细介绍一下。http://blog.csdn.net/qwlzxx/article/details/71404166类加载器用来把类加载到Java虚拟机中。类加载器之间的关系: Java虚拟机自带的类加载器根(Bootstrap)类加载器:该加载器没有父加载器。它负责加载虚拟机的核心类
2017-05-09 10:06:44 533 6
原创 JVM(六) 类的初始化
HOW途径在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值。在程序中,静态变量的初始化有两种途径:(1)在静态变量的声明处进行初始化;(2)在静态代码块中进行初始化。例如在以下代码中,静态变量a和b都被显示初始化,而静态变量c没有被显示初始化,它将保持默认值0。public class Sample{ private static int a =1;
2017-05-08 17:48:20 527 6
原创 JVM(五) 类的连接
what类被加载后,就进入连接阶段。连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去。连接:*验证:确保被记载的类的正确性*准备:为类的静态变量分配内存,并将其初始化为默认值*解析:把类中的符号引用转换为直接引用类的验证内容1、类文件的结构检查确保类文件遵从Java类文件的固定格式2、语义检查确保类本身符合Java语言的语
2017-05-08 15:52:50 645 6
原创 JVM(四) 类的加载
What?类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。class对象只能被java虚拟机创建,从封装的源码中就可以看出: /* * Constructor. Only
2017-05-08 15:09:52 722 6
原创 JVM(三) 类的加载、连接与初始化
1、加载:查找并加载类的二进制数据2、连接:*验证:确保被记载的类的正确性*准备:为类的静态变量分配内存,并将其初始化为默认值*解析:把类中的符号引用转换为直接引用分析一下:public class Test{ private static int a = 3;}3、初始化:为类的静态变量赋予正确的初始值大家误以为3是直接赋值给a的,其实不然;
2017-05-08 10:55:12 612 7
原创 关于使用jboss和tomcat的讨论
在项目中由于从jboss向tomcat切换。需要考虑一些问题,最终确定了下来。1、ear包和war包jboss是ejb容器,可以运行ejb应用,支持ear包。而Tomcat只是servlet容器,只能运行web应用,只能打成war包。2、运行时jar包在jboss中的modules目录里有system的文件夹,是jboss自带的jar包,启动时会自动加载。而
2017-05-07 10:48:01 1157 8
转载 pom文件解析
pom文件解析Maven的依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version)构成。因此,使用任何一个依赖之间,你都需要知道它的Maven坐标。http://www.mvnrepository.com 在这里可以找到很多的依赖坐标。1、依赖dependency> groupId>
2017-05-07 09:49:27 3920 7
原创 Hadoop(三) 大数据离线计算与实时计算
一、大数据离线计算:MapReduce计算模型1、MapReduce是处理HDFS上的数据2、MapReduce的思想来源是PageRank(搜索排名),原理是进行分布式计算。如上图,网页跳转中,访问网页3的次数最多,也就是权重最大的为网页3。比如京东、淘宝中给推荐的商品,就是近期访问的比较多的商品。MapReduce的思想是把一个大任务拆分成多个小任务,再把小任务的结果汇
2017-05-05 20:07:43 16730 9
原创 Hadoop(二) 了解
一、什么是大数据?举例:1、商品推荐:在天猫中找到过去1个月中卖得好的商品。问题1:大量的订单如何存储?问题2:如何计算大量的订单?(1)大数据的存储 (2)大数据的计算2、天气预报:最近两三天的天气预报情况。问题1:大量的天气数据如何存储?问题2:如何计算大量的天气数据?-(1)大数据的存储 (2)大数据的计算大数据核心问题:(1)大数据的存储--->分布
2017-05-05 17:26:15 676 5
原创 Hadoop(一)概况
昨天偶然的机会听了宅客学院赵强老师关于Hadoop的一堂课。受益匪浅,自己对其相关内容产生兴趣,便火速了解了一遍。迫不及待与大家分享。Java+大数据对于学java的咱们来说,不学大数据真是辜负了大好时光。2.5万基本上是普通IT技术人员的天花板,能上这个数的人很少,除非是架构师或者做底层的开发。但Hadoop这块2万多薪资只能算一般,后面还有很大发展空间。薪资情况
2017-05-05 16:04:57 1035 6
原创 JVM(一) 一个小程序吸引了我
在学习JVM类的加载、连接与初始化时,遇到了这样一个小程序,感觉很有意思,大家不妨跟着我一块来感受一下。程序MyTest.javaclass Singleton{ private static Singleton singleton = new Singleton(); //第一种:放在这儿运行结果是counter1=1,counter2=0 public sta
2017-05-04 17:13:00 789 6
spring整合springmvc项目
2017-06-26
apache-tomcat-7.0.68-windows-x64
2016-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人