java
努力小张
❤️ 再不努力,就什么都没了
展开
-
Windows 系统cmd命令关闭端口号
查看端口号 : netstat -ano查看端口找到pid : taskkill -f -pid 9164原创 2022-07-13 16:20:17 · 2404 阅读 · 0 评论 -
Xshell官网免费版下载实用
xshell家庭版或学校版官网可以免费申请,不收费,只需一个邮箱即可xshell官网:https://www.xshell.com/zh/xshell/下载地址:https://www.xshell.com/zh/free-for-home-school/填写姓名,邮件,勾选俩者 :下载即可点击下载后打开邮箱就可以下载了...原创 2022-05-22 20:43:03 · 1395 阅读 · 0 评论 -
关于Lombok的问题:一枚 架构师 也不会用的Lombok注解,相见恨晚
我见过很多反对Lombok的同学,背地里又偷偷的把插件添加了进去,这是真香原理在搞鬼。嘴上说不要,身体很诚实。反对的人,应该是没见过一些业务代码的冗长繁杂,还沉浸在自己病态的完美主义中。要面对又脏又乱的从业环境,面对现实。Lombok可以消除 Java 的冗长,减少代码的长度,让关注点转移到该专注的地方。SpringBoot把Lombok放到了它的依赖中,Java14甚至也借鉴了这种思想,推出了record语法,就是类似于下面这种:record Point(int x, int y) { }原创 2020-11-06 08:49:05 · 244 阅读 · 0 评论 -
卓越性能 の 军火库(非广告)
不羡鸳鸯不羡仙,一行代码调半天在介绍性能优化的军火库之前,先来扯几句题外话。希望这些题外话,能打消你追求卓越性能的理想,来甘心当一枚圆滑的钉子。我是非常不推荐程序员,对公司的业务,进行性能优化的。说这话,纯粹是基于个人自身安全考虑。因为性能优化,在大多数公司,属于费力不讨好的工作项。追求极简的代码,性能卓越的代码,是有追求的程序员的目标。但随着经历了大大小小的公司,我发现很多优秀的程序员,在经受着这种追求的反嗜,以至于痛不欲生。有下面几点原因,虽然我们知道它肯定是错的,但我们无能无力:公..原创 2020-11-06 08:34:33 · 2354 阅读 · 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 评论 -
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 评论 -
程序员如何自我学习?
程序员如何自我学习?前言为何要持续学习,靠经验积累不行吗?工具要非常熟练读书 & 看文档视频学习技术新闻,技术大牛 & 参加技术大会适当的硬件支持前言互联网信息技术的迭代周期快是有目共睹的,因此,学习、更新知识这件事就变得相当重要。希望能够带给大家一些启发(本文推荐养家糊口之外有点小追求的同学阅读,Ph.D、paper 秒懂的学霸同学可自动忽略~)为何要持续学习,靠经验积累不行吗?很多人都说程序员的薪资水平不错,可以媲美医生和律师。而程序员和医生、律师的不同点在于持续学习上。不是说原创 2020-10-23 10:59:38 · 712 阅读 · 1 评论 -
阿里工程师的自我修养之:优秀工程师必备的一项技能( 二 )
优秀工程师必备的一项技能( 二 )补充锻炼思考力的有效实践重要观点小结锻炼思考力的有效实践意识觉醒意识觉醒是提升思考力最重要的一个点,我认为。只要形成了这种意识,就已经成功了一半。很多同学思维能力没有上去,是没有意识到思考力这个概念,只是机械地做事情,做事情,做事情……每次都在同一个思维层次上面转悠,不可能有本质的提升。从初级工程师,高级工程师,技术专家,高级专家,资深专家……级别提升靠什么?多接了多少需求?多写了多少代码?这些因素会有,但是关键因素不是这些,而是思考力在不断提升,思维方式在不原创 2020-10-23 09:09:53 · 278 阅读 · 1 评论 -
优秀工程师必备的一项技能,你解锁了吗?
优秀工程师必备的一项技能导读引言关于思考力有哪些对程序员最重要的思考力如何在工作中学习和运用这些原理,我觉得有一个`最佳实践`:结构化思维:构建自己的知识树`如何熟悉一个新系统`,我的步骤是:`那么如何训练出自己的知识树呢`?我给一些比较有效的实践方案:扩展性思维:举一反三,拓展思维`抓重点思维:提升效率,方便记忆和传递`导读很多程序员在工作一段时间后会遇到迷茫期,虽有技术傍身,也难免会产生焦虑,反复思考怎样才能快速成长。关于如何提高自己的思考力,运用思考的力量推动能力提升引言我们来看一下几类在原创 2020-10-23 08:47:54 · 455 阅读 · 0 评论 -
阿里工程师的自我修养之:优秀工程师必备的三大思维,你拥有哪些?
导读产品思维技术思维工程思维不同岗位、不同职责的技术人对工程师思维的深度要求是不一样的,但从多维度去思考却应是每个技术人都应该具备的素养。希望让大家能正确对待那些在现实工作中看上去与本职岗位无关,却对团队效能影响极大的一些点和一些事。在社会分工的背景下,软件行业的工程师群体被划分成了开发、测试、产品等诸多岗位,以协作的方式共同完成价值创造。高度依赖软件的互联网行业正以全新的方式改善着人们的生活,同时在改善的道路上对价值创造的效能提出了更高的要求,而背后是对个体与团队的协作效能有着更高的诉求。专人专岗的原创 2020-10-22 16:06:23 · 321 阅读 · 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 评论 -
JVM类加载机制(看我的就够用了)
JVM类加载机制,看我的就完全够用了,持续更新中1.JVM 类加载机制1.1 加载1.2. 验证1.3. 准备1.4. 解析1.5. 符号引用1.6. 直接引用1.7. 初始化1.8. 类构造器1.2 类加载器1.2.1. 启动类加载器(Bootstrap ClassLoader)1.2.2. 扩展类加载器(Extension ClassLoader)1.2.3. 应用程序类加载器(Application ClassLoader):1.3. 双亲委派1.4. OSGI(动态模型系统)1.4.1. 动态改变构原创 2020-10-20 15:44:34 · 452 阅读 · 0 评论 -
JDK1.8下载安装实用
JDK配置环境变量 win7和win10win7下载安装配置环境变量win10配置环境变量详细转载 2020-06-22 19:44:06 · 155 阅读 · 0 评论 -
2020 IDEA的运行报出程序包不存在问题
发现问题原创 2020-07-14 14:14:52 · 1628 阅读 · 3 评论 -
idea快捷键看我的就够用了
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前方法的声明Ctrl+P,可以显示参数信息.原创 2020-09-11 16:35:39 · 120 阅读 · 0 评论 -
idea提升开发效率的快捷键
idea快捷键idea快捷键idea快捷键删除当前一行:Ctrl + Y复制黏贴 : Ctrl+C Ctrl+D查找类: 两下Shift 或者: Ctrl+Shift+N生成返回值对象快捷键 : Ctrl+ALT+V将鼠标放到 maven 图标上后: Ctrl + Shift + O一键格式化代码: Ctrl+Alt+L...原创 2020-09-11 16:14:31 · 119 阅读 · 0 评论 -
阻塞 JAVA IO/NIO
阻塞JAVA IO/NIO阻塞IO模型非阻塞IO模型JAVA IO/NIO阻塞IO模型最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block状态。典型的阻塞IO模型的例子为:data=socket.read();如果数据没有就绪,就会一直阻塞在read方法。非阻塞IO模型原创 2020-10-20 09:16:12 · 248 阅读 · 0 评论 -
Java虚拟机(JVM)只需要看我的就行了
2.JVM2.1.线程2.2.JVM 内存区域2.2.1. 程序计数器(线程私有)2.2.2. 虚拟机栈(线程私有)2.2.3. 本地方法区(线程私有)2.2.4. 堆(Heap-线程共享)-运行时数据区2.2.5. 方法区/永久代(线程共享)2.3.JVM 运行时内存2.3.1. 新生代2.3.1.1. Eden 区2.3.1.2. ServivorFrom2.3.1.3. ServivorTo2.3.1.4. MinorGC 的过程(复制->清空->互换)2.3.2. 老年代2.3.3. 永原创 2020-10-20 09:09:05 · 169 阅读 · 2 评论