精华内容
下载资源
问答
  • 从高职高专学生特点出发,探讨了英语素质拓展的概念、必要性和可行性,并以承德石油高等专科学校为例,对英语素质拓展运行的体制机制进行了系统化整体化研究和构建。
  • 真的很努力学习这门课,学校也有专门搞算法的ACM,在没接触java的那段时间,一直致力于搞算法、身边也会时不时有人会告诉你,搞算法掉头发,但真的挣钱,哈哈,但或许在那些大佬看来,算法真的对他们的学习来说


    前言

    从刚开始学习java到慢慢了解web之后初识框架的一路来,我对整个java学习的过程中,也会出现很多的疑惑和迷茫,大学前两年的时间,一开始接触的编程语言是C++,因为第一个学期就有这门课程,所以对初来匝道的大一新生来说,真的很努力学习这门课,学校也有专门搞算法的ACM,在没接触java的那段时间,一直致力于搞算法、身边也会时不时有人会告诉你,搞算法掉头发,但真的挣钱,哈哈,但或许在那些大佬看来,算法真的对他们的学习来说那是只要学就能会的,哈哈,但我要说的是我觉得算法可能真得不适合我,一我一开始错过了进入ACM的机会,没有接受过培训,靠自己在下边摸索前进,是会有所成就,但可能自己摸索半个月的题目和算法,对于人家来说。只是一个小时,或者更少的时间就能看透。虽然自己也觉得咱不行吧,但却没有放弃过,还是硬着头皮学着,为此我也非常庆幸我那段的坚持不懈,因为这为我后期接触编程语言和java开发奠定了很好的思维基础和编程能力

    以下是本篇文章正文内容

    一、首先说下浏览器

    浏览器是什么呢??我们上网使用浏览器可以访问各种各样的网页,因为这些网页是属于不同公司的服务器,所以我们相当于使用浏览器这个工具来访问指定的服务器,然而这些网站被访问后就会返回我们所需要的信息,这些信息并不是简单的格式,需要浏览器对其进行解码和编译之后才会在页面中显示出来,之所以解释这一点,最重要的原因在于,我们在开发过程中,一直就在涉及整个过程,然而我们需要特别注意的是----从我们点击一个页面标签开始,到页面发生变化,整个过程中,请求访问的是浏览器,接受响应的还是浏览器。所以排除服务器之后的开发,都在围绕着一个实体—浏览器。
    浏览器用专业点的来说它相当于一个web容器,对于web容器的理解,我们一开始就把它当做一个装着我们上网后产生一个又一个网页的瓶子就好,这也是我们打开浏览器经常见到的不是吗?不然那么多网页,我们访问的时候只看一个页面,其他页面呢,所以浏览器web容器就大致是这个意思。
    那么web容器是怎么发挥它的作用,换句话说浏览器又是怎样实现对服务器的访问的呢,首先我们要知道得是,我们想访问一个网页,比如百度,那么我们是不是要知道正确的URL,www.baidu.com这个我想都知道,所以问题也就出在这里,我们知道,但浏览器它知道吗?它一开始是不知道的啊,虽然我们打开浏览器或许就进去百度了,但这实际是一个类似于超链接的静态网页行为,其他正常情况下,我们需要先在导航栏输入URL然后进行访问,但我们在进行动态web开发的时候是不能让给用户一个链接,让人家对着导航栏敲吧,也不能全部写成静态的超链接,那么动态web开发,切不是失去了灵魂
    因而,我们要引入一个新的知识点service,也就是web服务

    二、什么是web服务

    web服务,也就是我们常说的service ,它就像它的名字一样,起到的是服务作用,服务什么?服务的就是web容器所产生的各种操作,这其中就包括最主要的请求(Request)和响应(Response),就好比你点击浏览器的访问一个页面跳转百度的链接,那么这个页面就会告知web容器,web容器说我只管存放你们,但访问你们需要找web服务(服务员,哈哈),然后将这个请求转给了web服务(service),service收到请求后,它要想办法实现啊,那方法呢----这个就是需要我们来写的啊,根据你的需要写适合的方法,这里暂且不说,我们现在需要知道的就是了解service是怎样实现这个整套服务过程。那就是service的核心servlet容器

    三、servlet容器

    servlet容器是service的核心,整个service都是因为这个容器而运行,这就好比一个机器人的核心动力,而servlet里边的就是处理各种请求的具体实现方法,当service这个服务员接收到请求后,它就会从(servletRequest)req这个请求中获取浏览器发来请求,然后处理后将数据打包,传给(servletResponse)reponse这个响应中,之后便将响应信息发送到浏览器,浏览器对其进行解码和编译,这样就呈现出我们平时所看见的页面

    具体实现

    1.添加核心支持pom.xml

    我们在idea中新建一个 module ,建立之后idea打开的第一个文件就是 pom.xml ,这个是idea相比较eclipse最具特色的体现,pom是整个项目的核心运行支持,包含着各个项目之间的父子继承关系,以及项目所需要的jar包和运行环境的配置在这里插入图片描述
    在这里插入图片描述
    头文件标签,不可变

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    
    

    model的版本和打包方式pom以及各项目之间的父子关系

    <modelVersion>4.0.0</modelVersion>
      <packaging>pom</packaging>
    
      <name>JavaWebStudent</name>
      <modules>
        <module>JavaWebServlet-01</module>
        <module>Servlet-02</module>
      </modules>
      <groupId>org.example</groupId>
      <artifactId>JavaWebStudent</artifactId>
      <version>1.0-SNAPSHOT</version>
    
    

    这是我运行项目的时候一直报不支持发行版本5,但seting和projiect中设置的jdk版本都是11,如果你们可以按照网上设置运行,就不需要使用这个配置jdk版本

     <properties>
        <java.version>11</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
      </properties>
    

    这个·标签是添加项目所以的依赖jar包,只要你将对应的jar包依赖写入,idea就会自动下载并整合到项目中,这里添加的是支持servlet容器和servlet-jsp中jar包,只有在他们存在的支持下,我们的service核心servlet才能正常运行。这就好比机器人所需要对应型号的电池。

      <dependencies>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>javax.servlet.jsp-api</artifactId>
          <version>2.3.3</version>
        </dependency>
      </dependencies>
    

    2. 我们来探究这个web容器

    当我们打开web.xml这个文件,其实我们就已经进入这个容器内部,但我们看到其实只是容器的表象,我们在后边的学习会深度发觉它的核心组成元素,现在我能只用了解它的一些主要部件,以及他们的工能都是些什么即可。

    这只是它的头文件,所有的xml都会有这样的头文件,你们可以摸索下他们的规律,额很有的。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0"
             metadata-complete="true">
    

    下边这个标签是最重要的部件,就如同它的大脑,它是一个指挥请求来去方向的标签

     <servlet>
        <servlet-name>ErrorServlet</servlet-name>
        <servlet-class>com.kuang.servlet.errorServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ErrorServlet</servlet-name>
        <url-pattern>/*</url-pattern>
      </servlet-mapping>
    </web-app>
    

    我们回想下,之前和大家说的 servlet 的功能------一个实现具体服务(service)的服务员,他的作用不就是处理web容器里边装的那各种不能直接处理的请求。那么我们现在看这些标签,servlet-name 和 servlet-class 分别是指servlet的名字和servlet的具体实现类--------这里就好比,web容器要把提交的请求交给能实现这个请求的服务员,这个服务员是谁-----> servlet-class ,这个服务员叫什么名字servlet-name,当然web容器还是比较优秀的吧,因为实际上他应该就是这个餐厅的老板,他愿意给服务员叫啥名就叫啥名,(本来想之后和你说的,没办法,还是早点告诉你web容器这善于隐藏的Boss,知道为啥不–不要觉得web容器啥也不会干,那是因为人家是老板,管着你们所有人呢,在想啥呢,老板会去端盘子吗?除非他崩了)。
    所以也就是说当web容器这个老板把你的请求分给指定的服务员后,服务员就会满足你的需求,之后你就等着从这个服务员手上接受你应该得到的响应就OK了。那么具体有怎么得到这个响应呢??web容器老大哥就告诉你了

     <servlet-mapping>
        <servlet-name>ErrorServlet</servlet-name>
        <url-pattern>/Error</url-pattern>
      </servlet-mapping>
    

    不过这里你要遵守web容器的规则,必须从得到你请求的服务员手中接收响应。
    这里重点说下第二个标签url-pattern ----> /Error <----- 这是页面请求的具体链接也就是URL,在请求的时候,要给web一个可以知道的地址吧,不然人家都不知道你在哪里坐着,怎么给你分配服务员,这是你和service(服务员)对接的路径,当然这个路径也不唯一,你可以修改的 例如 : /* 这个意思及时所有路径都可以,(很任性包场了),这里满足规律的是正则表达式。
    我们知道一个服务员有时不可能只为一个顾客服务,因此请看

    <servlet-mapping>
        <servlet-name>ErrorServlet</servlet-name>
        <url-pattern>/wang</url-pattern>
      </servlet-mapping>
    
    `<servlet-mapping>
        <servlet-name>ErrorServlet</servlet-name>
        <url-pattern>/zhao</url-pattern>
      </servlet-mapping>
    

    提示 : 不要想你一个人霸占多个服务员,web表示你不够资格,Boss不支持

    3. web和顾客都是老大,可怜了Service

    前边忙了半天,web老大让你干啥你就要干啥,请求说要实现啥,你就要实现,完了还要记得认真打包成response转给顾客(其实中间还要先交给web老大过个审才阔以)太难了,
    来吧,我们来看看service这个苦命的服务员是具体怎么做的吧
    在这里插入图片描述
    要了解service(服务员)那就必须知道它在公司的地位,它必须要在一个合理的位置,这里会有各种各样service,这样才能方便管理—合理建包的重要性

    然后才开始看看服务员的工作方法
    首先每一个合格的service都必须拥有一个servlet工具,这是工作必备的工具,没有它,那就不是一个真正的service(服务员),没有老板愿意找个空壳机器人做服务员

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    
            resp.setContentType("text/html");
            resp.setCharacterEncoding("UTF-8");
            PrintWriter writer = resp.getWriter();
            writer.print("我假装从服务器那边得到的一句话 , 因为我现在还没向服务器发送请求,所以不会有响应信息回来,这只是模拟输出的");
    
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    

    当service拥有了servlet后,就好比有了一个可以在顾客点餐时用做记录的小本本,上边写着顾客想要实现的一切(HttpServletRequest req),然后才能想尽办法完成。这里我对实现过程不做解释,具体也就是写各种方法,我们之后慢慢讲解。
    我们这里展示的service就是模拟从服务器获得处理后的一句话,因为我们实际上没有将请求发送处理,只是伪造了一个响应,所以全部都是response的方法,response就是处理后的响应。哈哈服务员有点坏哦。

    总结

    就这样所有工作完成后,我们从头开始,发布项目,在浏览器输入请求URL,便可以找到service,得到响应页面

    展开全文
  • [摘要]学校网络安全事故救助机制是在对事故进行准确分析判断的基础上进行的救护与援助活动的运行系统;建立学校网络安全事故救助机制有其必要性、可能性;学校网络安全事故救助机制主要包括对象、主体、组织及人员、...

      [摘要]学校网络安全事故救助机制是在对事故进行准确分析判断的基础上进行的救护与援助活动的运行系统;建立学校网络安全事故救助机制有其必要性、可能性;学校网络安全事故救助机制主要包括对象、主体、组织及人员、形式等构成要素,其运行是一个动态过程;救助要注意处理好一些问题,才能达到最佳效果。
      [关键词]网络安全事故;救助;机制
      
      学校网络安全事故属学校安全范畴,不是通常所指的网络技术安全事故,而是特指学生因不当使用网络而导致的危及自身或他人的身心、财产,危及社会的现象。学校网络安全事故分为两类:一类为危及自身的网络安全事故,主要包括由于各种不当上网行为引发的逃课、离家出走、突发疾病、自杀,甚至成为诈骗、强奸、故意伤害、杀人、拐卖等刑事犯罪受害者的事故;一类为危及他人及社会的网络安全事故,主要包括由于各种不当上网行为引发的各种违法或犯罪,如因“网资”不足而引发的抢劫、抢夺和盗窃等违法犯罪,因网上黄色淫秽内容及网恋引发的性犯罪,因网上暴力内容潜移默化的影响而引发的绑架、杀人等暴力型犯罪等。
      近年来,由学生不当上网引发的学校网络安全事故呈不断上升之势,给自身、家庭、学校、社会造成极大影响与危害。科学合理的学校网络安全预警与干预机制的建立,能有效地使学校网络安全事故的发生率降到最低,但并不意味着事故可以完全杜绝。如何对已发生的学校网络安全事故进行准确分析判断,采取恰当措施对事故主体进行救护与援助,成为学校安全研究的又一重要课题。
      
      一、学校网络安全事故救助机制的内涵和外延
      
      学校网络安全事故救助机制是指学校网络安全事故救助涉及的诸如救助主体、对象、机构与人员、救助手段、程序等要素,以及各要素之间相互影响、相互制约而形成的有效联系、有机运行的系统总和。
      学校网络安全事故救助机制的内涵主要是:首先,学校网络安全事故救助机制是在对事故进行准确分析判断的基础上进行的救护和援助活动的运行系统。对事故的成因进行系统分析,对其发生、发展及造成的危害进行测度,是成功救助的保障。其次,学校网络安全事故救助机制是事后的救护和援助机制。没有事故的发生,就谈不上救助。再次,救助的目的是最大限度地减少伤害和损失,最大限度地维护救助对象的合法权益。最后,救助机制是各要素间相互联系、相互影响和制约的有机运行系统,缺少任何一个要素,系统都无法正常运行。
      根据救助级别划分,学校网络安全事故救助机制可以分为:政府、教育行政部门、学校三级救助机制,其中政府和教育行政部门救助机制又可划分为镇、县、市、省、国家五级机制。根据救助的时间划分,学校网络安全事故救助机制可以分为:长期救助机制和短期救助机制。其中短期救助机制是针对临时突发事故的救助机制,即应急机制。应急机制与干预机制的区别在于:一是目的不同。干预机制的目的是防止网络安全事故的发生;应急机制的目的是尽量减少已发生的网络安全事故带来的危害。二是适用的阶段不同。干预机制适用于事前,即网络安全事故发生前,是发出网络安全预警后的排警;应急机制则是事后的,是网络安全事故发生后的紧急救助。
      
      二、学校网络安全事故救助机制建立的必要性
      
      学校网络安全事故救助机制是预警与干预失败后的补救机制,是最大限度降低事故危害的保障。
      
      (一)预警和干预并不能完全避免事故发生的特性决定了救助是必要的。学校建立了网络安全预警与干预机制,并不意味着网络安全事故将完全杜绝。预警与干预是对未来的预测以及在此基础上的防范和调控,而预警的主客观条件因素都是不断变化的,预警机制运行中的任何差错、干预措施不当或客观外界不可预料的因素都可能使网络安全事故的警示与干预失败。没有做到防患于未然,进行及时有效的救助,治患于已然便成为必然的补救选择。
      
      (二)学校网络安全事故的危害性决定了救助是必要的。学校网络安全事故一旦发生,轻则危及学生自身的身心和财产,重则危及他人财产和生命、危及社会。因而,采取及时有效的救护和援助措施进行补救是十分必要的。只有这样,才能及时控制事态的进一步发展,将事故造成的影响和危害控制在最小范围,最大限度减少事故主体的伤害和损失,最大限度地维护主体的合法权益。
      
      三、学校网络安全事故救助机制建立的可能性
      
      (一)客观需要的存在。有需要就有可能,目前学校网络安全事故的发生每年呈上升趋势。事故发生后,不仅事故主体要受到事故带来的危害影响,学校、家长、社会等各方面也不同程度地受到影响,都希望并需要得到来自各方的救护和帮助,使事故对自身的影响降到最低。
      
      (二)法律和政策的保障。现阶段,国家有关部门对学校安全问题极其重视,在学生安全救助方面已相继出台了一些相关办法和措施,如《中华人民共和国未成年人保护法》《中华人民共和国教育部学生伤害事故处理办法》等法律法规,为救助提供了最基础的法律依据。同时国家正加快网络管理立法,逐步采取各种措施加强网络管理,在法律和政策方面为学校网络安全事故救助机制的建立提供保障。
      
      (三)以人为本的观念基础。当今时代以人为本的观念正深入人心,这为学校网络安全事故救助打下了良好的观念基础。学校网络安全事故救助是在以人为本的前提下进行的救助,目的是要保护事故主体一人的合法权益,降低事故对人的各方面的损害。在以人为本观念的影响下,参与救助的各方行动能够更加协调一致,利于整个机制的有效运行。
      
      四、学校网络安全事故救助机制的构成
      
      学校网络安全事故救助机制的构成是指学校网络安全事故救助机制包含的必不可少的有机组成要素,包括以下内容:
      
      (一)救助主体。学校网络安全事故的救助主体是指享有网络安全事故救助权利,承担救助义务的有关组织或个人。学校网络安全事故救助的主体是多元一体的,这是因为:首先,《未成年人保护法》第五条第二款规定:“保护未成年人,是国家机关、武装力量、政党、社会团体、企业事业组织、未成年监护人和其他成年公民的重要责任。”第三款规定:“对侵犯未成年人合法权益的行为,任何组织和个人都有权进行劝阻、制止、或者向有关部门提出检举或控告。”可见,从法律角度看,学校网络安全事故救助主体是多元的。其次,由于影响学生网络安全事故的因素涉及学校、家庭、社会、个体自身等多方面,决定救助不是单方面的学校行动就能完全解决问题的。因此,学校网络安全事故的救助主体是多元一体的,即学校、家庭、社会、个体自身共同参与救助。

     (二)救助机构及人员。学校网络安全事故的救助主体是多元一体的,学校、家庭、社会、个体自身都有责任和义务共同参与救助,但救助是一个系统的行为过程,需要一个常设的组织机构来具体组织和协调救助行动。学校网络安全事故的救助机构是根据救助机制的不同级别来设置的,可分为国家级救助机构、省市县救助机构、学校救助机构。不同级别的救助机构都是由相应的教育主管部门领导,由相关部门、机构和人员组成的救助组织。学校级救助机构是在学校所属教育主管部门的领导下,由学校内主管领导、工作人员、教师及外聘法律、心理等相关专家组成。需要指出的是,学校网络安全事故救助机构的功能是组织和协调救助行动,一些具体的救助行动,如对当事人的生命救助,就需要医疗机构具体实施,对当事人的司法救助则需要司法机关具体参与,而学校网络安全事故救助机构在这些具体救助中是起协调和配合作用的。
      
      (三)救助对象。学校网络安全事故的当事人有两类:一类是学校学生,一类是校外人员。事故的责任方有可能是学校学生,也有可能是校外人员,事故的受害方同样如此。生命属于每个人只有一次,珍惜生命、尊重人权、安全第一是以人为本的原则。因此,从人道主义出发,学校网络安全事故救助不仅要对事故的受害方进行救助,当责任方处于生命威胁时,还要对其进行救助;不仅要对学校学生进行救助,还要对校外人员进行救助,特别是在现场紧急情况下,不管是否属于校内学生,只要处于危险状态,都必须进行救助。
      
      (四)救助形式。学校网络安全事故的救助形式是指学校网络安全事故救助主体对救助对象进行救助所采取的方式和途径。根据不同的划分标准,学校网络安全事故救助有不同的形式。根据救助主体划分,学校网络安全事故救助包括学校救助、家庭救助、社会救助和自我救助等;根据救助手段划分,学校网络安全事故救助包括经济救助、医疗救助、法律救助、心理救助、人道救助等;根据救助程序划分,学校网络安全事故救助包括现场救助和后续救助。学校网络安全事故救助形式是多样的,影响网络安全事故的因素是复杂的,事故发生后的具体情况是不同的,因而这些救助形式在事故的具体救助中常常要相互结合使用,才能达到有效的救助。
      
      五、学校网络安全事故救助机制的运行
      
      学校网络安全事故救助机制的运行是一个动态过程,其运行包括以下几个环节:

      (一)现场救助阶段。学校网络安全事故的现场救助是指救助主体第一时间在事故发生地对事故主体进行的紧急救助,其目的是尽量控制事态恶化,把事故造成的危害与影响降到最低。一般来说,学校网络安全事故的发生地点多在校外,无论是哪种情况,救助机构都应在得知事故发生后作出迅速反应,立即启动应急预案,在第一时间赶赴现场;同时根据实际情况需要,迅速通知医院进行急救、及时报警、尽快联系家长等,必要时请求社区相关部门给予支持和帮助。如因客观原因未在第一时间得知事故发生,赶赴现场后也应积极配合他人已经开始的自发救助,并将所掌握的事故主体的情况主动向警方汇报,并采取妥善方法安抚受害学生及家长。
      
      (二)后续救助阶段。学校网络安全事故救助的后续救助是指在对事故进行现场救助后,为进一步消除事故的后续影响而进行的相关救助。经过现场救助,将学校网络安全事故的影响和危害控制在一定范围内后,还要采取各种措施消除其后续影响。对于事故造成的损失,责任方根据法律规定,按照责任的比例和受损程度向受害方支付一定数额的赔偿金;对于责任问题、赔偿问题发生争议或纠纷调解无效,可以采取法律手段进行解决,对于涉及违法、犯罪的事故,还将追究责任人的相关法律责任,以维护受害方的合法权益;网络安全事故对学生的心理危害也是极大的,无论是责任学生还是受害学生,在网络心理方面都存在不同程度的问题,特别是受害学生,常常处于事故造成的心理阴影之下,影响正常的学习生活,实施必要的心理辅导和疏通是非常必要的;对于仅仅危害自身且危害程度不大的事故,加强对责任人的教育和心理疏导也是必不可少的。
      
      六、学校网络安全事故救助需要注意的问题
      
      (一)坚持以人为本的救助宗旨。安全第一公理的实质是安全高于一切,其目的就是以人为本,把关爱生命,珍惜人生,保护人类从事一切活动的安全与健康放在超越一切的位置。学校网络安全事故救助要坚持以人为本的宗旨,不因各种人为因素延误救助,坚持把救助对象的生命健康放在首位,救助措施要符合救助对象的特点和事故现场的实际情况,在确保生命健康的前提下,还要关注救助对象事后的心理健康状况。

     

    本论文网专业从事硕士学位论文业务!如需转载请保留一个链接:http://www.sslwdx.com/

    转载于:https://www.cnblogs.com/skyk/articles/1894155.html

    展开全文
  • jvm作为每个java程序猿必须了解的知识,博主推荐一本书《深入理解Java虚拟机》,以前博主在学校的时候看过几遍,每一次看都有新的理解。加上工作了也有一年多的时间了,有必要好好总结一番~什么是jvm平常我们编写...

    前言

    一个月没更新了,这个月发生了太多的事情,导致更新的频率大大降低,不管怎样收拾心情,技术的研究不能落下!

    jvm作为每个java程序猿必须了解的知识,博主推荐一本书《深入理解Java虚拟机》,以前博主在学校的时候看过几遍,每一次看都有新的理解。加上工作了也有一年多的时间了,有必要好好总结一番~

    什么是jvm

    平常我们编写代码都是编写的.java文件,怎么部署到机器上运行呢?通过打jar包或者war包,然后部署运行。

    963162e53e470c3c88a4fef16f8ded9a.png

    如果看过jar包的内容那么就能知道,我们写的.java文件全部被编译成了.class文件。

    这里发生了很重要的一个步骤——编译:将我们写的程序翻译成能被jvm读懂的文件格式。

    值得注意的是,每一个类都会被编译成一个.class文件,包括内部类等。也就是说每一个.class文件都只对应我们代码中的一个类。

    类的生命周期

    类被加载到jvm虚拟机内存开始,到卸载出内存为止,他的生命周期可以分为:加载->验证->准备->解析->初始化->使用->卸载。

    下面我们来对此一一说明:

    加载

    当生成一个jar包以后,我们编写的程序就全部编编译成了jvm能读懂的.class格式。此时就需要加载了,将我们的编译好的.class文件加载到jvm中。此时就会有一个“类加载器”的概念。如下图。

    7961699b52e246f3dbd0ac42768a5d73.png

    接下来一个问题,类加载器何时会将一个.class加载带jvm?也就是说什么情况下会加载一个类?

    一个jar包运行的时候会指定一个main()方法作为入口方法。首先就会将main()方法所在的类加载到jvm,当代码执行遇到new的时候又继续将该对象加载到jvm。

    所以总结来说,就是在你的代码中需要用到这个类的时候,就会将其加载到jvm中。

    验证

    这个不需要理解的太深,很直白的道理,不能什么阿猫阿狗都能被加载到jvm中,要不就乱套了。所以该阶段就是来校验加载进来的.class文件是否符合指定的规则。

    有一个很有趣的就是,每个.class文件都很浪漫,因为每一个.class文件都是以8个十六进制的 0×CAFEBABE,翻译过来就是咖啡宝贝。浪漫吧?在验证阶段的第一步就是检查.class文件是否以咖啡宝贝来开头的。

    准备

    当我们合法的把一个.class文件加载到jvm中后,此时就会进行一些准备工作。

    首先为这个类分配内存空间,然后为类变量(被static修饰的变量)赋值一个默认的初始值。但是如果类变量同时被final修饰的话,就不是赋值初始值而是具体的值

    用下面两种情况来说明:

    public class Student{

    private static int age = 18;

    }

    //此时就会为age变量分配内存空间并且为其赋值 0 这个初始值。

    public class Student{

    private static final int age = 18;

    }

    //age被final修饰,此时就会为age变量分配内存空间并且为其赋值为 18 。

    所以我们的流程图可以更新为

    edbc7c8ad1db4d26fe8e34c31f977865.png

    解析

    解析阶段就是jvm将常量池的符号引用替换为直接引用。

    简单的来说就是我们编写的代码中,当一个变量引用某个对象的时候,这个引用在.class文件中是以符号引用来存储的。在解析阶段就需要将其解析为直接引用。如果有了直接引用,那引用的目标必定已经在内存中存在。

    所以我们的流程图可以更新为

    acee10fe777494015f405acc51cec8fc.png

    初始化在准备阶段我们已经为加载到jvm的类分配了内存空间并且为类变量赋予了初始值。

    而到了初始化阶段,才真正开始执行类中定义的java程序代码。主要有以下步骤:

    为类的静态变量赋予正确的初始值。

    执行类的静态代码块。

    按照顺序自上而下运行类中的变量赋值语句和静态语句,并且只有类或接口被Java程序首次主动使用时才初始化他们。如果有父类,则首先按照顺序运行父类中的变量赋值语句和静态语句。

    所以我们的流程图可以更新为

    6c04d182f087464fad694cb0fbba1c96.png

    总结

    在一个静态方法中我们是不能直接使用非静态变量的。当我们使用静态方法的时候,仅仅是初始化了静态方法所在的类,此时只有静态变量是被赋了值而非静态变量是没有被赋值的。所以在静态方法中是不能直接使用非静态变量的。这是我的理解,如果理解有误,欢迎私信博主或留言哦~

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 人脑的「中断机制

    2020-10-12 23:59:21
    现代计算机操作系统最重要的机制之一-中断机制,它使多道程序的并发运行成为可能,也因为解放了CPU而大大提高了工作效率,同时使计算机对于运行时出现问题也有了应对之策。 接下来要谈的观点并不新鲜,也早有人提过...

    现代计算机操作系统最重要的机制之一-中断机制,它使多道程序的并发运行成为可能,也因为解放了CPU而大大提高了工作效率,同时使计算机对于运行时出现问题也有了应对之策。

    接下来要谈的观点并不新鲜,也早有人提过。人脑类比为CPU,那么中断就是正在集中精力做某件事时被打断去做另一件事。而且,不同的中断源对人脑的影响程度也不一样。比如正在学校自习室学习,突然被打扫的阿姨打断说起来一下;或者学习了一段时间感觉来了状态的时候,忍不住碰到手机并打开微博刷了几下。前者虽然会短暂影响,但是人脑恢复之前状态的速度会比较快,而后者可能非常慢,甚至难以再次恢复。若是用计算机的中断来解释,就是前者的只保存了程序断点,上下文基本不需要保存,而是保持了原样。而后者就比较耗费时间和资源了,不仅得把断点与上下文全部保存,还要将新的程序在CPU上运行,最后再调回之前的程序资源。

    以上算是最基本的干扰源对于大脑的影响,深层次的影响也许更大,今天下午读了刘未鹏的博客,在暗时间里他提到了潜意识的思考,如果真的足够投入一件事,那么不仅表层意识在思考,而且潜意识也会思考,从而多出来很多处理问题的暗时间。所以干扰越大,表层意识便难以集中,更不用说潜意识了。

    学生,用脑最多的人之一,需要保护好自己的大脑。尽量避免干扰过大的干扰源干扰自己。

    展开全文
  • 广义来说,国际学校运行要素有很多:师资情况、课程情况、升学情况、硬件设施、文化氛围……甚至具体到教师的薪 资水平,都会影响国际学校的发展。“教育”的生效机制目前尚不透明,诸多因素之间存在着千丝万缕的...
  • 借鉴企业价值链模型,提出教育价值链概念,以此构建高校内部治理价值链机制模型。在此基础上,基于行政权力...内部治理价值链机制运行效率包括学生满意度、教师满意度、毕业生声誉、学校综合力以及社会影响力5个评价指标。
  • 产学研结合即产业、学校、科研机构相互配合,发挥各自优势,形成强大的研究、开发、生产一体化的先进系统并在运行过程中体现出综合优势。
  • 知识经济时代的到来,对未来教育提出了高质、高效的要求,反思我国目前教育现状,各方教育资源没有充分整合,学校、家庭、社会无法形成有效地合作互动机制,教育互动模式有待创新。文章在此背景下,从围绕学生全面发展为...
  • 就像你去学校餐厅吃饭的那段时间,有人吃完饭,没有收拾就走了,他剩下的无用的饭菜,影响到你坐那个桌子,当这种不主动收拾的行为习惯多了之后,餐厅就没法运行。(大概类似C,C++,你需要手动管理自己开辟的内存,...
  • 用nio给一个学生写的BBS聊天室。 在用nio通讯的过程我用以下情景给你模拟: 1.... 员工号/学生号(SelectionKey) 学校:相当于我们的网络应用程序,一旦学校启动,学校就不停止,不断运行,直到学期结束; 要...
  • 为使重庆大学建设的国家重点实验室能够引领学科前沿,增强核心竞争力,从而更好地满足新兴学科快速发展和国家重大需求,学校进行了实验室体制机制改革的实践。针对重庆大学实际情况,从优化调整研究领域、凝练研究方向、...
  • 运行后音乐仍为灰色

    2020-12-28 05:18:08
    我怀疑是网易云内部对原先的mac网络环境有缓存机制。但我删除~/Library/Caches/内容无效(即使重装app,音乐播放状态仍在,说明在其他路径也有配置文件)。想向你请教一下网易云的配置文件...
  • 最近给学校做的系统,总出现主键插入冲突的问题。主键是通过hibernate自动生成的,设置increment属性,总出现Duplicateentry的错误。搜到解决方案如下: 在网站运行在apache和tomcat的负载均衡之后,总是出现一些...
  • Spark系列(三)Spark的工作机制

    千次阅读 2018-03-11 22:47:43
    看了师妹关于Spark报告的PPT,好怀念学生时代开组会的时光啊,虽然我已经离开学校不长不短两个月,但我还是非常认真的翻阅了,并作为大自然的搬运工来搬运知识了。Spark的执行模式1、Local,本地执行,通过多线程来...
  • jvm作为每个java程序猿必须了解的知识,博主推荐一本书《深入理解Java虚拟机》,以前博主在学校的时候看过几遍,每一次看都有新的理解。加上工作了也有一年多的时间了,有必要好好总结一番~ 什么是jvm 平常我们编写...
  • 基于python的opcode优化和模块按需加载机制研究(学习与思考)姓名:XXX学校信息:XXX主用编程语言:python3.5文档转换为PDF有些图片无法完全显示,请移步我的博客查看完成时间:2019.03.06本项目希望您能完成以下任务...
  • ASP.NET是基于公共语言运行库的程序体系结构,因此整个系统框架可以用于任何ASP.NET应用程序。ASP.net的执行效率已经大大提高,并且它强大且适应性强,因为ASP.NET是一种通用的操作方法。所以它的规模可以适应几乎...
  • 1、原理和运行机制、体系结构(非常重要)2、动手:搭建环境、写程序 目的:1、学习内容 2、熟悉一些名词 一、各章概述(Hadoop部分) (一)、Hadoop的起源与背景知识 1、什么是大数据?两个例子、大数据的核心...
  • jvm作为每个java程序猿必须了解的知识,博主推荐一本书《深入理解Java虚拟机》,以前博主在学校的时候看过几遍,每一次看都有新的理解。加上工作了也有一年多的时间了,有必要好好总结一番~什么是jvm平常我们编写...
  • 章 Java概述1.1Java的历史及发展1.2Java语言的特点1.3Java开发环境的建立1.3.1安装K1.3.2建立Eclipse开发环境1.4Java程序的编写与运行1.5Java程序的运行机制1.6JavaAPI文档本章小结习题第2章 Java编程...
  • 本项目使用Eclipse开发,因此上传代码为Eclipse项目,可以在Eclipse中直接打开并运行。 注:代码中有一些资源路径放在绝对路径下(d盘根目录),若图片或音效资源无法加载则把相应资源放到代码中对应路径下即可。 ...
  • 图书馆管理系统是学校管理机制中关键一环图书馆代表着一间学校或地域文化标志因为图书馆丰富图书资源能够带给我们关键而且优越学习资源经过对书管理系统运行管理机制进行调查研究开发了此图书系统 关键词计算机技术...
  • 摘 要 随着科学技术的进步计算机行业的迅速发展大大提高人们的工作效率计 算机信息处理系统的引进已彻底改变了许多系统的经营管理图书管理系统是学校 管理机制中的重要组成部分通过对图书管理系统的运行管理机制进行...
  • PAGE 16 摘 要 随着科学技术的进步计算机行业的迅速发展大大提高人们的工作效率计算机信息处理系统的引进已彻底改变了许多系统的经营管理图书管理系统是学校管理机制中的重要组成部分通过对图书管理系统的运行管理...
  • JavaSE(一)

    2020-07-12 02:13:37
    JavaSE(一)简介Java的历史Java语言的特点Java运行机制跨平台Java的两种核心机制JVM机制Java程序开发和运行的步骤垃圾回收机制Java环境的搭建JDK ,JRE,JVM的简单介绍环境的搭建 简介 暑假就已经大三了,回顾回顾SE...
  • 基于《纲要》实施与构建大学体育教学平台探析,鲁飞,,传统体育课程模式和运行机制难以承载《全国普通高等学校体育课程教学指导纲要》所赋予的任务。以培养学生体育创新精神和实践能力
  • 学校liferay portal的基础,了解平台运行的原理,知道其中某些方法,和封装机制
  • 因此,我校很早就成立了信息中心小组,形成由校长主管、教导处分管,信息技术小组教师具体贯彻实施、全体教师参与的管理网络和运行机制,使学校资源信息库建设更贴近我校教育教学改革的前沿,为我校全面推进素质教育...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
关键字:

学校运行机制