后端
努力小张
❤️ 再不努力,就什么都没了
展开
-
Lunix 下部署项目
查看进程是否启动 :ps -ef|grep xxx.jar如果存在进程就杀掉 :kill -9 xxxxx不存在则不用管后台启动,关闭窗口也可运行项目 :nohup Java -jar xxx.jar >>Log.log &原创 2022-07-13 16:48:34 · 389 阅读 · 0 评论 -
夏天火气大,能认真写代码么?
不羡鸳鸯不羡仙,一行代码调半天我在风中藏把刀,斩尽世间秋色。 这句注定要流传千古的名诗,是于2020年11月6日书写,体现了作者想要毁掉秋色,又对其毫无办法的矛盾心理。秋天很让人讨厌,除了是万物萧条的开始,它还容易让人上火,容易让鼻炎复发。万物都会受到季节的影响,失去它的本性。当然,程序员也不例外。明天是周末,本应该是不上班的。但中国在1995年之前,是没有周末的,周末是无数先烈们用鲜血换来的权益。周末并不代表星期天,而是周六。星期天其实叫做礼拜日”,由于上帝在第七天休息,所以是西方人在这天去.原创 2020-11-06 09:57:12 · 1171 阅读 · 4 评论 -
关于Lombok的问题:一枚 架构师 也不会用的Lombok注解,相见恨晚
我见过很多反对Lombok的同学,背地里又偷偷的把插件添加了进去,这是真香原理在搞鬼。嘴上说不要,身体很诚实。反对的人,应该是没见过一些业务代码的冗长繁杂,还沉浸在自己病态的完美主义中。要面对又脏又乱的从业环境,面对现实。Lombok可以消除 Java 的冗长,减少代码的长度,让关注点转移到该专注的地方。SpringBoot把Lombok放到了它的依赖中,Java14甚至也借鉴了这种思想,推出了record语法,就是类似于下面这种:record Point(int x, int y) { }原创 2020-11-06 08:49:05 · 244 阅读 · 0 评论 -
别小看tail 命令,它难倒了技术总监
tail命令能够看到日志的滚动,非常方便。于是,既然我们能够用这个命令,看到所有的日志,那能不能使用tail命令,做日志收集呢?你知道tail -f和tail -F的区别么?测试一下第一步,创建要监控的文件第二步,启动我们的Java代码第三步,生成一个不间断的流第四步,模拟文件滚动Why?End)想象归想象,如果你想要一个快速的实时日志收集工具,那tail确实是个非常棒的工具。它比什么flume、logstatsh,比什么filebeat之类的,快捷的多。事实上,在工具缺乏的旧年代,我就曾经这么干过,原创 2020-11-05 08:28:32 · 989 阅读 · 0 评论 -
小张教你如何:Java如何获取方法参数具体名称
默认情况下,我们是无法获取方法中参数名称的。通过反射机制,也只能得到参数的顺序以及一些没有意义的变量:arg0、arg1等等。但我们又确实需要这部分信息。比如IDE的自动提示,文档化服务接口的详细信息等。这是因为,这些变量的名字,根本就没有编译进class文件中,它不可能凭空产生。在JDK 8之后,可以通过在编译时指定-parameters选项,将方法的参数名记入class文件,并在运行时通过反射机制获取相关信息。如果你的项目是实用maven构建,那么就可以加入几行配置,追加参数。<plug原创 2020-11-04 08:59:03 · 1135 阅读 · 0 评论 -
4个代码中,出现频率最高的字符串
在程序员的代码里,字符串是经常出现的形式。有些语句虽然没有什么意义,但却无孔不入,我们经常见到它的身影。1、hello world在介绍某一种新的语言时,教材往往会在开始,给出能够输出hello world程序的例子。据说最早出现于1972年,贝尔实验室成员布莱恩·柯林汉撰写的内部技术文件《A Tutorial Introduction to the Language B"》之中就有Hello World。这算是一种“传统”,像是一种文化烙印,一种传承。这也算是一种“交互”,一种向世界大声呼喊的诉求。原创 2020-11-04 08:48:08 · 299 阅读 · 1 评论 -
关于java代码:为什么给Java代码加个空行,class文件就翻脸不认人了?
JAVA怎么玩翻脸不认人打脸抹药骚戴斯乃ENDpublic class Test { public static void main(String[] args) { System.out.println("Hello World"); }}为了写出这几行优美的代码,主要是为了让它输出优美动听的乐符,我下了一番功夫。你不要觉得简单,我把它打印出来给普通的保洁阿姨去看,阿姨竟然连xjj都认不出来。别说代码了,中英文混血,就秒杀一大堆高干分子。想说爱我就那么难原创 2020-11-03 14:51:24 · 2969 阅读 · 3 评论 -
CCAT考试整理JAVA试题
整理的CCAT学习考试JAVA试题,如下:一、填空题(每空2分,共20分)。1.将一个行内标签转换为块状标签的CSS样式是 display:block。2.表达式19/3*3+19%3的值是 19。3.用static修饰的变量叫静态变量,他可以通过对象和类名两种方式访问。4.如果一个方法被修饰为重写 / final方法,则这个方法不能被重写。5.public class Test { public static void main(String[] args) {原创 2020-10-30 15:45:12 · 2615 阅读 · 3 评论 -
JAVA 支付宝支付系统实战项目超详解
这里写目录标题1. 目的2. 说明3. 申请支付宝的账号(每个人都有做,不要用我的)3.1. 扫码登陆3.2. 账号的申请3.3. 记录你的账号3.4. 下载支付宝的测试应用(仅仅支持安卓)3.5. 使用你的测试账号登录测试版本的支付宝3.5.1. 帐号查询3.5.2. 帐号登陆3.5.3. 登陆成功之后3.6. 充钱4. 生成自己公钥和私钥并设置4.1. 下载软件4.2. 安装软件4.3. 生成公钥和密钥4.4. 设置公钥和私钥4.4.1. 找到公钥4.4.2. 设置地点4.4.3. 保存设置4.4.4.原创 2020-10-28 17:28:59 · 2903 阅读 · 1 评论 -
如何成为优秀的技术经理?你要做到这三点( 三 )技术规划与管理
技术规划与管理前言系统健康度巡检技术规划总结补充前言系统健康度巡检为什么要把系统健康度巡检放到技术管理里,我觉得这是一个非常重要的环节。像传统的航空、电力、汽车行业都要有一定的巡检机制,保障设备系统正常运转,同样软件系统也同样需要巡检机制保障业务健康发展。随着业务的不断发展,业务量和数据量不断的上涨,系统架构的腐蚀是避免不了的,为了保障系统的健康度,需要不断的考虑对系统架构、性能进行优化。系统的监控与报警能够一定程度发现系统存在的问题,系统存在的一些隐患需要通过对系统的巡检去发现,如果优化不及时在原创 2020-10-24 14:46:05 · 1478 阅读 · 0 评论 -
如何成为优秀的技术经理?你要做到这三点( 二 )开发流程
开发流程开发流程需求管理技术架构评审代码评审发布计划评审补充开发流程目前团队的开发模式还是基于传统的瀑布开发模式,整体开发流程涉及需求评审、测试用例评审、技术架构评审、开发与测试、验收与上线,这里主要基于 TL 的角度从需求管理、技术架构评审、代码评审、发布计划评审几个关键重点环节进行探讨,欢迎拍砖。需求管理美国专门从事跟踪 IT 项目成功或失败的权威机构 Standish Group 的 CHAOS Reports 报导了该公司的一项研究,该公司对多个项目作调查后发现,百分之七十四的项目是失败的,原创 2020-10-24 14:37:35 · 896 阅读 · 0 评论 -
如何成为优秀的技术经理?你要做到这三点( 一 )开发规范
这三点前言开发规范命名规范统一 IDE 代码模板Maven 使用规范代码 Commit 规范统一 API 规范异常处理规范分支开发规范统一日志规范统一 MYSQL 开发规范统一工具与框架补充前言「技术经理」是开发团队中的某位程序员需要对一起创建系统的整个开发团队负责时所承担的角色。通常他既要对最终交付的软件系统负责,另外也会像一个程序员一样去开发实现系统。一个技术经理的 60% ~ 70% 的时间可能花在了开发任务分解分配、开发实践、技术架构评审、代码审核和风险识别上,而余下的 30% ~40%原创 2020-10-23 13:56:33 · 1903 阅读 · 0 评论 -
阿里工程师修养之:从计算机知识到落地能力,你欠缺了什么?
借助程序员经常遇到的一个问题——网络为什么不通,来具体说明怎么将书本上的死知识真正变成我们解决问题的能力大学学到的基本概念还是从一个问题入手现象回车后发生什么?总结留几个小问题:个问题——网络为什么不通,来具体说明怎么将书本上的死知识真正变成我们解决问题的能力)大学学到的基本概念我相信你脑子里关于网络基础知识的概念都在下面这张图中。知识内容有点乱,感觉都认识,又都模模糊糊,更谈不上将内容转化成生产力或是用来解决实际问题了。这是因为知识没有贯通、没有实践、没有组织。所以接下来我们将示范书本知识到实践原创 2020-10-23 11:19:43 · 904 阅读 · 0 评论 -
程序员如何自我学习?
程序员如何自我学习?前言为何要持续学习,靠经验积累不行吗?工具要非常熟练读书 & 看文档视频学习技术新闻,技术大牛 & 参加技术大会适当的硬件支持前言互联网信息技术的迭代周期快是有目共睹的,因此,学习、更新知识这件事就变得相当重要。希望能够带给大家一些启发(本文推荐养家糊口之外有点小追求的同学阅读,Ph.D、paper 秒懂的学霸同学可自动忽略~)为何要持续学习,靠经验积累不行吗?很多人都说程序员的薪资水平不错,可以媲美医生和律师。而程序员和医生、律师的不同点在于持续学习上。不是说原创 2020-10-23 10:59:38 · 712 阅读 · 1 评论 -
阿里工程师修养之:技术三板斧:关于技术规划、管理、架构的思考的概述
技术三板斧前言一、关于技术规划三板斧二、关于技术管理三板斧三、关于技术架构三板斧四、关于赛车、赛道、赛手三段论五、关于点线面体的思考前言实践需要理论的指导,理论从实践中来。作为技术工程师,要不断地从事件中反思经验、总结规律,才能避免踏入同一个坑,才能更高效地完成 KPI ,甚至是晋升。相信对你能有所启发。一、关于技术规划三板斧技术规划规划做得好,能起到比较好的正向引导作用,个人及团队的整体目标感会好很多,分为三个部分的内容:第一部分是全局分析,这需要溯源历史,思考未来,要对未来有一定的预判。能原创 2020-10-23 10:28:23 · 729 阅读 · 0 评论 -
阿里工程师的自我修养之:如何在工作中快速成长? 致工程师的 10 个简单技巧
10 个快速成长的技巧导读一、如何阅读本文?二、开始认识“认知升级”1. 思考脑与反射脑2. 习以为常3. 时间管理:三八理论4. 最重要的财富5. 拿结果手段:执行力6. 贵人7. 会议8. 跳出舒适区9. 职业规划10.时间换空间三、总结导读阿里有句非常经典的土话,“今天的最好表现,是明天的最低要求。”如何挖掘潜能、发现更好的自己?今天,将认知升级的方法总结出来,帮助你获得快速成长的秘诀(本文内容稍长但值得细细阅读哦)。一、如何阅读本文?找一个固定不被打扰时间仔细阅读。在碎片化的时间中,每次原创 2020-10-23 10:12:57 · 2691 阅读 · 6 评论 -
阿里工程师的自我修养之:优秀工程师必备的一项技能( 二 )
优秀工程师必备的一项技能( 二 )补充锻炼思考力的有效实践重要观点小结锻炼思考力的有效实践意识觉醒意识觉醒是提升思考力最重要的一个点,我认为。只要形成了这种意识,就已经成功了一半。很多同学思维能力没有上去,是没有意识到思考力这个概念,只是机械地做事情,做事情,做事情……每次都在同一个思维层次上面转悠,不可能有本质的提升。从初级工程师,高级工程师,技术专家,高级专家,资深专家……级别提升靠什么?多接了多少需求?多写了多少代码?这些因素会有,但是关键因素不是这些,而是思考力在不断提升,思维方式在不原创 2020-10-23 09:09:53 · 278 阅读 · 1 评论 -
优秀工程师必备的一项技能,你解锁了吗?
优秀工程师必备的一项技能导读引言关于思考力有哪些对程序员最重要的思考力如何在工作中学习和运用这些原理,我觉得有一个`最佳实践`:结构化思维:构建自己的知识树`如何熟悉一个新系统`,我的步骤是:`那么如何训练出自己的知识树呢`?我给一些比较有效的实践方案:扩展性思维:举一反三,拓展思维`抓重点思维:提升效率,方便记忆和传递`导读很多程序员在工作一段时间后会遇到迷茫期,虽有技术傍身,也难免会产生焦虑,反复思考怎样才能快速成长。关于如何提高自己的思考力,运用思考的力量推动能力提升引言我们来看一下几类在原创 2020-10-23 08:47:54 · 455 阅读 · 0 评论 -
阿里工程师的自我修养之:优秀工程师必备的三大思维,你拥有哪些?
导读产品思维技术思维工程思维不同岗位、不同职责的技术人对工程师思维的深度要求是不一样的,但从多维度去思考却应是每个技术人都应该具备的素养。希望让大家能正确对待那些在现实工作中看上去与本职岗位无关,却对团队效能影响极大的一些点和一些事。在社会分工的背景下,软件行业的工程师群体被划分成了开发、测试、产品等诸多岗位,以协作的方式共同完成价值创造。高度依赖软件的互联网行业正以全新的方式改善着人们的生活,同时在改善的道路上对价值创造的效能提出了更高的要求,而背后是对个体与团队的协作效能有着更高的诉求。专人专岗的原创 2020-10-22 16:06:23 · 321 阅读 · 0 评论 -
阿里工程师的自我修养,总结超详解看我的
技术人具备“结构化思维”意味着什么?前言什么是结构化思维?表达要有逻辑做事要有套路如何进行结构化思考?结构化思维应用如何落地新团队?打造极客文化如何做晋升述职前言在日常工作中,我们时常会碰到这样的情况,有的人讲事情逻辑非常混乱,罗列了很多事项,却把握不到重点,无法把一件事情说清楚。这种思维混乱是典型的缺少结构化思维的表现。结构化思维非常重要,不仅仅体现在表达上,也体现在在我们分析问题的过程中。具备结构化思维,才能将问题分析地更全面、更深刻什么是结构化思维?那么到底是什么是结构化思维呢?简单来说,结构原创 2020-10-22 15:57:41 · 708 阅读 · 0 评论 -
CentOS 操作系统安装 Docker 概述总结
安装 Docker系统要求Docker 最低支持 CentOS 7。Docker 需要安装在 64 位的平台,并且内核版本不低于 3.10。 CentOS 7 满足最低 内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无 法使用,并且部分功能可能不太稳定。使用脚本自动安装Docker 官方为了简化安装流程,提供了一套安装脚本,CentOS 系统上可以使用这 套脚本安装curl -sSL https://get.docker.com/ | sh执行这个命令后,脚本原创 2020-10-22 14:38:56 · 142 阅读 · 0 评论 -
Docker — 技术入门 从入门到实践篇之:安装 Docker
安装 DockerUbuntu、Debian 系列安装 Docker使用脚本自动安装补充官方网站上有各种环境下的 安装指南,这里主要介绍下 Ubuntu、Debian 和 CentOS 系列的安装。Ubuntu、Debian 系列安装 Docker系统要求 Docker 支持以下版本的 Ubuntu 和 Debian 操作系统: Ubuntu Xenial 16.04 (LTS)Ubuntu Trusty 14.04 (LTS)Ubuntu Precise 12.04 (LTS)Debian t原创 2020-10-22 13:53:16 · 358 阅读 · 1 评论 -
Docker — 技术入门 从入门到实践
Docker — 从入门到实践 前言什么是 Docker为什么要使用 Docker?基本概念镜像(Image)容器(Container)仓库(Repository)前言Docker是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应 用的运行效率,降低了云计算资源供应的成本! 使用 docker,可以让应用的部 署、测试和分发都变得前所未有的高效和轻松!无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和掌握 Docker,以在有限的时间内做更多有意义的事。此文 既适用于原创 2020-10-22 13:37:03 · 291 阅读 · 1 评论 -
JAVA核心知识点之 分布式缓存:概述详解
分布式缓存1.1. 缓存雪崩1.2. 缓存穿透1.3. 缓存预热1.4. 缓存更新1.5. 缓存降级1.1. 缓存雪崩缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间所有原本应该访问缓存的请求都去查询数据库了,而对数据库 CPU 和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。一般有三种处理办法:一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。给每一个缓存数据增加相应的缓存标记,记录缓存的是否失效,如果缓存标记失效,则更新数据缓存。为原创 2020-10-22 10:33:38 · 312 阅读 · 1 评论 -
JAVA核心知识点之 数据结构:总结概述
数据结构:总结概述,持续更新1.1. 栈(stack)1.2. 队列(queue)1.3. 链表(Link)1.4. 散列表(Hash Table)1.5. 排序二叉树1.5.1. 插入操作1.5.2. 删除操作1.5.3. 查询操作1.6. 红黑树1.6.1. 红黑树的特性1.6.2. 左旋1.6.3. 右旋1.6.4. 添加1.6.5. 删除1.7. B-TREE1.8. 位图1.1. 栈(stack)栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它原创 2020-10-22 10:23:17 · 1004 阅读 · 7 评论 -
JAVA 核心知识点篇之算法( 二 ):补充
剪枝算法在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要的遍历过程,形象的说,就是剪去了搜索树中的某些“枝条”,故称剪枝。应用剪枝优化的核心问题是设计剪枝判断方法,即确定哪些枝条应当舍弃,哪些枝条应当保留的方法。回溯算法回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。最短路径算法从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径。解决最短路的问题有以下算法,Di原创 2020-10-22 09:40:46 · 193 阅读 · 0 评论 -
JAVA 核心知识点篇之算法:概述,总结
JAVA 算法1.1. 二分查找1.2. 冒泡排序算法1.3. 插入排序算法1.4. 快速排序算法希尔排序算法1.1. 归并排序算法1.2. 桶排序算法1.3. 基数排序算法1.1. 二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。public static int biSearch(int []a原创 2020-10-22 09:26:30 · 652 阅读 · 0 评论 -
JAVA核心知识:数据库
数据库1.1. 存储引擎1.1.1. 概念1.1.2. InnoDB(B+树)1.1.3. TokuDB(Fractal Tree-节点带数据)1.1.4. MyIASM1.1.5. Memory1.2. 索引1.2.1. 常见索引原则有1.3. 数据库三范式1.3.1. 第一范式(1st NF -列都是不可再分)1.3.2. 第二范式(2nd NF-每个表只描述一件事情)1.3.3. 第三范式(3rd NF- 不存在对非主键列的传递依赖)1.4. 数据库是事务1.5. 存储过程(特定功能的 SQL 语句集原创 2020-10-22 08:25:49 · 967 阅读 · 0 评论 -
JAVA核心知识点篇:MongoDB基础概念详细介绍
MongoDB详解1.1. 概念1.2. 特点1.1. 概念MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。1.2. 特点MongoDB 是一个面向文档存储的数据原创 2020-10-21 16:26:33 · 190 阅读 · 0 评论 -
JAVA核心知识点篇:RabbitMQ基础概念详细介绍
RabbitMQ基础概念详细介绍RabbitMQ前言1.1. 概念1.2. RabbitMQ 架构1.2.1. Message1.2.2. Publisher1.2.3. Exchange(将消息路由给队列 )1.2.4. Binding(消息队列和交换器之间的关联)1.2.5. Queue1.2.6. Connection1.2.7. Channel1.2.8. Consumer1.2.9. Virtual Host1.2.10.Broker1.3. Exchange 类型1.3.1. Direct 键(原创 2020-10-21 16:21:12 · 476 阅读 · 1 评论 -
JAVA中Zookeeper详解大全
Zookeeper详细讲解1.Zookeeper1.1. Zookeeper 概念1.1.1. Leader1.1.2. Follower1.1.3. Observer1.1.4. ZAB 协议1.1.5. 投票机制1.2. Zookeeper 角色1.3. Zookeeper 工作原理(原子广播)1.3. Znode 有四种形式的目录节点1.Zookeeper1.1. Zookeeper 概念Zookeeper 是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。Zooke原创 2020-10-21 15:58:22 · 1110 阅读 · 2 评论 -
JAVA核心知识点篇:日志详解概述总结
日志1.1. Slf4j1.2. Log4j1.3. LogBack1.3.1. Logback 优点1.4. ELK1.1. Slf4jslf4j 的全称是 Simple Loging Facade For Java,即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如 JDBC 一样,只是一种规则而已。所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案,比如 apache 的 org.apache.log4j.Logger,jdk 自带的 j原创 2020-10-21 15:30:53 · 327 阅读 · 0 评论 -
HTTP 状态码超详细,不会私信我
HTTP 状态码大全状态码 原因短语消息响应成功响应重定向客户端错误服务器端错误状态码 原因短语消息响应100Continue(继续)101Switching Protocol(切换协议)成功响应200 OK(成功)201 Created(已创建)202 Accepted(已创建)203 Non-Authoritative Information(未授权信息)204 No Content(无内容)205 Reset Content(重置内容)206 P原创 2020-10-21 11:19:24 · 222 阅读 · 0 评论 -
什么是微服务,微服务详解概述
微服务1.1. 服务注册发现1.1.1. 客户端注册(zookeeper)1.1.2. 第三方注册(独立的服务 Registrar)1.1.3. 客户端发现1.1.4. 服务端发现1.1.5. Consul1.1.6. Eureka1.1.7. SmartStack1.1.8. Etcd1.2. API 网关1.2.1. 请求转发1.2.2. 响应合并1.2.3. 协议转换1.2.4. 数据转换1.2.5. 安全认证1.3. 配置中心1.3.1. zookeeper 配置中心1.3.2. 配置中心数据分类1原创 2020-10-21 11:02:38 · 2448 阅读 · 1 评论 -
JAVA 基础总结,超详解入门
JAVA 基础前言1.1. JAVA 异常分类及处理1.1.1. 概念1.1.2. 异常分类1.1.3. 异常的处理方式1.1.4. Throw 和 throws 的区别:1.2. JAVA 反射1.2.1. 动态语言1.2.2. 反射机制概念 (运行状态中知道类所有的属性和方法)1.2.3. 反射的应用场合1.2.4. Java 反射 API1.2.5. 反射使用步骤(获取 Class 对象、调用对象方法)1.2.6. 获取 Class 对象的 3 种方法1.2.7. 创建对象的两种方法1.3. JAVA原创 2020-10-21 09:40:58 · 354 阅读 · 0 评论 -
java锁超详细总结
目录4.1.9. JAVA 锁4.1.9.1. 乐观锁4.1.9.2. 悲观锁4.1.9.3. 自旋锁4.1.9.4. Synchronized 同步锁4.1.9.5. ReentrantLock4.1.9. JAVA 锁 4.1.9.1. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为 别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数 据,采取在写时先读出当前版本号,然后加锁.原创 2020-10-20 17:37:39 · 316 阅读 · 0 评论 -
JAVA 多线程并发超详解
JAVA 多线程并发超详解(未完,下一篇文章还有)1. JAVA 多线程并发1.1.1. JAVA 并发知识库1.1.2. JAVA 线程实现/创建方式1.1.2.1. 继承 Thread 类1.1.2.2. 实现 Runnable 接口。1.1.2.3. ExecutorService、Callable、Future 有返回值线程1.1.2.4. 基于线程池的方式1.1.3 种线程池1.1.3.1. newCachedThreadPool1.1.3.2. newFixedThreadPool1.1.3.3原创 2020-10-20 16:59:58 · 599 阅读 · 0 评论 -
JAVA 集合详解 (List,Set,Map)
JAVA 集合(看我的就够用了)1.1.接口继承关系和实现1.2.List1.2.1. ArrayList(数组)1.2.2. Vector(数组实现、线程同步)1.2.3. LinkList(链表)1.3.Set1.3.1. HashSet(Hash 表)1.3.2. TreeSet(二叉树)1.3.3. LinkHashSet(HashSet+LinkedHashMap)1.4.Map1.4.1. HashMap(数组+链表+红黑树)1.4.1.1. JAVA7 实现1.4.1.2 JAVA8 实现1.原创 2020-10-20 16:14:42 · 469 阅读 · 0 评论