Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
jbt-zh
提交
250d97fb
J
jbt-zh
项目概览
OpenDocCN
/
jbt-zh
9 个月 前同步成功
通知
0
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jbt-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
250d97fb
编写于
6月 23, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-23 11:19:53
上级
bc315f2b
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
87 addition
and
85 deletion
+87
-85
docs/108.md
docs/108.md
+1
-1
docs/187.md
docs/187.md
+1
-1
docs/191.md
docs/191.md
+1
-1
docs/24.md
docs/24.md
+1
-1
docs/37.md
docs/37.md
+1
-1
docs/41.md
docs/41.md
+3
-3
docs/43.md
docs/43.md
+6
-4
docs/44.md
docs/44.md
+43
-43
docs/46.md
docs/46.md
+13
-13
docs/48.md
docs/48.md
+3
-3
docs/49.md
docs/49.md
+11
-11
docs/56.md
docs/56.md
+1
-1
docs/59.md
docs/59.md
+2
-2
未找到文件。
docs/108.md
浏览文件 @
250d97fb
...
...
@@ -77,7 +77,7 @@ public class FirstJunitTest {
}
```
如果将此代码与实
施
JUnit 之前的代码进行比较,将会有明显的变化,
如果将此代码与实
现
JUnit 之前的代码进行比较,将会有明显的变化,
1.
注释:@ Before,@ Test 和@After
2.
方法:setUp(),testPageTitle(),tearDown()
...
...
docs/187.md
浏览文件 @
250d97fb
...
...
@@ -91,7 +91,7 @@ for (int i = 0; i < 1_000_000; i++) {
## 结论
批处理仅有助于将数据高效地存储在数据库中。 如果要使用某种故障转移机制,则需要实
施
手动提交策略。
批处理仅有助于将数据高效地存储在数据库中。 如果要使用某种故障转移机制,则需要实
现
手动提交策略。
[
代码下载
](
https://github.com/JBTAdmin/Hibernate
)
docs/191.md
浏览文件 @
250d97fb
...
...
@@ -59,7 +59,7 @@ Session session = sessionFactory.withOptions().tenantIdentifier( yourTenantIdent
### MultiTenantConnectionProvider
要使用两个可用的多租户提供程序之一,我们需要配置 MultiTenantConnectionProvider。 在这种特殊情况下,这意味着我们必须自己实
施
。
要使用两个可用的多租户提供程序之一,我们需要配置 MultiTenantConnectionProvider。 在这种特殊情况下,这意味着我们必须自己实
现
。
在本文的示例应用中,我添加了接口的最基本的实现。
...
...
docs/24.md
浏览文件 @
250d97fb
...
...
@@ -94,7 +94,7 @@ System.out.println("Value of the localVariable is-"+localVariable);
*
局部变量的长度没有限制。
*
如果变量名只有一个单词,则所有字符均应小写。
###
子弹
点
###
重
点
*
局部变量不能使用任何访问级别,因为它们仅存在于方法内部。
*
`Final`
是唯一可以应用于局部变量的非访问修饰符。
...
...
docs/37.md
浏览文件 @
250d97fb
...
...
@@ -152,7 +152,7 @@ abstract class InterfaceExampleThree implements interfaceTwo {
}
```
###
子弹
点
###
重
点
*
接口是 100%抽象类(
***隐式**
*
)。 在 Java 8 之后,它不成立。
*
接口可以由任何继承树中的任何类实现。
...
...
docs/41.md
浏览文件 @
250d97fb
...
...
@@ -111,10 +111,10 @@ Inside Static method
*
**静态**
修饰符可以应用于变量或方法,块或内部类。
*
***静态成员**
*
仅属于 Class 而不是实例。
*
静态方法
**无法访问**
*实例变量*
。
*
静态方法
**不能替代*
,因为它们是特定于类的,并且不属于实例。**
*
*
可以将
***重新定义为**
*
静态方法。
*
静态方法
**不能替代*
*
,因为它们是特定于类的,并且不属于实例。
*
可以将
***重新定义**
*
静态方法。
*
如果一个类包含任何静态块,则仅当将该类加载到 JVM 中时,才执行该块。 创建多个实例不会多次运行静态块。 仅构造器将执行多次。
*
如果调用
Class.forName(“
*class_name*
”)
,则将执行 Class 的静态块。
*
如果调用
`Class.forName("class_name")`
,则将执行 Class 的静态块。
<noscript><iframe
allow=
"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen=
""
frameborder=
"0"
height=
"360"
src=
"https://www.youtube.com/embed/QZwgz9tIy7I?start=1&feature=oembed"
title=
"Java Static variable"
width=
"640"
></iframe></noscript>
docs/43.md
浏览文件 @
250d97fb
...
...
@@ -93,11 +93,13 @@ String [] strArray = {“ J”,“ B”,“ T”};
数组中的每个元素都有一个索引。 索引
**从 0**
开始,这意味着数组中的第一个元素的索引为 0,第二个元素的索引为 1。这些索引号可用于访问数组中的特定元素。 相同的索引可用于在给定索引处设置数组中的值。
String [] strArray = {“ J”,“ B”,“ T”}
strArray [0] =“ CHANGED”;
字符串 valueAtIndex = strArray [0];
```
java
String
[]
strArray
=
{
"J"
,
"B"
,
"T"
};
strArray
[
0
]
=
"CHANGED"
;
String
valueAtIndex
=
strArray
[
0
];
```
数组中的最后一个元素的索引号为(
**size_of_the_array – 1**
)。
数组中的最后一个元素的索引号为(
`size_of_the_array – 1`
)。
## Java 阵列备忘单
...
...
docs/44.md
浏览文件 @
250d97fb
...
...
@@ -15,14 +15,14 @@ Collection API 提供了一组接口供您选择,但同时也为您提供了
*
[
设置
](
https://javabeginnerstutorial.com/core-java-tutorial/set-collection-tutorial-for-java-beginners/
)
*
[
SortedSet
](
https://javabeginnerstutorial.com/core-java-tutorial/sorted-set-collection-tutorial-for-java-beginners/
"Sorted Set Collection Tutorial for Java Beginners"
)
(扩展集接口)
*
NavigableSet(扩展 SortedSet)
*
[
地图
](
https://javabeginnerstutorial.com/core-java-tutorial/map-collection-tutorial-for-java-beginners/
)
*
[
SortedMap
](
https://javabeginnerstutorial.com/core-java-tutorial/sorted-map-collection-tutorial-for-java-beginners/
"Sorted Map Collection Tutorial for Java Beginners"
)
(扩展
地图
接口)
*
可导航
地图
(扩展 SortedSet)
*
[
映射
](
https://javabeginnerstutorial.com/core-java-tutorial/map-collection-tutorial-for-java-beginners/
)
*
[
SortedMap
](
https://javabeginnerstutorial.com/core-java-tutorial/sorted-map-collection-tutorial-for-java-beginners/
"Sorted Map Collection Tutorial for Java Beginners"
)
(扩展
映射
接口)
*
可导航
映射
(扩展 SortedSet)
*
队列
## 实
施
类
## 实
现
类
### 1-
地图
### 1-
映射
*
[
HashMap
](
https://javabeginnerstutorial.com/core-java-tutorial/java-collection-hashmap-hashtable/
"Java Collection Hashmap tutorial"
)
*
哈希表
...
...
@@ -139,7 +139,7 @@ List l = new ArrayList<E>();
### 哈希集
**
Property
**
**
属性
**
*
未分类
*
无序
...
...
@@ -162,53 +162,53 @@ List l = new ArrayList<E>();
## 并发收集接口
*
BlockingQueue
**扩展了**
队列
*
TransferQueue
**扩展了**
BlockingQueue
*
BlockingDeque
**扩展了**
BlockingQueue
*
ConcurrentMap
**扩展了**
地图
## 并发收集实
施
*
LinkedBlockingQueue
**扩展了**
AbstractQueue
**实现了**
BlockingQueue
*
ArrayBlockingQueue
**扩展了**
AbstractQueue
**实现了**
BlockingQueue
*
PriorityBlockingQueue
**扩展了**
AbstractQueue
**实现了**
BlockingQueue
*
DelayQueue
**扩展了**
AbstractQueue
**实现了**
BlockingQueue
*
SynchronousQueue
**扩展了**
AbstractQueue
**实现了**
BlockingQueue
*
LinkedBlockingDeque
**扩展了**
AbstractQueue
**实现了**
BlockingDeque
*
LinkedTransferQueue
**扩展了**
AbstractQueue
**实现了**
TransferQueue
*
CopyOnWriteArrayList
**实现**
List,RandomAccess
*
CopyOnWriteArraySet
**扩展**
AbstractSet
*
ConcurrentSkipListSet
**扩展了**
AbstractSet
**实现了**
NavigableSet
*
ConcurrentHashMap
**扩展了**
AbstractMap
**实现了**
ConcurrentMap
*
ConcurrentSkipListMap
**扩展了**
AbstractMap
**实现了**
ConcurrentNavigableMap
*
`BlockingQueue`
**扩展了**
`Queue`
*
`TransferQueue`
**扩展了**
`BlockingQueue`
*
`BlockingDeque`
**扩展了**
`BlockingQueue`
*
`ConcurrentMap`
**扩展了**
`Map`
## 并发收集实
现
*
`LinkedBlockingQueue`
**扩展了**
`AbstractQueue`
**实现了**
`BlockingQueue`
*
`ArrayBlockingQueue`
**扩展了**
`AbstractQueue`
**实现了**
`BlockingQueue`
*
`PriorityBlockingQueue`
**扩展了**
`AbstractQueue`
**实现了**
`BlockingQueue`
*
`DelayQueue`
**扩展了**
`AbstractQueue`
**实现了**
`BlockingQueue`
*
`SynchronousQueue`
**扩展了**
`AbstractQueue`
**实现了**
`BlockingQueue`
*
`LinkedBlockingDeque`
**扩展了**
`AbstractQueue`
**实现了**
`BlockingDeque`
*
`LinkedTransferQueue`
**扩展了**
`AbstractQueue`
**实现了**
`TransferQueue`
*
`CopyOnWriteArrayList`
**实现**
`List`
,
`RandomAccess`
*
`CopyOnWriteArraySet`
**扩展**
`AbstractSet`
*
`ConcurrentSkipListSet`
**扩展了**
`AbstractSet`
**实现了**
`NavigableSet`
*
`ConcurrentHashMap`
**扩展了**
`AbstractMap`
**实现了**
`ConcurrentMap`
*
`ConcurrentSkipListMap`
**扩展了**
`AbstractMap`
**实现了**
`ConcurrentNavigableMap`
## 可能有助于决定收藏类别的因素
为特定问题选择适当的集合时,可以考虑多种因素。 这些因素是:
1.
**排序**
-
元素中的某种排序。 例如,排序顺序,插入顺序或没有特定顺序。
2.
**重复项**
-
可能或可能不想在集合中允许重复的元素。
3.
**线程安全**
-
如果有多个线程访问集合,请确保集合中元素的安全。
4.
**键值对**
-
存储在键值对中。
5.
**阻塞操作**
-
检索元素时等待集合变为非空。
6.
**随机访问**
-
即时检索元素。
7.
**上限**
-
要限制集合可以容纳的最大元素数。
1.
**排序**
-
元素中的某种排序。 例如,排序顺序,插入顺序或没有特定顺序。
2.
**重复项**
-
可能或可能不想在集合中允许重复的元素。
3.
**线程安全**
-
如果有多个线程访问集合,请确保集合中元素的安全。
4.
**键值对**
-
存储在键值对中。
5.
**阻塞操作**
-
检索元素时等待集合变为非空。
6.
**随机访问**
-
即时检索元素。
7.
**上限**
-
要限制集合可以容纳的最大元素数。
还有其他因素,例如优先级,延迟等。
## 备忘单
1.
***集合**
*
是存储对象的数据结构。
1.
***集合**
*
是存储对象的数据结构。
2.
可以添加,删除对象,也可以在集合中对其进行遍历。
3.
基本收藏有 4 种类型
4.
**列表**
:
**有序**
,
**允许**
重复,已索引
****
5.
**
设置**
:可以订购或可以不订购
。
**不允许复制**
。
6.
**映射
:不允许使用**
重复的
**键。**
7.
**队列
:按 **
FIFO
** 或**
优先级对
**进行排序。**
8.
**
ArrayList
**
:快速迭代&快速随机访问。
9.
**
矢量
**
:同步方法。
10.
**
LinkedList
**
:适用于实现堆栈和队列。
11.
**
哈希集
**
:快速访问,没有重复,没有排序。
12.
**
LinkedHashSet
**
:没有重复,按插入顺序进行迭代。
13.
**
TreeSet
**
:无重复,按排序顺序进行迭代。
4.
**列表**
:
**有序**
,
**允许**
重复,已索引
。
5.
**
集**
:可以有序或可以无序
。
**不允许复制**
。
6.
**映射
**
:不允许使用
**重复的**
键。
7.
**队列
**
:按
**FIFO**
或
**优先级**
进行排序。
8.
**
`ArrayList`
**
:快速迭代&快速随机访问。
9.
**
`Vector`
**
:同步方法。
10.
**
`LinkedList`
**
:适用于实现堆栈和队列。
11.
**
`HashSet`
**
:快速访问,没有重复,没有排序。
12.
**
`LinkedHashSet`
**
:没有重复,按插入顺序进行迭代。
13.
**
`TreeSet`
**
:无重复,按排序顺序进行迭代。
docs/46.md
浏览文件 @
250d97fb
...
...
@@ -9,11 +9,11 @@ Java HashMap 是基于 HashTable 的 Map 实现。 这就是为什么面试官
## HashMap 的重要属性
|
**
DEFAULT_INITIAL_CAPACITY
**
| 默认初始容量(2 次幂 n)。 HashMap 可以包含许多元素。 |
|
**
MAXIMUM_CAPACITY
**
| HashMap 的最大容量(2 次幂 n)。 |
|
**
负载因子
**
| 定义 HashMap 的阈值。 重新调整大小时将在 HashMap 中发生。 |
|
**
DEFAULT_LOAD_FACTOR
**
| 在 HashMap 的构造器中未定义任何负载因子时将使用。 |
|
**
大小
**
| HashMap 包含的键/值对映射数。 |
|
**
`DEFAULT_INITIAL_CAPACITY`
**
| 默认初始容量(2 次幂 n)。 HashMap 可以包含许多元素。 |
|
**
`MAXIMUM_CAPACITY`
**
| HashMap 的最大容量(2 次幂 n)。 |
|
**
`loadFactor`
**
| 定义 HashMap 的阈值。 重新调整大小时将在 HashMap 中发生。 |
|
**
`DEFAULT_LOAD_FACTOR`
**
| 在 HashMap 的构造器中未定义任何负载因子时将使用。 |
|
**
`size`
**
| HashMap 包含的键/值对映射数。 |
## 创建 HashMap
...
...
@@ -25,24 +25,24 @@ Java HashMap 是基于 HashTable 的 Map 实现。 这就是为什么面试官
为了添加一个元素,您需要提供 2 个东西:键和值。
**键
:将与指定值关联的**
键。
**null**
是允许的。
**键
**
:将与指定值关联的键。
`null`
是允许的。
**值**
:与指定键关联的值。
首先,HashMap 将为给定密钥生成一个哈希码,然后检查是否已经有与给定密钥相关联的值。 如果是,则它将返回已经关联的值。 否则,它将通过提供的键在 HashMap 中增加价值。
##
子弹
点
##
重
点
1.
HashMap 不会按 Map 中的元素顺序提供任何保证(均值顺序会随时间变化)。
2.
HashMap 为
**获得**
&
**设置**
操作提供恒定时间性能(如果使用正确的哈希算法)。
3.
迭代收集所需的时间与 HashMap 的“
**容量**
”((它可以容纳的元素)&
**大小**
(它当前容纳的元素)成比例。
2.
HashMap 为
**获得**
和
**设置**
操作提供恒定时间性能(如果使用正确的哈希算法)。
3.
迭代收集所需的时间与 HashMap 的“
**容量**
”((它可以容纳的元素)和
**大小**
(它当前容纳的元素)成比例。
4.
如果迭代性能更为重要,那么建议不要将初始容量设置得太高而将负载系数设置得太低。 由于性能与
*初始容量*
和
*负载系数*
成正比。
*
*容量*
是哈希表中的存储桶数。
*
初始容量(默认值为 16)只是创建哈希表时的容量。
*
*负载因子(默认值.75)*
是衡量哈希表在自动增加其容量之前的填充程度的度量。
*
当哈希表中的条目数超过负载因子与当前容量的乘积时,哈希表将被
*重映射
为
*
(即内部数据结构将被重建)。
5.
使用“
**Collections.synchronizedMap()**
”方法使地图同步。
6.
由 HashMap 类返回的 迭代器为“
***故障快速**
*
”。
*
*负载因子(默认值
.75)*
是衡量哈希表在自动增加其容量之前的填充程度的度量。
*
当哈希表中的条目数超过负载因子与当前容量的乘积时,哈希表将被
*重映射*
(即内部数据结构将被重建)。
5.
使用“
`Collections.synchronizedMap()`
”方法使地图同步。
6.
由 HashMap 类返回的 迭代器为“
***故障快速**
*
”。
7.
HashMap 由 Array(Key)和 LinkedList(Value)支持。
8.
HashMap 使用 hashcode(使用密钥)来标识应在 HashMap 中放置或检索对象的确切位置。
9.
最后,HashCode 返回后备数组中的确切位置(索引)。
...
...
docs/48.md
浏览文件 @
250d97fb
...
...
@@ -2,13 +2,13 @@
> 原文: [https://javabeginnerstutorial.com/core-java-tutorial/list-collection-tutorial-for-java-beginners/](https://javabeginnerstutorial.com/core-java-tutorial/list-collection-tutorial-for-java-beginners/)
在这里,我们将详细了解 List 接口及其不同实现。
***java.util**
*
包中的列表接口是 java.util.Collection 接口的子类型。
在这里,我们将详细了解 List 接口及其不同实现。
`java.util`
包中的列表接口是 java.util.Collection 接口的子类型。
## 列出接口显着点
1.
它是
*java.util*
包的一部分。
2.
它是
*java.util.Collection*
接口的子类型。
3.
列表是
**有序集合
。**
意味着可以按有序方式(按索引)访问 List 的元素。
3.
列表是
**有序集合
**
。
意味着可以按有序方式(按索引)访问 List 的元素。
4.
允许重复值。
5.
允许为 NULL 值。
6.
List 有一个名为 ListIterator 的特殊迭代器。 这将有助于双向遍历列表。
...
...
@@ -78,7 +78,7 @@ listA.add(0, "element 0");
## 替换元素
**
Syntax : **
E set(int index, E element);
**
语法**
:
E set(int index, E element);
**用途**
:用于替换列表中指定位置的元素。
...
...
docs/49.md
浏览文件 @
250d97fb
...
...
@@ -21,7 +21,7 @@ Map 是 Java Collection 框架下的一个 Interface。
*
一些地图实现可以包含的键和值有一些限制。
*
尝试插入不合格的键或值将引发非受检异常。
# 具体地图实
施
# 具体地图实
现
*
HashMap
*
哈希表
...
...
@@ -36,13 +36,13 @@ Map 是 Java Collection 框架下的一个 Interface。
# 地图界面中的重要方法
*
**put(K 键,V 值)**
:使用指定的键将指定的值放入映射中。
*
**putAll(Map <?扩展 K,?扩展 V > m)**
:将所有映射从给定 Map 复制到此 Map。
*
**keySet()**
:返回包含此映射中的密钥的
**集**
。
*
**values()**
:返回一个
**集合**
,其中包含此 Map 中的所有值。
*
**isEmpty()**
:检查给定 Map 中是否有任何元素。
*
**remove(Object key)**
:从此映射中删除键的映射(如果存在)。
*
**containsKey(Object key)**
:检查指定键是否存在任何映射。
*
**containsValue(Object value)**
:检查是否存在用于指定 Object 的任何映射(可能不止一个)。
*
**get(Object key)**
:返回与此键关联的值。
*
**clear() :**
Used to remove all the mapping in given Map.
\ No newline at end of file
*
**`put(K key, V value)`**
:使用指定的键将指定的值放入映射中。
*
**`putAll(Map<? extends K, ? extends V> m)`**
:将所有映射从给定 Map 复制到此 Map。
*
**`keySet()`**
:返回包含此映射中的密钥的
**集**
。
*
**`values()`**
:返回一个
**集合**
,其中包含此 Map 中的所有值。
*
**`isEmpty()`**
:检查给定 Map 中是否有任何元素。
*
**`remove(Object key)`**
:从此映射中删除键的映射(如果存在)。
*
**`containsKey(Object key)`**
:检查指定键是否存在任何映射。
*
**`containsValue(Object value)`**
:检查是否存在用于指定 Object 的任何映射(可能不止一个)。
*
**`get(Object key)`**
:返回与此键关联的值。
*
**`clear() `**
:Used to remove all the mapping in given Map.
\ No newline at end of file
docs/56.md
浏览文件 @
250d97fb
...
...
@@ -169,7 +169,7 @@ Company Address: null
在这两种情况下,此处存储的 case 值均来自 class(Employee class),而不是 Object(emp object)。 此外,即使是临时变量,也会保存 companyCEO 变量值。 因为 static 修饰符会更改此变量的行为。
##
子弹
点
##
重
点
1.
静态变量无法序列化。
2.
在反序列化时,如果在基类的初始化过程中提供了相同的值,则可用于静态变量。
...
...
docs/59.md
浏览文件 @
250d97fb
...
...
@@ -199,7 +199,7 @@ Friday
但这不是唯一可以实现枚举方法的用法。 在下一节中,我们将看到如何将 Enum 值映射到 String 并返回。
## 实
施
接口
## 实
现
接口
关于枚举鲜为人知的一件事是它们可以实现接口。 这意味着,如果您需要不同枚举所需要的通用功能,则可以使用一个接口定义它,而枚举必须在该接口中实现方法。
...
...
@@ -266,7 +266,7 @@ public Workday fromDatabase(String representation) {
有时,您最终得到一个采用布尔表达式的方法(或者您仅获得一个告诉您使用布尔值的项目说明,但感觉很痒)。 在这种情况下,可以随意引入一个新的枚举并使用正确的值而不是布尔值。
例如,一旦我有了一个规范,告诉我必须创建一个带有一些参数的方法和一个布尔值,称为“ rightHandSide”。 实际上,“ rightHandSide”的默认值为 false。 首先,我按照规范中的说明实
施
了该方法,但是这对我来说并不舒服,我认为这是摆脱这种冷酷感觉的另一种方法:
例如,一旦我有了一个规范,告诉我必须创建一个带有一些参数的方法和一个布尔值,称为“ rightHandSide”。 实际上,“ rightHandSide”的默认值为 false。 首先,我按照规范中的说明实
现
了该方法,但是这对我来说并不舒服,我认为这是摆脱这种冷酷感觉的另一种方法:
```
java
public
void
someMethod
(
String
someParameter
,
boolean
rightHandSide
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录