首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
头发没了可以再长
获赞
19
粉丝
10
关注
6
看过 TA
14
闽南科技学院
2020
Java
IP属地:未知
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑头发没了可以再长吗?
发布(159)
评论
刷题
收藏
头发没了可以再长
关注TA,不错过内容更新
关注
2021-07-07 16:00
已编辑
闽南科技学院 Java
两个经典的线程安全示例分析
示例1:卖票与买票 @Slf4j(topic = "c.CASE1") public class CASE1 { //随机数 public static Random random = new Random(); public static int getRandom(){ return random.nextInt(5) + 1; } public static void main(String[] args) { //开始有2000张票 TicketWin...
0
点赞
评论
收藏
分享
2021-07-07 15:59
已编辑
闽南科技学院 Java
JDK 8使用Lambda操作List工具类
写在前面:因为公司代码的List操作大多数用到了lambda表达式,这种代码写起来也比较简洁。自己闲着将一些常用的方法封装了一下,例如有过滤,去重,求和,分组还有收集,用起来也比较方便了。可以复制粘贴直接使用,其它的操作有用到后面会慢慢补充,觉得不错的大爷们可以点个👍 /** * <p> * JDK 8 lambda常用工具类 * </p> * * @author lzy * @since 2021-01-22 */ public class LambdaUtils { /** * list分组操作 * * @param list:要操作的l...
0
点赞
评论
收藏
分享
2021-07-07 15:59
已编辑
闽南科技学院 Java
Java Monitor对象与Synchronized原理
Monitor对象与Synchronized原理 1. Java对象头介绍 2. synchronized 与 Monitor对象 3. synchronized 原理总结 3.1 字节码角度理解synchronized原理 3.2 synchronized进阶原理 3.2.1 synchronized轻量级锁 3.2.2 synchronized锁膨胀 3.2.3 synchronized自旋锁 ...
0
点赞
评论
收藏
分享
2021-07-07 15:59
闽南科技学院 Java
Java多线程wait/notify原理
1. 引入wait/notify 回顾:在之前的学习中,当我们创建一个对象后,synchronized给对象上锁,JVM会给对象头关联一个Monitor对象,这个Monitor由三部分组成。 一是Owner对象,里面存储的是创建该对象的线程 二是EntryList,想试图获取该对象资源的其它堵塞线程队列 三是WaitSet,存储的是放弃对象锁的线程 Owner线程中的锁对象,如果发现条件不满足,调用wait()方法,既可以进入到WaitSet变为WAITING状态 EntryList下和WaitSet下的线程都属于堵塞状态,不占用CPU时间片 EntryList下的线程会在Own...
0
点赞
评论
收藏
分享
2021-07-07 15:58
已编辑
闽南科技学院 Java
Java多线程 同步模式之保护性暂停
1. 保护性暂停定义 即 Guarded Suspension,用在一个线程等待另一个线程执行结果。 重点: 有一个线程的结果需要传递给另一个线程,让它们关联同一个GuardedObject 如果有结果连续不断由一个线程传递另一个线程,则需要考虑消息队列 JDK中,join(),Future采用的就是这种模式 因为这是一方要等待到另一方的结果,所有这是一种同步模式。 图示: 2. 实现 根据上图实现一个t1线程等待t2线程下载响应 @Slf4j(topic = "c.TestGuardedObject") public class TestGua...
0
点赞
评论
收藏
分享
2021-07-07 15:58
闽南科技学院 Java
Java多线程 异步模式之生产者消费者模式
之前学习过的同步模式是保护性暂停,存在一定的缺陷,我们当初举例是两个线程,线程A收信人,线程B送信人,使用一个信箱充当一个中间过渡的介质。在多任务的情况下,收信人存在多个,发信人就得存在多个,而且只有当送信者将信件送到指定的收信人手中,一个任务才算完成,这中间的操作是同步进行的,因此属于同步模式下的多线程任务。 弊端也很明显,实际情况下,送信者只需要把信件放入信箱通知收信人即可,而不需要等到收信人拿到信才算结束,因为送信人把信收到信箱通知收信人后还可以接着送下一份信件,这中间送信人的时间没有得到充分的利用。 啰嗦了一大段话,接着进入正题:我们可以使用消息队列的方式存储信件,队列是一种先进...
0
点赞
评论
收藏
分享
2021-07-07 15:58
闽南科技学院 Java
Java 多线程park unpark 原理
介绍:park unpark 与wait、notify很像,但是park unpark是属于每个线程私有的,而wait、notify是属于Object对象的,相同的就是两者调用后都会进入WAIT状态,没去唤醒的话就一直等待下去。park 对象由三部分组成_counter,_cond,-mutex。 看一个例子来说明: public static void main(String[] args) { Thread t1 = new Thread(() -> { log.debug("start..."); ...
0
点赞
评论
收藏
分享
2021-07-07 15:57
已编辑
闽南科技学院 Java
Java程序员个人服务器搭建流程
目录 个人服务器选用 1. Centos 7 安装流程 2. Linux服务器基础配置 3. JDK 8 下载与配置 4. MySQL 下载与配置 5. Redis 安装与配置 6. SVN服务器的安装 7. Git 的安装 8. Maven安装 9. Jenkins集成 个人服务器选用 服务器有分硬件和云端的服务器。市场上有非常多服务器厂商,大型企业选用...
0
点赞
评论
收藏
分享
2021-07-07 15:57
已编辑
闽南科技学院 Java
ReentrantLock基础知识
翻译成中文,ReentrantLock表示可重入锁,与synchronized一样,都是属于可重入锁。 与synchronized相比具有如下特点: 可中断:synchronized只能等待同步代码块执行结束,不可以中断,而reentrantlock可以调用线程的interrupt方法来中断等待,继续执行下面的代码。 可以设置超时时间:调用lock.trylock(),如果没有设置等待时间的话,没获取到锁,将返回false 可以设置为公平锁:公平锁其实是为了解决饥饿问题,当一个线程由于优先级太低的时候,就可能没有办法获取到时间片 可以支持多个变量:类似于调用wait方法时,不满足条...
0
点赞
评论
收藏
分享
2021-07-07 15:56
已编辑
闽南科技学院 Java
RabbitMQ基础入门学习
RabbitMQ 准备工作 RabbitMQMQ的简介和安装 RabbitMQ消息模型 1. "Hello World!" 直连模式 1.1 工具类封装 1.2 细节 2. work Queue 2.1 轮询 2.2 消息自动确认机制 3. 广播 fanout模式 4. 直连路由 5. ...
0
点赞
评论
收藏
分享
2021-07-07 15:55
闽南科技学院 Java
巨坑!!!Mybatis 返回List集合 All elements are null
在工作中遇到这个问题好多次了,不得不记录一下,因为这确实是新手开发常犯的毛病。 场景:我们在用Mybatis查询,返回List的过程中遇到的 如:以下SQL SELECT t4.template_price_id, t4.price_name, t4.price, t4.production_line, t4.type, t4.MODE FROM project_card t LEFT JOIN dyeing_notice t1 ON t1.dyeing_notice_id = t.dyeing_notice_id LEFT JOIN dyeing_contact_p...
0
点赞
评论
收藏
分享
2021-07-07 15:55
闽南科技学院 Java
集群服务器Session共享问题解决手段
集群服务器之间的Session共享问题 引入一张图 这是一张传统型的多服务器部署的场景(假设已经实现负载均衡,ribbon或者网关或者nginx等负载均衡技术) 客户端第一次登录从服务器1拿到session,此时服务器1当然也会存储一份,所以访问服务器1是不用再登录了。 但是此时如果服务器1宕机,客户端就不能拿着从服务器1获取的session数据去登录服务器2,此时一般会提示重新登录。 解决方案,因知识面有限,列举两种: 方案1 搭建Nginx反向代理服务器 回顾一下反向代理和正向代理的区别: 反向代理:指的是代理真实服务器地址,也就是说你需要知道真实服务器地址。 正向代理...
0
点赞
评论
收藏
分享
2021-07-07 15:55
已编辑
闽南科技学院 Java
两个例子说明 ElasticSearch 分词是什么
引入:分词的概念 环境说明:Kibana + ElasticSearch 我们百度搜索:Java学习路线 可以看到高亮的字,都是我们搜索使用的关键字匹配出来的,我们在百度框框中输入的关键字,经过<mark>分词</mark>后,再通过搜索匹配,最后才将结果展示出来。 ik_smart和ik_max_word的区别 使用kibana演示分词的效果: 借助es的分词器: 类型:ik_smart,称作搜索分词 GET _analyze { "analyzer": "ik_smart&q...
0
点赞
评论
收藏
分享
2021-07-07 15:54
闽南科技学院 Java
JavaWeb常见解决表单重复提交思路
问题描述:用户下订单购买,因为各种原因(网络卡,快速点击等)重复提交2个或者以上一模一样的订单,由于是同时提交的,第一个订单执行扣款生成订单未完成时候,第二个已经进来了,导致付一笔钱购买了2次或多次商品 常见的解决思路 前端通过控制JS来控制重复提交按钮,第一次可以提交,提交后直接变成灰色,这样看起来就解决了问题,但是并不能从根本上解决问题(刷新页面可能就会失效)! 借助中间件Redis key value 的 incry原子性性质,第一次提交的时候incry会将变量值 + 1 ,第二次提交的时候可以先判断,如果value 已经是等于1了,那么就说明已经提交过一次了,第二次...
0
点赞
评论
收藏
分享
2021-07-07 15:54
已编辑
闽南科技学院 Java
Java 跨域问题的解决手段
1. 为什么会有跨域 浏览器出于对于浏览网页安全性问题的考虑,引入的同源策略。 什么是同源策略,听着很官方,简单一幅图说明: <mark>同源指的是URL地址三要素(协议,主机,端口号)必须不变</mark> 协议 主机 端口 http www.baidu.com 80 例如我客户端访问80端口的百度,只要协议,和端口不变访问 http://www.baidu.com:80/aaa/bbb 满足同源策略,访问京东同样如此。 2. 什么是跨域 同样如上图,如果出现了在百度页面...
0
点赞
评论
收藏
分享
1
6
7
8
9
10
11
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客企业服务