精华内容
下载资源
问答
  • 主要的容器包括: WEB容器 给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接跟容器中的环境变量接口交互,不必关注其它系统问题。主要由WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE...

    J2EE中容器充当中间件的角色。主要的容器包括:

    WEB容器

    给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接跟容器中的环境变量接口交互,不必关注其它系统问题。主要由WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

    EJB容器

    Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

    WEB和EJB比较

    WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

    RMI/IIOP

    远程方法调用/internet对象请求中介协议,他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

    JNDI

    JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

    JMS

    JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

    JAVAMAIL

    JAVA邮件服务。提供邮件的存储、传输功能。他是JAVA编程中实现邮件功能的核心。相当MS中的EXCHANGE开发包。

    JTA

    JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

    JAF

    JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

    EAI

    企业应用集成。是一种概念,从而牵涉到好多技术。J2EE技术是一种很好的集成实现。

    展开全文
  • 许多运行在Java虚拟机中的应用程序(包括Apache Spark和Kafka等数据服务以及传统的企业应用程序)都可以在Docker容器中运行。但是在Docker容器中运行Java应用程序一直存在一个问题,那就是在容器中运行JVM程序在设置...

    许多运行在Java虚拟机中的应用程序(包括Apache Spark和Kafka等数据服务以及传统的企业应用程序)都可以在Docker容器中运行。但是在Docker容器中运行Java应用程序一直存在一个问题,那就是在容器中运行JVM程序在设置内存大小和CPU使用率后,会导致应用程序的性能下降。这是因为Java应用程序没有意识到它正在容器中运行。随着Java 10的发布,这个问题总算得以解决,JVM现在可以识别由容器控制组(cgroups)设置的约束。可以在容器中使用内存和CPU约束来直接管理Java应用程序,其中包括:

    遵守容器中设置的内存限制

    在容器中设置可用的CPU

    在容器中设置CPU约束

    Java 10的这个改进在Docker for Mac、Docker for Windows以及Docker Enterprise Edition等环境均有效。

    容器的内存限制

    在Java 9之前,JVM无法识别容器使用标志设置的内存限制和CPU限制。而在Java 10中,内存限制会自动被识别并强制执行。

    Java将服务器类机定义为具有2个CPU和2GB内存,以及默认堆大小为物理内存的1/4。例如,Docker企业版安装设置为2GB内存和4个CPU的环境,我们可以比较在这个Docker容器上运行Java 8和Java 10的区别。

    首先,对于Java 8:

    docker container run -it -m512 --entrypoint bash openjdk:latest

    $ docker-java-home/bin/java -XX:+PrintFlagsFinal -version | grep MaxHeapSize

    uintx MaxHeapSize := 524288000 {product}

    openjdk version "1.8.0_162"

    最大堆大小为512M或Docker EE安装设置的2GB的1/4,而不是容器上设置的512M限制。

    相比之下,在Java 10上运行相同的命令表明,容器中设置的内存限制与预期的128M非常接近:

    docker container run -it -m512M --entrypoint bash openjdk:10-jdk

    $ docker-java-home/bin/java -XX:+PrintFlagsFinal -version | grep MaxHeapSize

    size_t MaxHeapSize = 134217728 {product} {ergonomic}

    openjdk version "10" 2018-03-20

    设置可用的CPU

    默认情况下,每个容器对主机CPU周期的访问是无限的。可以设置各种约束来限制给定容器对主机CPU周期的访问。Java 10可以识别这些限制:

    docker container run -it --cpus 2 openjdk:10-jdk

    jshell> Runtime.getRuntime().availableProcessors()

    $1 ==> 2

    分配给Docker EE的所有CPU会获得相同比例的CPU周期。这个比例可以通过修改容器的CPU share权重来调整,而CPU share权重与其它所有运行在容器中的权重相关。此比例仅适用于正在运行的CPU密集型的进程。当某个容器中的任务空闲时,其他容器可以使用余下的CPU时间。实际的CPU时间的数量取决于系统上运行的容器的数量。这些可以在Java 10中设置:

    docker container run -it --cpu-shares 2048 openjdk:10-jdk

    jshell> Runtime.getRuntime().availableProcessors()

    $1 ==> 2

    cpuset约束设置了哪些CPU允许在Java 10中执行。

    docker run -it --cpuset-cpus="1,2,3" openjdk:10-jdk

    jshell> Runtime.getRuntime().availableProcessors()

    $1 ==> 3

    分配内存和CPU

    使用Java 10,可以使用容器设置来估算部署应用程序所需的内存和CPU的分配。我们假设已经确定了容器中运行的每个进程的内存堆和CPU需求,并设置了JAVA_OPTS配置。例如,如果有一个跨10个节点分布的应用程序,其中五个节点每个需要512Mb的内存和1024个CPU-shares,另外五个节点每个需要256Mb和512个CPU-shares。

    请注意,1个CPU share比例由1024表示。

    对于内存,应用程序至少需要分配5Gb。

    512Mb × 5 = 2.56Gb

    256Mb × 5 = 1.28Gb

    该应用程序需要8个CPU才能高效运行。

    1024 x 5 = 5个CPU

    512 x 5 = 3个CPU

    最佳实践是建议分析应用程序以确定运行在JVM中的每个进程实际需要多少内存和分配多少CPU。但是,Java 10消除了这种猜测,可以通过调整容器大小以防止Java应用程序出现内存不足的错误以及分配足够的CPU来处理工作负载。

    展开全文
  • J2EE中的容器指什么?包括哪些

    千次阅读 2013-07-31 14:19:46
    主要的容器包括: WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,...
    J2EE中容器充当中间件的角色。主要的容器包括:
    WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
    EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。
    WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。
    RMI/IIOP:远程方法调用/internet对象请求中介协议,他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。
    JNDI:JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
    JMS:JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。
    JAVAMAIL:JAVA邮件服务。提供邮件的存储、传输功能。他是JAVA编程中实现邮件功能的核心。相当MS中的EXCHANGE开发包。
    JTA:JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。
    JAF:JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。
    EAI:企业应用集成。是一种概念,从而牵涉到好多技术。J2EE技术是一种很好的集成实现。
    展开全文
  • JDK 1.5 之前同步容器包括: Vector、Hashtable、Stack Collections 工具类将普通容器,转变为同步容器,如: public static <T> Collection<T> synchronizedCollection(Collection<T> c) ...

    JDK 1.5 之前同步容器包括:

    • Vector、Hashtable、Stack
    • Collections 工具类将普通容器,转变为同步容器,如:
    public static <T> Collection<T> synchronizedCollection(Collection<T> c)
    public static <T> Set<T> synchronizedSet(Set<T> s)
    public static <T> List<T> synchronizedList(List<T> list)
    public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m)

    同步容器的实现原理就是在容器的操作方法上,加上了 synchronized 关键字。


    List:CopyOnWriteArrayList

    • Set:CopyOnWriteArraySet、ConcurrentSkipListSet
    • Map:ConcurrentHashMap、ConcurrentSkipListMap
    • Queue:阻塞队列名称用 Blocking 标识,单端队列名称用 Queue 标识,双端队列名称用 Deque 标识
    1. 单端阻塞队列:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、LinkedTransferQueue、PriorityBlockingQueue、DelayQueue
    2. 双端阻塞队列:LinkedBlockingDeque
    3. 单端非阻塞队列:ConcurrentLinkedQueue
    4. 双端非阻塞队列:ConcurrentLinkedDeque

     

    下面示例中,当不把 list 转变为同步容器,并发 add,最后主线程打印 list,可能会报 java.util.ConcurrentModificationException 和 java.lang.ArrayIndexOutOfBoundsException,去掉注释就可以并发新增元素(当然最后打印的 list 不一定是元素的情况)

    package constxiong.interview;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    /**
     * 测试 同步容器与并发容器
     * @author ConstXiong
     * @date 2019-12-26 20:56:32
     */
    public class TestSynchronizedAndConcurrentCollection {
    	
    	static List<Integer> list = new ArrayList<Integer>();
    
    	public static void main(String[] args) throws InterruptedException {
    		testSynchronizedCollection();
    	}
    
    	/**
    	 * 测试同步容器
    	 * @throws InterruptedException 
    	 */
    	private static void testSynchronizedCollection() throws InterruptedException {
    //		list = Collections.synchronizedList(list);
    		for (int i = 0; i < 300; i++) {
    			final int index = i;
    			new Thread(() -> {
    				list.add(index);
    			}).start();
    		}
    		System.out.println(list);
    	}
    	
    }
    

     

    并发容器的使用很简单,跟普通容器类似,如:

        /**
    	 * 测试并发容器
    	 */
    	private static void testConcurrentCollection() {
    		for (int i = 0; i < 300; i++) {
    			final int index = i;
    			new Thread(() -> {
    				map.put(index, index);
    			}).start();
    		}
    		System.out.println(map);
    	}

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中。在Swing中,我们有三种可以使用的顶层容器,它们分别是:JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。JDialog:和JF...
  • 顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中。在Swing中,我们有三种可以使用的顶层容器,它们分别是:JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。JDialog:和JFram...
  • 容器包括序列式容器和关联式容器。 序列式容器 vector vector初始化默认多大? 默认为1,每次扩容在现有大小基础上乘以2。 list 关联式容器
  • 我直接摘JavaEE规范中的给你看吧建议去下载份JavaEE6规范看看2.3.1JavaEE服务器为应用程序组件提供支持JavaEE服务器为符合...这类组件包括Web组件和EJB组件。请查看这些组件各自的规范。部署和管理在JavaEE服务器上...
  • 这次我们要说的是java中的servlet,小伙伴们知道servlet的声明周期都包括哪些吗?下面就听小编介绍介绍吧。Servlet生命周期包含哪些?我们要了解,一个Servlet生命周期一共分为三个阶段:一、初始化阶段 调用init()...
  • 07 容器

    2020-03-30 17:45:33
    java容器包括spring中的容器都是用来存放对象的,而这些对象的功能便提供了相关容器的特性。 Servlet容器:Servlet 容器是 Web 服务器的一部分,用于提供基于请求/响应发送模式的网络服务,解码基于 MIME 的请求,...
  • 稳定性测试包括哪些 阿里巴巴技术团队在程序测试中的最佳实践 测试环境是任何软件研发过程的重要方面,并提供了一个在发布之前有效测试新功能的系统。 这种系统的稳定性是影响研发效率的最大因素之一。 本文...
  • Servlet 容器

    2019-10-03 14:02:52
    Servlet容器主要是JavaWeb应用提供运行时环境,所以也可以称之为JavaWeb应用容器,或者Servlet/JSP容器。...目前最流行的Servlet容器软件包括:Tomcat、Jetty、Jboss等。 Tomcat Tomcat和IIS等Web服...
  • “store” 基本上就是一个容器,它包含着你的应用中大部分的状态 ( state )。 Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效...
  • 文章目录一、Kubernetes集群总览二、Worker节点的运行机制1、kubelet2、kube-proxy3、容器运行时三、Master节点的运行机制1、kube-apiserver2、kube-controller-manager3、kube-scheduler4、etcd四、下篇文章预告 ...
  • 1 前言1.1介绍MySQL可以适用于容器吗?在这一篇里,简单地为大家...Docker容器映像是一个轻量级的、独立的、可执行的软件包,它包括运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。Docker是实现容器...
  • 前言这篇主要简单介绍 Java 集合库包含哪些常用的容器类,它们可以简单区分为:非同步集合同步集合并发集合那么,它们分别包括哪些具体的集合类,它们有什么主要的区别,以及它们的框架是怎样的?这就是今天要讲的...
  • Servlet 容器概念整理

    2020-04-14 10:07:25
    Servlet 容器 Servlet容器主要是JavaWeb应用提供运行时环境,所以也可以称之为JavaWeb应用容器,或者Servlet/JSP容器。...目前最流行的Servlet容器软件包括:Tomcat、Jetty、Jboss等。 Tomcat To...
  • 2.容器

    2019-05-02 15:55:02
    java中的容器包括,List,set,map。其中list是有序的,元素可重复,实现包括LinkList和ArrayList。而Set是无序的,不可重复的,实现包括HashSet和TreeSet。map是无序可重复的,实现包括HashMap和TreeMap。下面给出...
  • 详解 Spring IoC 容器

    2020-11-08 10:07:46
    说到 Spring,我们就避免不了要谈论的话题,IoC 容器,那么什么是 IoC 容器,IoC 容器哪些作用,具体又是如何实现的呢? 本篇文章我们来探寻一下 Spring IoC 容器,内容包括: 初识 IoC 依赖注入 反射机制 IoC ...
  • 同步容器的问题

    2020-03-04 16:43:20
    同步容器哪些 Vsetor, Hashtable. . .它们都是线程安全的容器,对于每一个方法都提供了同步的方法。 同步容器的问题 对于这些容器的复合操作是非线程安全的,这些复合操做包括: 迭代 。它是指反复获取一个...
  • 18.java 容器都有哪些?19.Collection 和 Collections 有什么区别?Collection是一个接口,它是Set、List等容器的父接口;Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括容器的...
  • java容器总结

    2019-09-19 11:05:14
    18.java 容器都有哪些? 数组 集合 String 19.Collection 和 Collections 有什么区别? Collections 是集合的工具类,提供了包括线程安全转化,排序,搜索等功能 Collection 是集合的一个父类 20.List、Set、Map ...
  • JavaEE容器介绍

    2017-03-31 11:33:11
    容器设置一般包括: 安全设置.Java EE安全模块可以配置Web组件和EJB的访问权限,可以史允许特定的用户访问. 事务管理设置.Java EE远程连接设置可以指定哪些方法可以放入同一个事务中. JNDI设置,JNDI查找服务为企业...
  • 常见Java面试题-容器

    2020-03-10 22:43:24
    18.java 容器都有哪些?...JAVA的容器包括如下: List,Map,Set ,Collection ,List ,LinkedList ,ArrayList ,Vector ,Stack ,Set Map ,Hashtable ,HashMap ,WeakHashMap 数据容器主要分为...
  • JAVA容器类框架

    2018-10-31 19:17:15
    2、知道接口之后,就知道类库是如何分类的,通过接口的实现类包括抽象类的子类,就可以了解到,它到底有哪些具体的实现类,因此首先要掌握基本结构是什么,首先要了解主要接口。 3、Collection是容器类中,容器类中...
  • Servlet容器主要是JavaWeb应用提供运行时环境,所以也可以称之为...Servlet容器哪些:目前最流行的Servlet容器软件包括: Tomcat、Jetty、Jboss等。TomcatTomcat和IIS等Web服务器一样,具有处理HTML页面的功能,...
  • 它指导部署工具部署具有特定容器选项、安全设置的模块或应用程序,并描述特定的配置要求。XML用于这些部署描述符文件的语法。 对于网络应用程序,必须调用部署描述符web . XML并且必须驻留在网络信息web应用程序根...
  • IOC容器基本原理

    2018-05-07 22:36:02
    谁控制谁,控制什么 --》IOC容器来控制对象的创建,主要控制了外部资源获取(不仅仅是对象,也包括文件)为何谁反转,哪些方面反转了 --》由我们在自己对象中主动控制区直接获取依赖对象,就是正转 ;而反转是由...
  • 通过上一篇文章,我们已经知道设计一个线程安全类的原则和步骤,以及在设计过程中我们应当注意的细节。实际上,Java 的集合库包含了线程安全集合和非线程安全集合,可以说 Java 的线程...那么,它们分别包括哪些具...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 561
精华内容 224
关键字:

容器包括哪些