From facc6bd5c2d13f8c4015be2076e8fa00f2c0fe74 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Sat, 13 Jun 2020 10:48:07 +0800 Subject: [PATCH] 2020-06-13 10:48:07 --- docs/misc2/131.md | 14 +++++++------- docs/misc2/149.md | 2 +- docs/misc2/163.md | 2 +- docs/misc2/181.md | 13 +++++++------ docs/misc2/182.md | 6 +++--- docs/misc2/184.md | 20 ++++++++++---------- docs/misc2/185.md | 6 +++--- docs/misc2/198.md | 2 +- docs/misc2/202.md | 2 +- docs/misc2/208.md | 4 ++-- docs/misc2/211.md | 2 +- docs/misc2/214.md | 14 +++++++------- docs/misc2/217.md | 2 +- docs/misc2/42.md | 2 +- docs/misc2/43.md | 2 +- docs/misc2/82.md | 2 +- docs/misc2/83.md | 4 ++-- docs/misc2/87.md | 2 +- 18 files changed, 51 insertions(+), 50 deletions(-) diff --git a/docs/misc2/131.md b/docs/misc2/131.md index 182b1ee..1935afe 100644 --- a/docs/misc2/131.md +++ b/docs/misc2/131.md @@ -50,7 +50,7 @@ Java 中的异常层次结构 #### 非受检的异常 -这些是不需要在`throws`子句中声明的异常。 JVM 不会强迫您处理它们,因为它们大多数是由于程序错误在运行时生成的。 它们扩展了`RuntimeException`。 最常见的示例是`NullPointerException`(很吓人。不是吗?)。 非受检的异常可能不应该重试,正确的操作通常应该是什么也不做,然后让它从方法中出来并通过执行堆栈。 在高级别执行时,应记录此类异常。 +这些是不需要在`throws`子句中声明的异常。 JVM 不会强迫您处理它们,因为它们大多数是由于程序错误在运行时生成的。 它们扩展了`RuntimeException`。 最常见的示例是`NullPointerException`(很吓人。不是吗?)。 非受检的异常可能不应该重试,正确的操作通常应该是什么也不做,然后让它从方法中出来并通过执行栈。 在高级别执行时,应记录此类异常。 #### 错误 @@ -75,7 +75,7 @@ Java 中的异常层次结构 } ``` -包装异常可以通过添加您自己的消息/上下文信息来向用户提供额外的信息,同时仍保留原始异常的堆栈跟踪和消息。 它还允许您隐藏代码的实现细节,这是包装异常的最重要原因。 +包装异常可以通过添加您自己的消息/上下文信息来向用户提供额外的信息,同时仍保留原始异常的栈跟踪和消息。 它还允许您隐藏代码的实现细节,这是包装异常的最重要原因。 现在让我们开始探索在异常处理方面明智的最佳实践。 @@ -125,7 +125,7 @@ try { 好吧,这是更严重的麻烦了。 因为 Java 错误也是`Throwable`的子类。 错误是不可逆的条件,JVM 本身无法处理。 对于某些 JVM 实现,JVM 甚至可能实际上不会在`Error`上调用您的`catch`子句。 -#### 3.5 始终正确地将异常包装在自定义异常中,以便不会丢失堆栈跟踪 +#### 3.5 始终正确地将异常包装在自定义异常中,以便不会丢失栈跟踪 ```java catch (NoSuchMethodException e) { @@ -134,7 +134,7 @@ catch (NoSuchMethodException e) { ``` -这破坏了原始异常的堆栈跟踪,并且总是错误的。 正确的方法是: +这破坏了原始异常的栈跟踪,并且总是错误的。 正确的方法是: ```java catch (NoSuchMethodException e) { @@ -181,7 +181,7 @@ catch (NoSuchMethodException e) { #### 3.9 不要使用`printStackTrace()`语句或类似方法 -完成代码后,切勿离开`printStackTrace()`。 很有可能是您的同事之一,最终将获得这些堆栈跟踪中的一个,并且对如何处理它的知识完全为零,因为它不会附加任何上下文信息。 +完成代码后,切勿离开`printStackTrace()`。 很有可能是您的同事之一,最终将获得这些栈跟踪中的一个,并且对如何处理它的知识完全为零,因为它不会附加任何上下文信息。 #### 3.10 如果您不打算处理异常,请使用`finally`块而不是`catch`块 @@ -200,7 +200,7 @@ try { 这可能是有关异常处理的最著名的原理。 它基本上说您应该尽快抛出异常,并尽可能晚地捕获它。 您应该等待,直到掌握了正确处理所有信息为止。 -该原则隐含地表明,您将更有可能将其扔到低级方法中,在这种方法中,您将检查单个值是否为`null`或不合适。 并且您将使异常爬升到堆栈跟踪相当多个级别,直到达到足够的抽象级别以能够解决问题为止。 +该原则隐含地表明,您将更有可能将其扔到低级方法中,在这种方法中,您将检查单个值是否为`null`或不合适。 并且您将使异常爬升到栈跟踪相当多个级别,直到达到足够的抽象级别以能够解决问题为止。 #### 3.12 处理异常后请务必清理 @@ -253,7 +253,7 @@ LOGGER.debug("Using cache sector A, using retry sector B"); #### 3.17 将所有相关信息传递给异常,以使它们尽可能多地提供信息 -这对于使异常消息和堆栈跟踪有用和提供信息也非常重要。 如果您无法从中确定任何内容,则日志的用途是什么。 这些类型的日志仅存在于您的代码中用于装饰。 +这对于使异常消息和栈跟踪有用和提供信息也非常重要。 如果您无法从中确定任何内容,则日志的用途是什么。 这些类型的日志仅存在于您的代码中用于装饰。 #### 3.18 总是终止被中断的线程 diff --git a/docs/misc2/149.md b/docs/misc2/149.md index a93af69..fc4f149 100644 --- a/docs/misc2/149.md +++ b/docs/misc2/149.md @@ -101,7 +101,7 @@ randomTuple[0] = 0 # TypeError: 'tuple' object does not support item assignment **字典**或字典是项的键值对的**有序集合**。 键可以保存任何原始数据类型,而值是任意的 Python 对象。 -字典中的条目用逗号分隔并括在花括号`{, }`中。 +字典中的项目用逗号分隔并括在花括号`{, }`中。 ```py charsMap = {1:'a', 2:'b', 3:'c', 4:'d'}; diff --git a/docs/misc2/163.md b/docs/misc2/163.md index 4eba0c5..16405ce 100644 --- a/docs/misc2/163.md +++ b/docs/misc2/163.md @@ -4,7 +4,7 @@ ## 1.什么是优先队列 -* [优先级队列](https://en.wikipedia.org/wiki/Priority_queue)是一种抽象数据类型,类似于常规队列或堆栈数据结构,但每个元素还具有与之关联的“优先级”。 +* [优先级队列](https://en.wikipedia.org/wiki/Priority_queue)是一种抽象数据类型,类似于常规队列或栈数据结构,但每个元素还具有与之关联的“优先级”。 * 在优先级队列中,优先级高的元素先于优先级低的元素提供。 * 如果两个元素具有相同的优先级,则将根据它们在队列中的顺序为其提供服务。 diff --git a/docs/misc2/181.md b/docs/misc2/181.md index d2dbc74..65d438c 100644 --- a/docs/misc2/181.md +++ b/docs/misc2/181.md @@ -1,8 +1,8 @@ -# [已解决]无法找到 ref-name 引用的拦截器类 +# [已解决] 无法找到`ref-name`引用的拦截器类 > 原文: [https://howtodoinjava.com/struts2/solved-unable-to-find-interceptor-class-referenced-by-ref-name/](https://howtodoinjava.com/struts2/solved-unable-to-find-interceptor-class-referenced-by-ref-name/) -在为 [**@InterceptorRef 示例**](//howtodoinjava.com/struts-2/struts-2-custom-interceptor-with-interceptorref-example/ "Struts2 custom interceptor with @InterceptorRef example") 编写代码时,我才知道此功能。 我必须在 struts.xml 文件中声明拦截器定义,而我想通过注释使用拦截器。 第一次尝试时,失败并显示以下错误: +在为[**`@InterceptorRef`示例**](//howtodoinjava.com/struts-2/struts-2-custom-interceptor-with-interceptorref-example/ "Struts2 custom interceptor with @InterceptorRef example")编写代码时,我才知道此功能。 我必须在`struts.xml`文件中声明拦截器定义,而我想通过注释使用拦截器。 第一次尝试时,失败并显示以下错误: ```java Unable to load configuration. - [unknown location] @@ -19,11 +19,11 @@ Caused by: Unable to find interceptor class referenced by ref-name customStack - ## 原因: -默认情况下,Convention 插件使用其自己的包 Convention-default,其中不包含您在 struts.xml 中定义的包。 这意味着 Convention 将在其中放置您的操作的包不会扩展定义拦截器的包。 +默认情况下,`Convention`插件使用其自己的包`Convention-default`,其中不包含您在`struts.xml`中定义的包。 这意味着`Convention`将在其中放置您的操作的包不会扩展定义拦截器的包。 ![Random exceptions](img/bfcee52d8f51b09dd5024f261008e635.png) -Random exceptions +随机异常 @@ -31,8 +31,9 @@ Random exceptions 要更改,您有两个选择: -1) Use of `@ParentPackage` annotation -2) Define in struts.xml +1) 使用`@ParentPackage`注解 + +2) 在`struts.xml`中定义`` 例如: diff --git a/docs/misc2/182.md b/docs/misc2/182.md index 3687bb8..60b2a81 100644 --- a/docs/misc2/182.md +++ b/docs/misc2/182.md @@ -1,8 +1,8 @@ -# [已解决]:找不到扩展名[属性]或[xml]的结果类型 +# [已解决]:找不到扩展名`properties`或`xml`的结果类型 > 原文: [https://howtodoinjava.com/struts2/solved-unable-to-find-a-result-type-for-extension-properties-or-xml/](https://howtodoinjava.com/struts2/solved-unable-to-find-a-result-type-for-extension-properties-or-xml/) -如果您刚刚开始编写 Struts2 应用,并且正在配置它,那么您可能会遇到此异常。 完整的堆栈跟踪如下所示: +如果您刚刚开始编写 Struts2 应用,并且正在配置它,那么您可能会遇到此异常。 完整的栈跟踪如下所示: ```java SEVERE: Dispatcher initialization failed @@ -84,7 +84,7 @@ at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(Configur ## 解决方案 -出现此异常是因为为属性“ struts.convention.result.path” 配置了**错误的路径,该路径通常如下所示:** +出现此异常是因为为属性“`struts.convention.result.path`” 配置了**错误的路径**,该路径通常如下所示: ```java diff --git a/docs/misc2/184.md b/docs/misc2/184.md index 3b05258..49543cd 100644 --- a/docs/misc2/184.md +++ b/docs/misc2/184.md @@ -1,19 +1,19 @@ -# 使用数组的 Java 堆栈实现 +# 使用数组的 Java 栈实现 > 原文: [https://howtodoinjava.com/data-structure/java-stack-implementation-array/](https://howtodoinjava.com/data-structure/java-stack-implementation-array/) -本教程给出了**使用数组**实现[堆栈](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))数据结构的示例。 堆栈提供了将新对象放入堆栈(方法 push())并从堆栈中获取对象(方法 pop())。 堆栈根据后进先出(LIFO)返回对象。 请注意,JDK 提供了默认的 Java 堆栈实现作为类`java.util.Stack`。 +本教程给出了**使用数组**实现[栈](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))数据结构的示例。 栈提供了将新对象放入栈(方法`push()`)并从栈中获取对象(方法`pop()`)。 栈根据后进先出(LIFO)返回对象。 请注意,JDK 提供了默认的 Java 栈实现作为类`java.util.Stack`。 -适用于所有堆栈实现的两个强制操作是: +适用于所有栈实现的两个强制操作是: -* **push()**:将数据项放置在堆栈指针指向的位置。 -* **pop()**:在其中删除数据项并从堆栈指针指向的位置返回该数据项。 +* **`push()`**:将数据项放置在栈指针指向的位置。 +* **`pop()`**:在其中删除数据项并从栈指针指向的位置返回该数据项。 -某些严重依赖堆栈的环境可能会根据要求提供其他操作。 Stack 最常见的用法是表达式求值和语法解析。 您也可以在文本处理器的撤消/重做操作中找到它们。 +某些严重依赖栈的环境可能会根据要求提供其他操作。 Stack 最常见的用法是表达式求值和语法解析。 您也可以在文本处理器的撤消/重做操作中找到它们。 -## Java Stack 实现源代码 +## Java 栈实现源代码 -下面的程序是 Stack 数据结构的示例实现。 可以根据需要随意修改源代码。 +下面的程序是栈数据结构的示例实现。 可以根据需要随意修改源代码。 ```java package com.howtodoinjava.datastructure; @@ -67,7 +67,7 @@ public class CustomStack ``` -现在,通过从堆栈中推送和弹出一些条目来测试我们的堆栈实现。 +现在,通过从栈中推送和弹出一些项目来测试我们的栈实现。 ```java public class Main @@ -103,6 +103,6 @@ Output: [10] ``` -这就是有关 **Java 堆栈实现**示例的简单但重要的概念。 +这就是有关 **Java 栈实现**示例的简单但重要的概念。 学习愉快! \ No newline at end of file diff --git a/docs/misc2/185.md b/docs/misc2/185.md index 6ce9be9..e9a5599 100644 --- a/docs/misc2/185.md +++ b/docs/misc2/185.md @@ -2,11 +2,11 @@ > 原文: [https://howtodoinjava.com/data-structure/list-implementation-example-in-java/](https://howtodoinjava.com/data-structure/list-implementation-example-in-java/) -在本教程中,我将给出 Java 中 List 的示例**实现。 通过在`DemoList`类中添加或删除方法,可以随意自定义列表的行为。 如果您有一些想法可以改善此实现,请与我们分享。** +在本教程中,我将给出 Java 中`List`的示例**实现**。 通过在`DemoList`类中添加或删除方法,可以随意自定义列表的行为。 如果您有一些想法可以改善此实现,请与我们分享。 ## Java 列表实现示例 -在此类`DemoList.java`中,我们将创建具有以下功能的 List 实现: +在此类`DemoList.java`中,我们将创建具有以下功能的`List`实现: * 列表可能会从零增长到无限大小(至少在理论上是这样)。 * 创建列表时,将使用最少 10 个元素初始化列表。 @@ -94,7 +94,7 @@ public class DataList ``` -让我们快速测试一下 List 的实现。 +让我们快速测试一下`List`的实现。 ```java package com.howtodoinjava.datastructure; diff --git a/docs/misc2/198.md b/docs/misc2/198.md index 02073df..8106c56 100644 --- a/docs/misc2/198.md +++ b/docs/misc2/198.md @@ -30,6 +30,6 @@ System.out.println(map.put("test key 4", "test value 4")); 首次添加“测试键 4”时,它在映射中不存在,因此映射返回值是 null。 -下次存储“测试键 4”时,该时间条目已经存在,因此将值返回为“测试值 4” +下次存储“测试键 4”时,该时间项目已经存在,因此将值返回为“测试值 4” **祝您学习愉快!** \ No newline at end of file diff --git a/docs/misc2/202.md b/docs/misc2/202.md index 17318fe..4c13f89 100644 --- a/docs/misc2/202.md +++ b/docs/misc2/202.md @@ -26,7 +26,7 @@ Reverse String -> moc.avaJnIoDoTwoH ## Java 程序通过单词反转字符串 -当**通过单词**反转字符串内容时,最自然的方法是使用`StringTokenizer`和`Stack`。 如您所知,`Stack`是一个实现易于使用的**后进先出(LIFO)**对象堆栈的类。 +当**通过单词**反转字符串内容时,最自然的方法是使用`StringTokenizer`和`Stack`。 如您所知,`Stack`是一个实现易于使用的**后进先出(LIFO)**对象栈的类。 ```java ] diff --git a/docs/misc2/208.md b/docs/misc2/208.md index 176deec..da4e7d6 100644 --- a/docs/misc2/208.md +++ b/docs/misc2/208.md @@ -53,7 +53,7 @@ HashMap 不是线程安全的。 我们可以在并发应用中使用 **HashTabl 我是否应该建议您准备**集合框架**及其所有主要类别? 我想你已经足够聪明了。 -如果没有任何与集合框架有关的问题,则任何面试(初中和中级)都将是不完整的。 它真正测试您的编程技能和对核心 Java API 的了解。 问题可能像集合层次结构一样简单,而困难的问题例如队列和堆栈。 这是此类常见收藏采访问题的列表: +如果没有任何与集合框架有关的问题,则任何面试(初中和中级)都将是不完整的。 它真正测试您的编程技能和对核心 Java API 的了解。 问题可能像集合层次结构一样简单,而困难的问题例如队列和栈。 这是此类常见收藏采访问题的列表: * 解释集合层次? * **设置**和**列表**之间的区别? @@ -72,7 +72,7 @@ HashMap 不是线程安全的。 我们可以在并发应用中使用 **HashTabl * **故障快速**和**故障安全**有什么区别? * 什么是**比较器**和**比较器**接口? * 什么是集合和**数组**类? -* 什么是**队列**和**堆栈**? 列出他们的差异? +* 什么是**队列**和**栈**? 列出他们的差异? #### 1.7 [Java 中的多态是什么?](//howtodoinjava.com/object-oriented/what-is-polymorphism-in-java/) diff --git a/docs/misc2/211.md b/docs/misc2/211.md index cafb657..867c42c 100644 --- a/docs/misc2/211.md +++ b/docs/misc2/211.md @@ -139,7 +139,7 @@ final int hash; * 现在,调用`indexFor(hash, table.length)`函数来计算用于存储 Entry 对象的精确索引位置。 * Here comes the main part. Now, as we know that two unequal objects can have same hash code value, how two different objects will be stored in same array location [called bucket]. Answer is `LinkedList`. If you remember, `Entry` class had an attribute “`next`”. This attribute always points to next object in chain. This is exactly the behavior of `LinkedList`. - 因此,在发生碰撞的情况下,`Entry`对象以`LinkedList`形式存储。 当`Entry`对象需要存储在特定索引中时,`HashMap`检查是否已经有一个条目? 如果尚无条目,则`Entry`对象存储在此位置。 + 因此,在发生碰撞的情况下,`Entry`对象以`LinkedList`形式存储。 当`Entry`对象需要存储在特定索引中时,`HashMap`检查是否已经有一个项目? 如果尚无项目,则`Entry`对象存储在此位置。 如果已经有一个对象位于计算索引上,则检查其`next`属性。 如果为**,则为**,并且当前`Entry`对象成为`LinkedList`中的`next`节点。 如果`next`变量不为空,则遵循步骤直到`next`被求值为空。 diff --git a/docs/misc2/214.md b/docs/misc2/214.md index eced967..46c922c 100644 --- a/docs/misc2/214.md +++ b/docs/misc2/214.md @@ -225,7 +225,7 @@ Map 接口是一种特殊的集合类型,它是**,用于存储键值对**。 **IdentityHashMap** 与 HashMap 相似,不同之处在于**在比较元素**时使用引用相等性。 IdentityHashMap 类不是一种广泛使用的 Map 实现。 尽管此类实现了 Map 接口,但它有意违反 Map 的一般协定,该协定要求在比较对象时必须使用 equals()方法。 IdentityHashMap 设计为仅在少数情况下使用,其中需要引用相等语义。 -**WeakHashMap** 是 Map 接口**的实现,该接口仅存储对其键**的弱引用。 当不再在 WeakHashMap 外部引用键值对时,仅存储弱引用将允许对键值对进行垃圾回收。 该类主要用于与 equals 方法使用==运算符测试对象标识的键对象一起使用。 一旦丢弃了这样的键,就永远无法重新创建它,因此以后不可能在 WeakHashMap 中对该键进行查找,并且会惊讶地发现它的条目已被删除。 +**WeakHashMap** 是 Map 接口**的实现,该接口仅存储对其键**的弱引用。 当不再在 WeakHashMap 外部引用键值对时,仅存储弱引用将允许对键值对进行垃圾回收。 该类主要用于与 equals 方法使用==运算符测试对象标识的键对象一起使用。 一旦丢弃了这样的键,就永远无法重新创建它,因此以后不可能在 WeakHashMap 中对该键进行查找,并且会惊讶地发现它的项目已被删除。 #### 13)解释 ConcurrentHashMap 吗? 怎么运行的? @@ -253,7 +253,7 @@ final int hash; ``` -此处,键和值变量用于存储键 - 值对。 整个条目对象存储在数组中。 +此处,键和值变量用于存储键 - 值对。 整个项目对象存储在数组中。 ```java /** @@ -281,7 +281,7 @@ Map 界面提供了 3 个存储在其中的键值对的视图: * 键集视图 * 值集视图 -* 条目集视图 +* 项目集视图 可以使用迭代器浏览所有视图。 @@ -434,17 +434,17 @@ BlockingQueue 方法有四种形式:一种抛出异常,第二种返回一个 阅读 post 中的阻塞队列示例用法: [**如何使用阻塞队列?**](//howtodoinjava.com/java-5/how-to-use-blockingqueue-and-threadpoolexecutor-in-java/ "How to use BlockingQueue and ThreadPoolExecutor in java") -#### 37)什么是队列和堆栈,列出它们之间的差异? +#### 37)什么是队列和栈,列出它们之间的差异? **设计用于在处理之前保存元素的集合。** 除了基本的 Collection 操作之外,队列还提供其他插入,提取和检查操作。 **通常但不一定以 FIFO(先进先出)的方式对元素进行排序。** -**堆栈也是队列的一种形式,但有一个区别,那就是 LIFO(后进先出)。** +**栈也是队列的一种形式,但有一个区别,那就是 LIFO(后进先出)。** -无论使用哪种顺序,队列的开头都是该元素,可以通过调用 remove()或 poll()将其删除。 另请注意,堆栈和向量都已同步。 +无论使用哪种顺序,队列的开头都是该元素,可以通过调用 remove()或 poll()将其删除。 另请注意,栈和向量都已同步。 **用法:**如果要按接收顺序处理传入流,请使用队列。适用于工作列表和处理请求。 -如果只想从堆栈顶部推动并弹出,请使用堆栈。 适用于递归算法。 +如果只想从栈顶部推动并弹出,请使用栈。 适用于递归算法。 #### 38)什么是可比较和比较器界面? diff --git a/docs/misc2/217.md b/docs/misc2/217.md index d982c39..ac39d17 100644 --- a/docs/misc2/217.md +++ b/docs/misc2/217.md @@ -44,7 +44,7 @@ ConcurrentHashMap Internal Structure 换句话说, **ConcurrentHashMap 使用多个锁,每个锁控制映射**的一个段。 在特定段中设置数据时,将获得该段的锁。 因此,基本上**更新操作是同步的**。 -**获取数据时,将使用易失性读取**,而不会进行任何同步。 如果易失性读取导致未命中,则将获得该段的锁定,并在同步块中再次搜索条目。 +**获取数据时,将使用易失性读取**,而不会进行任何同步。 如果易失性读取导致未命中,则将获得该段的锁定,并在同步块中再次搜索项目。 ## 3\. HashMap 和 Collections.synchronizedMap(HashMap)之间的区别 diff --git a/docs/misc2/42.md b/docs/misc2/42.md index e23cf29..e50aff1 100644 --- a/docs/misc2/42.md +++ b/docs/misc2/42.md @@ -2,7 +2,7 @@ > 原文: [https://howtodoinjava.com/jaxb/solved-javax-xml-bind-jaxbexception-class-java-util-arraylist-nor-any-of-its-super-class-is-known-to-this-context/](https://howtodoinjava.com/jaxb/solved-javax-xml-bind-jaxbexception-class-java-util-arraylist-nor-any-of-its-super-class-is-known-to-this-context/) -当您使用 [**JAXB**](//howtodoinjava.com/category/frameworks/jaxb/ "JAXB tutorials") 将 Java 对象(集合类型)编组为 xml 格式时,会发生此异常。 堆栈跟踪如下所示: +当您使用 [**JAXB**](//howtodoinjava.com/category/frameworks/jaxb/ "JAXB tutorials") 将 Java 对象(集合类型)编组为 xml 格式时,会发生此异常。 栈跟踪如下所示: ```java Exception in thread "main" javax.xml.bind.JAXBException: class java.util.ArrayList nor any of its super class is known to this context. diff --git a/docs/misc2/43.md b/docs/misc2/43.md index b959210..3ba406c 100644 --- a/docs/misc2/43.md +++ b/docs/misc2/43.md @@ -2,7 +2,7 @@ > 原文: [https://howtodoinjava.com/jaxb/solved-exception-in-thread-main-com-sun-xml-internal-bind-v2-runtime-illegalannotationsexception-3-counts-of-illegalannotationexceptions/](https://howtodoinjava.com/jaxb/solved-exception-in-thread-main-com-sun-xml-internal-bind-v2-runtime-illegalannotationsexception-3-counts-of-illegalannotationexceptions/) -当您使用 [**JAXB**](//howtodoinjava.com/category/frameworks/jaxb/ "JAXB tutorials") 将 Java 对象(集合类型)编组为 xml 格式时,会发生此异常。 堆栈跟踪如下所示: +当您使用 [**JAXB**](//howtodoinjava.com/category/frameworks/jaxb/ "JAXB tutorials") 将 Java 对象(集合类型)编组为 xml 格式时,会发生此异常。 栈跟踪如下所示: ```java Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions diff --git a/docs/misc2/82.md b/docs/misc2/82.md index 6098f7a..27cf4ce 100644 --- a/docs/misc2/82.md +++ b/docs/misc2/82.md @@ -79,7 +79,7 @@ AJP 连接器使 Tomcat 只处理动态网页,而让纯 HTML 服务器(例 **主机是网络名称的关联,例如`www.yourdomain.com`,访问 Tomcat 服务器。** 主机可以包含任意数量的上下文(即应用)。 您可以在同一服务器上定义多个主机。 例如,如果您已注册域`yourdomain.com`,则可以定义主机名,例如`w1.yourdomain.com`和`w2.yourdomain.com`。 请记住,只有当域名服务器将其名称映射到计算机的 IP 地址时,才可以从互联网访问它。 -Tomcat 的默认配置包括名为 **localhost** 的主机。 可以通过在文件`C:\Windows\System32\drivers\etc\hosts`中写入一个条目来完成 **localhost** 与您的计算机之间的关联。 +Tomcat 的默认配置包括名为 **localhost** 的主机。 可以通过在文件`C:\Windows\System32\drivers\etc\hosts`中写入一个项目来完成 **localhost** 与您的计算机之间的关联。 主机属性“`appBase`”定义了 Tomcat 安装文件夹中的应用目录。 然后,每个应用通过该目录中的路径进行标识。 唯一的例外是根路径,该路径已映射到空字符串。 本地主机的应用基本目录是`webapps`。 这意味着目录“`C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\`”中的应用由空字符串标识。 因此,其 URL 为“`http://localhost:8080/`”。 对于驻留在根以外的目录中的其他应用,如“`C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\`”,URL 类似于“`http://localhost:8080/myapp/`”。 diff --git a/docs/misc2/83.md b/docs/misc2/83.md index 40b1d2d..7e79daf 100644 --- a/docs/misc2/83.md +++ b/docs/misc2/83.md @@ -4,7 +4,7 @@ 默认情况下,tomcat 配置为在端口 8080 上运行。这就是为什么可以通过`http://localhost:8080/yourapp`之类的 URL 访问所有已部署的 Web 应用的原因。 如果要在`http://localhost/yourapp`之类的 URL 上运行应用,则需要将默认端口 8080 更改为 80,这是 HTTP 连接器的默认端口。 -要更改此端口,请打开`server.xml`并找到以下条目: +要更改此端口,请打开`server.xml`并找到以下项目: ```java ``` -并将其更改为以下条目: +并将其更改为以下项目: ```java -- GitLab