- 博客(269)
- 资源 (12)
- 收藏
- 关注
原创 JVM(十一) 运行时包
由同一类加载器加载的属于相同包的类组成了运行时包。决定两个类是不是属于同一个运行时包,不仅要看它们的包名是否相同,还要看定义类加载器是否相同。只有属于同一运行时包的类才能互相访问包可见(即默认访问级别)的类和类成员。这样的限制能避免用户自定义的类冒充核心类库的类,去访问核心类库的包可见成员。假设用户自己定义了一个类java.lang,Spy,并由用户自定义的类加载器加载,由于java.
2017-05-09 12:42:44 1191 7
原创 JVM(十) 命名空间
每个类加载器都有自己的命名空间。和我们Java中的Package的概念是一样的,和XML中的namespace的概念类似。命名空间由该加载器及所有父加载器所加载的类组成。比如说loader1上面有父加载器,父加载器和所加载的所有的类在一个命名空间里面。在同一个命名空间中,不会出现类的完整名字(包括类的包名)相同的两个类;在不同的命名空间中,有可能会出现类的完整名字(包括类的包名
2017-05-09 11:34:37 1103 8
原创 JVM(九) 类加载的父亲委托机制
父子关系从JDK1.2版本开始,类的加载过程采用父亲委托机制,这种机制能更好地保证Java平台的安全。在此委托机制中,各个加载器按照父子关系形成了树形结构,除了根类加载器外, 其余的类加载器都有且只有一个父加载器。比如:Class sampleClass = loader2.loadClass("Sample");根据上图进行分析:loader2首先从自己的命名空间
2017-05-09 11:16:37 728 7
原创 JVM(八) 类加载器
前面博客中简单提到类加载器,并有demo展示。在这里详细介绍一下。http://blog.csdn.net/qwlzxx/article/details/71404166类加载器用来把类加载到Java虚拟机中。类加载器之间的关系: Java虚拟机自带的类加载器根(Bootstrap)类加载器:该加载器没有父加载器。它负责加载虚拟机的核心类
2017-05-09 10:06:44 552 6
原创 JVM(六) 类的初始化
HOW途径在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值。在程序中,静态变量的初始化有两种途径:(1)在静态变量的声明处进行初始化;(2)在静态代码块中进行初始化。例如在以下代码中,静态变量a和b都被显示初始化,而静态变量c没有被显示初始化,它将保持默认值0。public class Sample{ private static int a =1;
2017-05-08 17:48:20 547 6
原创 JVM(五) 类的连接
what类被加载后,就进入连接阶段。连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去。连接:*验证:确保被记载的类的正确性*准备:为类的静态变量分配内存,并将其初始化为默认值*解析:把类中的符号引用转换为直接引用类的验证内容1、类文件的结构检查确保类文件遵从Java类文件的固定格式2、语义检查确保类本身符合Java语言的语
2017-05-08 15:52:50 671 6
原创 JVM(四) 类的加载
What?类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。class对象只能被java虚拟机创建,从封装的源码中就可以看出: /* * Constructor. Only
2017-05-08 15:09:52 735 6
原创 JVM(三) 类的加载、连接与初始化
1、加载:查找并加载类的二进制数据2、连接:*验证:确保被记载的类的正确性*准备:为类的静态变量分配内存,并将其初始化为默认值*解析:把类中的符号引用转换为直接引用分析一下:public class Test{ private static int a = 3;}3、初始化:为类的静态变量赋予正确的初始值大家误以为3是直接赋值给a的,其实不然;
2017-05-08 10:55:12 634 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 1208 8
转载 pom文件解析
pom文件解析Maven的依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version)构成。因此,使用任何一个依赖之间,你都需要知道它的Maven坐标。http://www.mvnrepository.com 在这里可以找到很多的依赖坐标。1、依赖dependency> groupId>
2017-05-07 09:49:27 3939 7
原创 Hadoop(三) 大数据离线计算与实时计算
一、大数据离线计算:MapReduce计算模型1、MapReduce是处理HDFS上的数据2、MapReduce的思想来源是PageRank(搜索排名),原理是进行分布式计算。如上图,网页跳转中,访问网页3的次数最多,也就是权重最大的为网页3。比如京东、淘宝中给推荐的商品,就是近期访问的比较多的商品。MapReduce的思想是把一个大任务拆分成多个小任务,再把小任务的结果汇
2017-05-05 20:07:43 16886 9
原创 Hadoop(二) 了解
一、什么是大数据?举例:1、商品推荐:在天猫中找到过去1个月中卖得好的商品。问题1:大量的订单如何存储?问题2:如何计算大量的订单?(1)大数据的存储 (2)大数据的计算2、天气预报:最近两三天的天气预报情况。问题1:大量的天气数据如何存储?问题2:如何计算大量的天气数据?-(1)大数据的存储 (2)大数据的计算大数据核心问题:(1)大数据的存储--->分布
2017-05-05 17:26:15 701 5
原创 Hadoop(一)概况
昨天偶然的机会听了宅客学院赵强老师关于Hadoop的一堂课。受益匪浅,自己对其相关内容产生兴趣,便火速了解了一遍。迫不及待与大家分享。Java+大数据对于学java的咱们来说,不学大数据真是辜负了大好时光。2.5万基本上是普通IT技术人员的天花板,能上这个数的人很少,除非是架构师或者做底层的开发。但Hadoop这块2万多薪资只能算一般,后面还有很大发展空间。薪资情况
2017-05-05 16:04:57 1058 6
原创 JVM(一) 一个小程序吸引了我
在学习JVM类的加载、连接与初始化时,遇到了这样一个小程序,感觉很有意思,大家不妨跟着我一块来感受一下。程序MyTest.javaclass Singleton{ private static Singleton singleton = new Singleton(); //第一种:放在这儿运行结果是counter1=1,counter2=0 public sta
2017-05-04 17:13:00 815 6
原创 Thymeleaf教程(三)th标签整理
1、简单表达式变量表达式 ${... ...}上述代码为引用user对象的name属性值选择/星号表达式*{*** ***} Nationality: Saturn. 选择表达式一般跟在th:object后,
2017-04-29 20:21:21 61090 14
原创 Thymeleaf教程(二)应用
第一步:加入thymeleaf-2.1.4.RELEASE.jar(http://www.thymeleaf.org/download.html)包,用maven,加如下配置: org.thymeleaf thymeleaf 2.1.4第二步:往html页面加入头文件,相应的schema就是这个网址<html xmlns="http://www.w3.org
2017-04-29 16:59:31 1400 9
原创 Thymeleaf教程(一)简介
Thymeleaf,来看一下logo。2017年3月29日,Thymeleaf 3.0.5已经公布,包括对Spring 5(Spring MVC and Spring WebFlux)的最新模块的一个更新。Thymeleaf的主要目标是为你的开发工作流程带来优雅的的自然模板-可以在浏览器中正确地显示HTML,还可以作静态原型工作,从而在开发团队中进行更强大的协作。Themeleaf
2017-04-29 16:13:52 4144 9
原创 DUBBO研究与学习四:Demo
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。实践了一个小demo,不妨一看。目录结构服务提供者pom.xml,配置依赖的jar包<project xmlns="http://maven.apache.org/POM/4.0.0" xmln
2017-04-29 15:02:33 498 9
原创 DUBBO研究与学习三:Dubbo+zookeeper安装
先来看成果,启动的管理控制台界面效果图:那么Dubbo是怎么搭建起来的?下面就一步一步来说。环境版本:Linux系统centOS7JDK:jdk-7u76-linux-x64.tar.gzTomcat:apache-tomcat-7.0.59.tar.gzZookeeper:zookeeperDubbo:dubbo-admin-2.4.3.war
2017-04-28 21:08:22 661 10
原创 DUBBO研究与学习二:打基础-同步调用、回调和异步调用区别
调用方式软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。现在就来学习一下他们是什么以及有什么区别。同步调用同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用。举个栗子:4x100米接力赛。现在1道有甲、乙、丙、丁四个选手。甲听到枪响后,率先跑了出去。乙、丙、丁都需要等着,直到甲把接力棒交到乙手
2017-04-19 11:35:12 3430 9
原创 DUBBO研究与学习一:了解
DUBBO理解DUBBO是一个开源分布式服务框架,致力于提供高性能和透明化的RPC远程调用方案,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Logo来看一下DUBBO的Logo。
2017-04-17 22:30:43 1293 9
原创 Solr集群搭建
继上篇《Zookeeper集群搭建》,此篇介绍Solr集群的搭建。第一步:安装四个tomcat,修改其端口号不能冲突。8080~8083[root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01[root@localhost ~]# cp -r apache-tomcat-7.0.47
2017-04-09 08:38:36 776 7
原创 Solr集群的架构
最近要搭一个Solr集群,我们先来了解一下架构。架构搭建需要用到solr+zookeeper。看以下结构:要完成的集群结构如下图: 搭集群前先理清其架构和原理,搭建的时候就会顺利很多。关于搭建集群的具体步骤,下篇将会介绍,敬请期待。
2017-04-07 22:27:11 3491 9
原创 x-shell用户名输错保存之后重输问题
问题我用X-shell连接服务器的时候不小心将用户名输错了,然后将其保存了下来。结果每次重连都是直接输密码导致进不去服务器,最直接的解决的方案就是把此次会话删除然后再新建一个。我就想,既然它用户名保存下来了,保存到哪儿了,找到修改了不就行了。于是上网搜集资料,可惜没有找到。然后自己就鼓捣软件,功夫不负有心人,终于解决了。步骤第一种方法打开会话,找到你要连接的服务器会话,打开Pr
2017-03-24 22:23:20 2183 13
原创 CentOS7安装NFS后篇
引言上篇《CentOS7安装NFS》主要讲解了NFS安装及挂载的主要步骤。下面在这里补充一些内容。一、当机器需要重新挂载时先卸载共享目录umout /data/share然后再挂载一遍mount -t nfs -o nolock,nfsvers=3,vers=3 -o proto=tcp 192.168.22.208:/data/share /data/share
2017-03-12 23:19:47 1835 15
原创 CentOS7安装NFS
引言最近在项目中研究了一下NFS挂载,在这里分享一下。NFSNFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。linux安装NFS的例子,以项目为例一、提
2017-03-12 22:59:44 936 12
原创 点滴积累-从object中取值
问题 很多人在编程中可能会遇到这样的问题,返回一个object对象,怎么取其中的值解决方案一般获得的值都需要转换成字符串对象。如果Object中只有一个值,直接转换就可以。多个值的情况下怎么获取呢?这时候就应该考虑强制转换。然后再去取值。Object[] objlist= (Object[]) object; objlist[0].toString();o
2017-02-22 22:30:45 11183 13
原创 Java反编译器JD
作为一个高开人员,反编译软件都不会用岂不被人笑掉大牙。下面将我最常用的一个反编译软件jd-gui和jd-eclipse推荐给大家。JD-GUI is a standalone graphical utility that displays Java source codes of ".class" files. You can browse the reconstructed source c
2017-02-18 16:06:43 1338 14
原创 linux中ctrl+z和ctrl+c的区别
引言无意中看到陈总在操作linux的时候用Ctrl+C来退出控制台输出,之前自己一直都在用Ctrl+Z来退出,然后用fg还可以恢复。对比了两个的区别,让自己小小涨了一下姿势。对比Ctrl+c和Ctrl+z都是中断命令,但是作用却不一样。用两个情景来阐述一下。情景一小菜在家看电影,兴趣正浓,突然听到外面雷声大作,然后把电影暂定,去收了下衣服,回来继续迫不及待地继续看电影。电...
2017-02-11 21:53:31 8615 18
原创 Xshell操作Linux服务器常用命令
接触jboss这么久了,一直在用winSCP远程操作Linux服务器,小小接触了一下Xshell。感觉还是很好用的,下面小编就简单分享自己在项目中的使用和常用的一些命令。打开Xshell,输入要连接的服务器IP地址和自己想要写的名称。输入用户名和密码,进入命令界面。之后就可以用各种命令来操作服务器了。常用命令如下:命令mkdir-建立目录mkdir te
2017-02-07 11:49:36 21919 25
原创 Could not resolve placeholder 'casServerUrlPrefix' in string value "${casServerUrlPrefix}"
引入在做项目的过程中,因为底层动了一些东西,导致Jboss启动报错。经过一番努力,最后顺利解决,与大家分享。错误错误信息为:Could not resolve placeholder 'casServerUrlPrefix' in string value "${casServerUrlPrefix}"原因错误原因是底层将原先的shiro-cas抽离了出来,
2017-02-01 20:27:15 7012 14
原创 Java中==和equals方法的区别
引入在项目中我们经常会用到==和equal 方法来进行判断,但是你知道他们的区别吗?今天小编就为大家科普一下他们的区别。简单区别简单来说,==比较的是对象的地址,也就是是否是同一对象。equals比较的是对象的值。深入探讨如果还不懂,我们就来探讨一下。Java中equals和==的区别java中的数据类型,可分为两类。1、基本数据类型byte,short
2017-02-01 20:03:49 476 17
原创 Eclipse非正常关闭导致不能正常启动
在用Eclipse的过程中,出现问题。想重启一下。结果不能关闭,于是在任务管理器中强制关闭,结果导致不能正常启动。后来在操作的过程中由于无响应关闭后也出现了相同的问题。先看一下启动出现的错误页面。 不难看出,这是eclipse的工作空间出现了问题。最简单的方法就是把工作空间删了,系统自动分配一个新的默认空间。但是这样的话你就需要重配环境,重导项目。无形中增大了工作量。那怎么样解
2017-01-08 22:48:06 8782 25
原创 B-树和B+树
对于树,我介绍以下两种,B-树和B+树。B-树B-树是一种平衡的多路查找树,它在文件系统中很有用。B-树的特性一颗m阶的B-树,或为空树,或为满足下列特性的m叉树;1)树中每个结点至多有m颗子树;2)若根结点不是叶子结点,则至少有两颗子树;3)除根之外的所有非终端结点至少有┌m/2┐棵子树;4)所有的非终端结点中包含下列信息数据(n,A0,K1,A1,K2,A2
2016-12-11 20:46:27 602 18
原创 解析平衡二叉树
什么是平衡二叉树? 平衡二叉树(Balanced Binary Tree)又被称为AVL树(是一种二叉排序树),且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。何谓平衡因子?若将二叉树上结点的平衡因子BF(Balance Factor)定义为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有
2016-12-11 20:45:22 978 35
原创 SpringBoot构建微服务整体了解
在上篇中介绍介绍了SpringBoot,这篇继续介绍怎么用SpringBoot来构建微服务。微服务说到微服务,什么是微服务呢?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都
2016-11-27 21:54:27 2928 22
原创 SpringBoot
关于SpringBoot,搜索了一些资料。可以看看官方给的定义。 SpringBoot:Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get yo
2016-11-14 17:13:51 1002 50
spring整合springmvc项目
2017-06-26
apache-tomcat-7.0.68-windows-x64
2016-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人