JDK、JRE和JVM三者之间关系

一、概览 JDK、JRE和JVM三者之间关系 很多程序员已经写了很长一段时间java了,依然不明白JDK,JRE,JVM的区别。今天个人总结一下它们三者的关系、区别。 JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。 Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。 二、分别介绍JDK、JRE、JVM JDK JDK是java开发工具包,在其安装目录下面有六个文件夹、一些描述文件、一个src压缩文件。bin、include、lib、 jre这四个文件夹起作用,demo、sample是一些例子。可以看出来JDK包含JRE,而JRE包含JVM。 bin:最主要的是编译器(javac.exe) include:java和JVM交互用的头文件 lib:类库 jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)…

Continue Reading →

Java SerialVersionUID作用

一、前言 serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的 serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastException。 serialVersionUID有两种显示的生成方式: 一、是默认的1L,比如:private static final long serialVersionUID = 1L; 二、是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如: private static final  long   serialVersionUID = xxxxL; 当一个类实现了Serializable接口,如果没有显示的定义serialVersionUID,Eclipse会提供相应的提…

Continue Reading →

Vue的组件生命周期与初始化方式

一、前言 用通俗的语言来说,就是Vue中实例或者组件从创建到消灭中间经过的一系列过程。虽然不太严谨,但是也基本上可以理解。 通过一系列实践,现在把所有遇到的问题整理一遍,今天记录一下created和mounted的区别: 二、created和mounted区别 官方图解如下: 我们从图中看两个节点: created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。 mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。 其实两者比较好理解,通常created使用的次数多,而mounted通常是在一些插件的使用或者组件的使用中进行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。 三、路由监测 @Watch监测router,在页面中加入路由监测,第一次进行时不会触发。当该页面跳转到其他页面时,发生路由变化时触发。 // 当该页面跳转到workflowControl进行操作 @Watch(‘$route’) router(to: any) {…

Continue Reading →

Posted in: Vue

Java泛型知识点

泛型 泛型就是参数化类型 适用于多种数据类型执行相同的代码 泛型中的类型在使用时指定 泛型归根到底就是“模版” 优点:使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。 泛型主要使用在集合中 // 不使用泛型,存取数据麻烦 public static void test1(){ List list = new ArrayList(); list.add(100); list.add(“zhang”);…

Continue Reading →

UEditor定制工具栏

