Java
文章平均质量分 89
Java全栈布道师
这个作者很懒,什么都没留下…
展开
-
显示所有中国城市需要多少个汉字?
显示所有中国城市需要多少个汉字?原创 2024-01-04 22:38:52 · 740 阅读 · 0 评论 -
关于学习的一些建议
学习经历的一些建议原创 2023-01-18 17:57:55 · 761 阅读 · 0 评论 -
Java 同步锁ReentrantLock与抽象同步队列AQS
第二次尝试获取锁失败,因为前驱节点的waitStatus=-1,所以执行阻塞当前线程操作避免死循环耗费资源)、等待头节点线程释放同步状态之后,将发起解除阻塞指令或阻塞线程被中断后,后继节点再次尝试获取锁。,所以存在任意节点提前重新执行“死循环”尝试获取锁的情况,如果不判断获取锁节点的前驱节点是否为头节点,那就会出现提前尝试获取锁,从而破坏了同步队列的先进先出(FIFO)原则,说白了,就是被插队了。即当前节点的后一个节点,之所以叫后继节点,是因为“后继有人”了,表示有“下一代”节点承接这个独有的锁🔒;原创 2022-11-15 07:49:20 · 207 阅读 · 0 评论 -
Java 可重入锁的那些事(一)
可重入锁(ReedtrantLock)、公平锁、非公平锁、可重入性、同步队列、CAS等概念原创 2022-08-18 23:02:06 · 357 阅读 · 0 评论 -
Java中的线程安全与线程同步
什么是线程安全:指在被多个线程访问时,程序可以持续进行正确的处理。原创 2022-06-23 14:19:10 · 349 阅读 · 0 评论 -
Java并发编程之美
《Java并发编程之美》原创 2022-06-07 10:17:47 · 16 阅读 · 0 评论 -
Java 线程常用操作
继Java线程生命周期继续学习Java线程其他常用操作线程的常用操作 设置线程名字:setName()获取线程名称:getName()线程唯一Id:getId()// 自定义线程名称String threadName = "threadName";// 构造方法方式Thread thread = new Thread(() -> { System.out.println("线程名=" + Thread.currentThread().getName());},threadNa原创 2022-05-18 09:44:09 · 188 阅读 · 0 评论 -
Java线程状态(生命周期)--一篇入魂
1.线程状态(生命周期) 一个线程在给定的时间点只能处于一种状态。线程可以有如下6 种状态:New (新创建):未启动的线程;Runnable (可运行):可运行的线程,需要等待操作系统资源;Blocked (被阻塞):等待监视器锁而被阻塞的线程;Waiting (等待):等待唤醒状态,无限期地等待另一个线程唤醒;Timed waiting (计时等待):在指定的等待时间内等待另一个线程执行操作的线程;Terminated (被终止):已退出的线程。要确定一个线程的当前状态, 可调用getStat原创 2022-05-10 10:20:11 · 425 阅读 · 0 评论 -
自己编写平滑加权轮询算法,实现反向代理集群服务的平滑分配
学会了负载均衡算法,却没有用起来?今天就来实战一遍,感受下平滑加权轮询算法的魅力。通过Java语言,自己编写的平滑加权轮询算法,结合线程池和Socket 网络编程等,实现了反向代理集群服务的平滑分配,并通过降权/提权实现宕机服务的”剔除“和缓冲恢复。1.理解全过程 1.1.概述需要具备的知识Socket网络编程反向代理的理解平滑加权轮询算法的理解线程池的理解目的:实现Socket 集群服务的平滑加权轮询负载。业务实现:客户端通过用户名来查询集群服务中的用户信息。1.2.整个流程客户端原创 2022-04-15 00:06:31 · 984 阅读 · 1 评论 -
Java实现平滑加权轮询算法--降权和提权
上一篇讲了普通轮询、加权轮询的两种实现方式,重点讲了平滑加权轮询算法,并在文末留下了悬念:节点出现分配失败时降低有效权重值;成功时提高有效权重值(但不能大于weight值)。本文在平滑加权轮询算法的基础上讲,还没弄懂的可以看上一篇文章。现在来模拟实现:平滑加权轮询算法的降权和提权1.两个关键点 节点宕机时,降低有效权重值;节点正常时,提高有效权重值(但不能大于weight值);注意:降低或提高权重都是针对有效权重。2.代码实现 2.1.服务节点类package com.yty.loadba原创 2022-04-12 23:08:08 · 1090 阅读 · 0 评论 -
Java实现负载均衡算法--轮询和加权轮询
轮询算法和加权轮询算法原创 2022-04-12 00:05:32 · 5797 阅读 · 2 评论 -
最新漏洞:Spring Framework远程代码执行漏洞
Spring Framework远程代码执行漏洞发布时间 2022-03-31漏洞等级 HighCVE编号 CVE-2022-22965影响范围:同时满足以下三个条件可确定受此漏洞影响:JDK 版本 >= 9使用了 Spring 框架或衍生框架项目中 Controller 参数接收实体类对象并存在代码调用1.漏洞描述 Spring Framework 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2原创 2022-03-31 22:39:50 · 4782 阅读 · 0 评论 -
Java注解--一张图一案例掌握自定义注解
1.概述 是什么:是对方法、类、参数、包、域以及变量等进行代码功能的增强或者修改程序的行为等操作。应用跟踪代码依赖性,实现替代配置文件功能在反射中使用Annotation,字段格式化(如:数据字段脱敏、日期格式)在编译时进行格式检查生成帮助文档2.注解相关知识 元注解指的是所有注解都基于它们而产生的最基础的注解。2.1.Annotation接口和元注解这张图包含了Annotation接口信息、4个元注解作用和元注解的参数信息整体关系(具体信息都在图中)顶级注解接口:Annotatio原创 2022-03-25 21:16:22 · 484 阅读 · 0 评论 -
Java反射详解篇--一篇入魂
1.反射概述Java程序在运行时操作类中的属性和方法的机制,称为反射机制。一个关键点:运行时一般我们在开发程序时,都知道自己具体用了什么类,直接创建使用即可。但当你写一些通用的功能时没办法在编写时知道具体的类型,并且程序跑起来还会有多种类型的可能,则需要在运行时动态的去调用某个类的属性和方法,这就必须使用反射来实现。例子说明:Father f = new Children();编译时变量f 为Father类型,运行时为Children类型;public void demo(Object obj原创 2022-03-25 21:11:00 · 448 阅读 · 0 评论 -
JavaWeb之Servlet、拦截器、监听器及编程思想
本文包含的内容有:Servlet的理解自定义Servlet、监听器和过滤器三者的一点点编程设计思想后续的学习JavaWeb是Web开发的重要基础,对Servlet、监听器和过滤器等知识的掌握程度,将会影响到你后面学习SpringWeb框架难易程度。先了解下我们在学习的东西是干嘛的B/S模式B端=浏览器端,可以看作是通用标准的客户端,所有浏览器都基于通用标准去开发的客户端软件;S端=服务器端,就是我们开发的web服务,在B/S端中我们只需要开发服务端,区别于C/S模式,在C/S模式中我们客户端a原创 2022-03-21 11:03:10 · 1533 阅读 · 0 评论 -
java IO流体系--通识篇
1.I/O流是什么Java的I/O流是实现编程语言的输入/输出的基础能力,操作的对象有外部设备、存储设备、网络连接等等,是所有服务器端的编程语言都应该具备的基础能力。I = Input(输入),输入是相对程序而言,既程序从外部设备、存储设备或网络连接中读取数据;O = Output(输出),输出也是相对程序而言,既程序写入数据到外部设备、存储设备或网络连接;“流”(stream)是一个抽象、动态的概念,是一连串连续动态的数据集合,是一连串的1和0。在Java编程语言中,运行程序存放在JVM中,而J原创 2022-03-13 21:39:06 · 1259 阅读 · 0 评论 -
Java编程思想第四版(完整中文高清版)pdf
这是一本有独到、深入的见解的Java语言,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。这是本好书,但不适合初学者!!!是本查漏补缺,尽善尽美原创 2022-03-07 22:30:13 · 490 阅读 · 0 评论 -
Java序列化流的奇妙之旅
Java序列化流有何奇妙之处呢?通过一个个案例逐一感受序列化流。!!!好戏在后头!!!1.IO流读写文件先从一个普通文件读写字符串开始讲起。例子:输出字符串到文件,再从文件中读取字符串在某一天灵感迸发:我可以把Java程序中的对象信息直接保存到普通的 txt 文件中吗?并且当我想使用它时,还可以拿出来就可以直接用,不需要再做其他处理,就像存储普通的字符串一样,在文件中读出来就可以直接使用的那种。2.序列化和反序列化流奇妙之处要想实现对象信息存储到普通文件不被破化,并且读取原创 2022-03-07 22:26:45 · 207 阅读 · 0 评论 -
自己写了个Java RMI(远程方法调用)的实现案例
自己简单写了个Java RMI(远程方法调用)的实现案例。为了更好理解RMI(远程方法调用)、序列化的意义等等,花费三天多的时间肝了一个Java RMI的实现案例。!!!高能预警!!!代码量有点大,先附上了简图用于理解整个过程分为两大步第一步--注册过程:客户端通过指定路由获取注册中心指定的远程客户端对象; 第二部--服务调用过程:客户端通过远程客户端对象访问远程服务端(代理服务)从而访问到真实服务的实现调整为舒适的姿势,慢慢看…… 废话少说,上代码!!!1.定义远程标记原创 2022-03-06 00:01:47 · 403 阅读 · 1 评论 -
Java泛型的那些事
1.泛型概述1.1.为什么使用泛型没有泛型,在编写代码时只能使用具体类型或Object类型,无法做到使用者想要使用什么类型就是类型。比如:创建一个方法,形参需要指定需要使用的数据类型,在创建方法之初就已经决定了该方法可以处理的数据类型,这大大限制了编程的灵活性。正因如此,才出现了在使用时才决定具体类型是什么的泛型编程。1.2.泛型是什么泛:广泛、普遍,非具体的东西,泛型就是定义之初用符号表示不具体的类型,在使用的时候才动态地指定具体的类型。更应该明白这种泛型编程设计思想,使用泛型带来的好处是原创 2022-02-28 19:07:17 · 572 阅读 · 0 评论 -
Java异常处理
1.异常概述异常的定义:异常顾名思义是不同于平常的,异常情况是不正常的情况,异常程序指的是非正常想要的程序。假设没有异常处理机制,当程序出现非正常情况时,程序便会直接结束(因为无法继续运行程序打印日志,所以是什么原因导致程序崩溃都不知道);有异常处理时,当程序出现非正常情况时,可以捕获这异常信息并做处理(比如打印错误日志),再看业务情况是否继续运行或结束程序。所以“异常”是属于一种可预测的正常情况。异常的作用:异常机制可以使程序中的异常处理代码和正常业务代码分离,保证程序代码更加优雅、有更好原创 2022-02-24 23:35:05 · 566 阅读 · 0 评论 -
Java全栈学习路线、学习资源和面试题一条龙
Java学习路线、面试题资源和电子书资源都整理好了原创 2022-02-20 00:26:31 · 211 阅读 · 1 评论