
java
文章平均质量分 74
wwwarewow
这个作者很懒,什么都没留下…
展开
-
Hibernate 一对一映射示例
在这个例子中,我们将看到如何使用注解来实现一对一的关系。以国家和首都为例。一个国家有一个首都。下面是它们之间的关系图。现在要在数据库中创建上述表,您需要创建两个java文件,即Country.java和Capital.java。...原创 2022-07-24 23:19:50 · 579 阅读 · 0 评论 -
第六章 Java FutureTask 示例
在本教程中,我们将看到有关JavaFutureTask的示例。FutureTask类已在JDK5中与ExecutorFramework一起引入。FutureTask类是对象的具体实现,提供了启动和取消任务的方法,也提供了查看计算是否完成的方法。我们可以查询FutureTask对象并获取计算结果。如果我们在FutureTask对象上调用get方法,它是阻塞调用,一旦计算完成就返回。让我们通过这个例子来了解更多。...原创 2022-07-22 22:14:51 · 330 阅读 · 0 评论 -
第六章 使用 Callable 和 Future 的 Java ExecutorService 示例
我们将创建一个用于计算平方的可调用对象和一个用于阶乘的调用对象。可调用接口表示可以返回值的线程。可调用接口可用于计算可以返回给调用线程的状态或结果。例如假设您要执行某些数字的阶乘和平方,您可以使用可调用接口同时执行,该接口也将返回值。您可以在调用方法中定义要执行的任务。如果执行成功,调用方法将返回结果,否则必须抛出异常。是通用接口,表示将由可调用接口返回的值。如您所见,我们能够同时执行4个任务,它们返回20和25的平方和阶乘。当这个方法被调用时,线程只会在指定的时间内等待结果。...原创 2022-07-20 22:15:56 · 278 阅读 · 0 评论 -
第六章 Java newCachedThreadPool 示例
如果你注意到,我们已经提交了10个任务,它根据需求创建了10个新线程。当您想要比newFixedThreadPool更好的排队性能时,newCachedThreadPool是一个不错的选择。在本教程中,我们将学习Executor的newCachedThreadPool工厂方法。如果您不了解ThreadPoolExecutor的概念,您应该先了解一下。它将最大池大小设置为Integer.Max,它将根据需要创建新线程。如果需求减少,如果线程空闲超过1分钟,它将关闭线程。......原创 2022-07-19 23:38:54 · 581 阅读 · 0 评论 -
第六章 Java newFixedThreadPool 示例
在本教程中,我们将学习Executor的newFixedThreadPool工厂方法。在上一篇教程中,我分享了的介绍。如果您不了解的概念,您应该先了解一下。Executor的newFixedThreadPool工厂方法此方法返回其最大大小(假设n个线程)是固定的。如果所有n个线程都忙于执行任务并且提交了其他任务,那么它们将必须在队列中,直到有线程可用。...原创 2022-07-18 20:09:28 · 1186 阅读 · 0 评论 -
第五章 如何使用java中的线程打印偶数和奇数
你有两个线程。您需要使用一个线程打印奇数,使用另一个线程打印偶数。您需要以自然顺序打印最多MAX。如果MAX为10,则需要打印所以13579将由奇数线程打印246810将由偶数线程打印。原创 2022-07-17 09:03:15 · 1274 阅读 · 0 评论 -
第五章 我们可以直接调用run()方法来启动一个新线程吗
不,你不能直接调用run方法来启动一个线程。您需要调用start方法来创建一个新线程。如果你直接调用run方法,它不会创建一个新线程,它会和main在同一个栈中。正如您所看到的,当我们直接调用run方法时,它并没有创建新线程。不能直接调用run方法创建线程,需要调用start方法创建新线程。...原创 2022-07-16 22:42:42 · 1783 阅读 · 0 评论 -
第五章 Java 中的 wait、notify 和 notifyAll 方法示例
wait、notify和notifyAll方法用于允许线程通过访问公共对象来相互通信,或者换句话说,可以将Object视为通过这些方法进行线程间通信的媒介。这些方法需要从同步上下文中调用,否则会抛出java.lang.IllegalMonitorStateException。在同步块中一次只能进入一个线程线程需要锁定对象才能进入同步块。如果线程A想要进入同步块,那么线程A必须等待线程B释放它。...原创 2022-07-15 09:12:57 · 449 阅读 · 0 评论 -
第四章 如何在java中迭代Map或HashMap
在这篇文章中,我们将看到如何在 Java 中迭代地图。有四种迭代地图的方法如果在迭代时删除元素,则第一个和第三个选项将抛出 java.util.ConcurrentModificationException。如果您了解HashMap 的内部工作,那么迭代 HashMap 可能会更容易举个例子:运行它,您将得到以下输出:...原创 2022-07-12 09:06:12 · 470 阅读 · 0 评论 -
第四章 HashSet 在 Java 中的工作原理
在这篇文章中,我们将了解 Java 中的 Hashset这是 Java 核心面试中经常被问到的问题之一,所以在这篇文章中,我们将了解 HashSet 在 Java 中的工作原理。让我们先看看 Hashset 的介绍,然后我们将介绍它的内部。HashSet 实现了不允许重复值的 Set 接口。它不是同步的,也不是线程安全的。 有时重复的定义可能非常棘手。让我们在这里考虑两种情况。在原始类型的情况下:在原始类型的情况下,它非常简单。让我们借助示例来看看:让我们创建一个java程序:当你运行上面的程序原创 2022-07-11 23:38:55 · 247 阅读 · 0 评论 -
聊聊保证线程安全的 10 个小技巧
对于从事后端开发的同学来说,问题是我们每天都需要考虑的问题。线程安全问题通俗的讲:主要是在多线程的环境下,不同线程同时读和写公共资源(临界资源),导致的数据异常问题。比如:变量a=0,线程1给该变量+1,线程2也给该变量+1。此时,线程3获取a的值有可能不是2,而是1。线程3这不就获取了错误的数据?线程安全问题会直接导致数据异常,从而影响业务功能的正常使用,所以这个问题还是非常严重的。那么,如何解决线程安全问题呢?今天跟大家一起聊聊,保证线程安全的10个小技巧,希望对你有所帮助。我们都知道只有多个线程访转载 2022-07-05 10:41:18 · 302 阅读 · 0 评论 -
leetcode 875. 爱吃香蕉的珂珂 koko eating bananas
珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 h 小时内吃掉所有香蕉的最小速度 k(k 为整数)。 由于速度是一个有范围的整数,因此可以使用「二分查找法」找到这个有范围的整数。分析这个问题的具翻译 2022-06-08 12:51:11 · 303 阅读 · 0 评论 -
leetcode 110. 平衡二叉树 balanced binary tree
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:示例 1: 示例 2:示例 3: 提示:思路是对二叉树做先序遍历,从底至顶返回子树最大高度,若判定某子树不是平衡树则 “剪枝” ,直接向上返回。算法流程:recur(root):isBalanced(root) :复杂度分析:思路是构造一个获取当前节点最大深度的方法 depth(root) ,通过比较此子树的左右子树的最大高度差abs(depth(root.left) - depth(root.right)),来判断此子树是否翻译 2022-06-07 16:52:48 · 554 阅读 · 0 评论 -
【Java】博弈论三种解法
今盒子里有 n 个小球,A、B 两人轮流从盒中取球,每个人都可以看到另一>个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会>做出错误的判断。我们约定:每个人从盒子中取出的球的数目必须是:1,3,7 或者 8 个。轮到某一方取>球时不能弃权!A 先取球,然后双方交替取球,直到取完。被迫拿到最后一>个球的一方为负方(输方)请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A 是否>能赢?输入描述先是一个整数 n (n...原创 2022-06-07 14:28:07 · 580 阅读 · 0 评论 -
【反射】真的很耗时吗? 射 10 万次用时多久
全文分为 视频版 和 文字版,无论是在面试过程中,还是看网络上各种技术文章,只要提到反射,不可避免都会提到一个问题,反射会影响性能吗?影响有多大?如果在写业务代码的时候,你用到了反射,都会被 review 人发出灵魂拷问,为什么要用反射,有没有其它的解决办法。而网上的答案都是千篇一律,比如反射慢、反射过程中频繁的创建对象占用更多内存、频繁的触发 GC 等等。那么反射慢多少?反射会占用多少内存?创建 1 个对象或者创建 10 万个对象耗时多少?单次反射或者 10 万次反射耗时多少?在我们的脑海中没有一个直观的原创 2022-06-07 09:02:51 · 176 阅读 · 0 评论 -
HashMap 虐我千百遍,我待 HashMap 为初恋
HashMap、HashTable、ConcurrentHashMap 这一套感觉今年面试都不怎么问了,场景题越来越多,求职的门槛越来越高,这种常见的面试题问出来大概率就是要送波分了。1. 讲讲 HashMap 的底层结构和原理HashMap 就是以 Key-Value 的方式进行数据存储的一种数据结构嘛,在我们平常开发中非常常用,它在 JDK 1.7 和 JDK 1.8 中底层数据结构是有些不一样的。总体来说,JDK 1.7 中 HashMap 的底层数据结构是数组 + 链表,使用 Entry 类存储翻译 2022-06-06 20:00:13 · 139 阅读 · 0 评论 -
LeetCode 7. reverse integer 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:示例 2:示例 3:示例 4:提示:-231 ...翻译 2022-06-06 18:52:41 · 194 阅读 · 0 评论 -
LeetCode 热题2. longest substring without repeating characters 无重复字符的最长子串
示例 1:示例 2:示例 3:提示:0原创 2022-06-06 11:36:06 · 150 阅读 · 0 评论 -
LeetCode 热题1 Two Sum 两数之和
示例 1:示例2:示例 3:提示:进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?思路1:暴力枚举最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。而每一个元素不能被使用两次,所以我们只需要在 x 后面的元素中寻找 target - x。思路2:哈希表注意到方法一的时间复杂度较高的原因是寻找 target原创 2022-06-06 08:44:07 · 127 阅读 · 0 评论 -
【超详细】Mybatis plus 从入门到精通
mybatis-plus是一款Mybatis增强工具,用于简化开发,提高效率。下文使用缩写mp来简化表示mybatis-plus,本文主要介绍mp搭配SpringBoot的使用。注:本文使用的mp版本是当前最新的3.4.2,早期版本的差异请自行查阅文档官方网站:baomidou.com/3.配置数据库4.创建一个实体类5.创建一个mapper接口6.在SpringBoot启动类上配置mapper接口的扫描路径7.在数据库中创建表8.编写一个SpringBoot测试类原创 2022-06-02 23:53:19 · 163 阅读 · 0 评论 -
FastDFSJava客户端使用
1.1.java客户端余庆先生提供了一个Java客户端,但是作为一个C程序员,写的java代码可想而知。而且已经很久不维护了。这里推荐一个开源的FastDFS客户端,支持最新的SpringBoot2.0。配置使用极为简单,支持连接池,支持自动生成缩略图,狂拽酷炫吊炸天啊,有木有。地址:tobato/FastDFS_client接下来,我们就用FastDFS改造~~~-upload工程。1.1.1.引入依赖#在父工程中,我们已经管理了依赖,版本为:<翻译 2022-05-20 14:32:57 · 984 阅读 · 0 评论