第一步:方法1,修改 ueditor.config.js 里面的 toolbars 第一个位置,全屏的意思,然后我们把它去掉,打开百度ueditor编辑器的jsp界面,我们可以看到全屏的放大镜图标已经没有了。 第二步:方法2,实例化编辑器的时候传入 toolbars 参数,本人比较推荐此方法,不用修改百度编辑器的核心配置js文件最好。 打开ueditor.jsp界面(案例初始化百度编辑器的新建界面,读者可自行新建),我们可以看到,初始化ueditor的代码为: var ue = UE.getEditor(‘container’); 1,toolbars 简单列表 toolbars: [ [‘fullscreen’, ‘source’, ‘undo’,…

Continue Reading →

Java中间件介绍

1.定义 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信,也可以定义为网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性。 2.作用 中间件通过提供简单、一致、集成的开发和运行环境,简化分布式系统的设计、编程和管理。 3.分类 中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。从功能性外延来看,中间件包括交易中间件、消息中间件、集成中间件等各种功能性的中间件技术和产品 4.产品分类 三大类产品:应用服务类中间件、应用集成类中间件、业务架构类中间件。 为应用系统提供一个综合的计算环境和支撑平台,包括对象请求代理(ORB)中间件、事务监控交易中间件、JAVA应用服务器中间件等。 应用集成类中间件是提供各种不同网络应用系统之间的消息通信、服务集成和数据集成的功能,包括常见的消息中间件、企业集成EAI、企业服务总线以及相配套的适配器等。 作为共性的凝练,中间件不仅要从底层的技术入手,将共性技术的特征抽象进中间层,还要更多地把目光投向到业务层面上来,根据业务的需要,驱动自身能力的不断演进,即,不断出现的新的业务需要驱动了应用模式和信息系统能力的不断演进,进而要求中间件不断地凝练更多的业务共性,提供针对性支撑机制。业务架构类中间件包括业务流程、业务管理和业务交互等几个业务领域的中间件。 5.Java 中间件 在Java web开发的演进与进化中,我们对于消息系统,数据库,服务化接口的抽象等,涉及数据分离的过程中,在分离过程中,就会涉及到分离后系统间,数据库间的交互。java中间件就是处理我们数据间交互,连接数据分离后两个系统间的通信,中间件不属于任何一个开发项目,就是让我们对应系统间或者数据库间数据流通无感知。有点像Linux下的管道。 上面说到java是数据间的中间件,在java web开发中适用的范围主要应该是下面三个领域: Java 应用服务器 主要解决系统的访问问题;…

Continue Reading →

HTML xmlns 属性

xmlns 属性 xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。该属性可以放置在文档内任何元素的开始标签中。该属性的值类似于 URL,它定义了一个命名空间,浏览器会将此命名空间用于该属性所在元素内的所有内容。 例如,如果需要使用符合 XML 规范的 XHTML 文档,则应该在文档中的<html> 标签中至少使用一个 xmlns 属性,以指定整个文档所使用的主要命名空间: <html xmlns=”http://www.w3.org/1999/xhtml”> 如果需要在一个 div 元素中显示一串数学公式,则可以为该 div 元素定义一个数学命名空间。比如这样:…

Continue Reading →

UI、UE和UX三者之间的区别?

UI:User Interface 用户界面 用户界面其实是一个比较广泛的概念,指人和机器互动过程中的界面,以车为例子,方向盘、仪表盘、换档器等都属于用户界面。 现在一般把屏幕上显示的图形用户界面(GUI :Graphic User Interface)都简单称为UI。 可能是UI这个概念比较难以被一般人理解,所以现在一般所说的UI设计师,也即是指GUI设计师。也就是图形界面设计师。 主要是负责产品或是网站的图形图标色彩搭配,总之是负责网站看起来是一个什么风格什么气质。 UE or UX: User Experience 用户体验 用户体验指用户在使用产品过程中的个人主观感受。关注用户使用前、使用过程中、使用后的整体感受,包括行为、情感、成就等各个方面。用户体验是整体感受,所以不仅仅来自于用户界面,那只是其中的一部分。 通俗的讲这是个整体的使用感受,包括受品牌影响,用户个人使用经验的影响,总之就是让用户用着爽。 IxD:Interaction design…

Continue Reading →

2018前端框架深度抉择

前端技术日新月异,最终由Angular、React、Vue三分天下。文章分四点对前端框架的选型进行深度解析:1、前端框架概览;2、公司最关心的开源许可;3、框架内部技术解析;4、选型结论; 一、前端框架 前端框架三驾马车Angular、React、Vue,参考我的另文一篇文章《2017 年比较 ANGULAR、REACT、VUE 三剑客》,里面对每个框架有详细的说明。 二、开源许可 开源许可严重关系到该软件是否开源用于商业化,引用阮一峰老师总结的开源软件许可图片进行描述,其中Angular与Vue使用较为自由的MIT许可,而React目前使用有些开源苛刻的BSD许可。 三、内部技术分析 2018年前端主要关注的技术可参考我的另一篇文章《2018前端值得关注的技术》,里面包含了2018年最主流的前端开发技术。下面对主流技术进行简短描述: 前端含前端JS与后端JS,两者都是基于ECMAScript规范。前端JS主要用来操作页面元素DOM,操作浏览器BOM。后端JS扩展出了一些服务器所需的API,如操作系统能力os、操作文件系统file、操作网络系统net、操作数据库database。后端的JS主要使用nodeJS,nodeJS会使用很多别人已经写好的JS代码,为了给引用代码统一规范,引申出了npm,npm其实就是nodeJS的包管理器。—- 引用文章 https://www.jianshu.com/p/857ef827fbd4 三种主流框架都使用相同的后端JS–nodeJS进行前端服务器开发。而前端JS也趋于一致,但目前分为两大派系:传统JS、升级版ES以及微软开发的TS。 1、传统JS与升级版ES 1995年网景浏览器首次发布浏览器脚本语言,为了趁当时Java的热度,决定命名为JavaScript,简称JS。其实两种语言本身并无关系,就比如雷锋与雷峰塔的区别。 1996年网景将JS提交给ECMA International(欧洲计算机制造商协会)进行标准化,并最终确定新的语言标准,这就是ECMAScript,简称ES。 自此ES成为了JS的基础,但现实中只称ES为标准,JS为语言。后期ES陆续地更新了几个版本,各大浏览器厂商也开始兼容这些更新的API。即使在2009年已更新到了ECMAScript5,但很多前端开发者仍在写着ECMAScript3的风格。2015 年,负责制定 ECMAScript…

Continue Reading →