Java基础
文章平均质量分 70
Java工程师的基础知识
风落_
coding
展开
-
ArrayList 源码浅析
阅读这篇文章,你可以明白以下问题:ArrayList 的部分源码与扩容机制?为什么有两个空数组?为什么是1.5倍扩容?为什么不能用 foreach 对 ArrayList 做修改?Arrays.copyOf 与 System.arrayCopy ?原创 2022-10-05 10:29:59 · 669 阅读 · 0 评论 -
Java 设计实现 LRU 缓存
哈希表提供可以在 O(1) 复杂度下 get、put、remove 对应键的节点的能力,双向链表提供模拟访问队列的能力,被访问的节点移到链表头,将被淘汰的节点在链表尾,所以需要双向链表!LRU 的要求:O(1) 复杂度的插入和获取,以及在超过 capacity 限制后,按照最久未使用的策略淘汰旧值,并插入新值,复杂度均为 O(1)。在 Redis 中,如果键值对所占内存达到了所设置的 maxMemory 最大内存则会执行淘汰策略,比如 LRU、LFU 等。所以我们应该牢牢掌握 LRU 的设计。原创 2022-10-04 20:59:27 · 719 阅读 · 0 评论 -
SpringBoot启动流程简要分析
SpringBoot作为Java开发者必备的框架,通过SpringBoot我们可以快速创建一个准生产级别的项目,极大的提升了开发效率,所以通过阅读SpringBoot的源代码,我们可以更好的了解SpringBoot的原理。我们可以通过SpringBoot项目的启动类中找到run方法,查看最后的run方法的源码可以得出大致的启动流程。除了这些,从源码中可以看出,run方法还包括启动时间的统计,异常报告,启动日志等操作。原创 2022-09-20 17:33:00 · 216 阅读 · 0 评论 -
死锁示例代码详解
多个进程或者线程可以竞争有限数量的资源。两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。原创 2022-08-22 15:07:17 · 1229 阅读 · 0 评论 -
如何查看一个Java普通程序中的线程都有哪些?
如何查看一个Java普通程序中的线程都有哪些?原创 2022-07-17 15:51:56 · 805 阅读 · 0 评论 -
【HL7】快速入门 HL7 协议
博主目前在实习,需要接触到 HL7 协议,本着快速入门好继续摸鱼的想法,现在赶快总结学习一下 HL7。部分资料来自网上收集!HL7 基本介绍HL7 全称卫生信息交换标准(Health Level 7),标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输的协议。HL7 汇集了不同厂商用来设计应用软件之间接口的标准格式,它将允许各个医疗机构在异构系统之间,进行数据交互。HL7 的主要应用领域是 HIS/RIS,主要是规范 HIS/RIS 系统及其设备之间的通信,它涉及到病房和病人信息管理、化验系统、原创 2022-05-20 11:15:11 · 14135 阅读 · 0 评论 -
【SpringCloud】Feign 声明式服务调用入门学习
1、什么是 FeignFeign 是 Spring Cloud Netflix 组件中的一个轻量级的 RESTful 的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了 Ribbon 和 RestTemplate,实现了 WebService 的面向接口编程,进一步降低了项目的耦合度。Feign 内置了 Ribbon,用来做客户端负载均衡调用服务注册中心的服务。Feign 本身并不支持 SpringMVC 的注解,它有一套自己的注解,为了更方便的使用,SpringCloud.原创 2022-05-15 22:07:35 · 300 阅读 · 0 评论 -
【Swagger】Swagger 注解学习
Swagger 3 已经发布了一段时间了,但是这里我们主要学习目前更主流的 Swagger 2。Swagger 2 整体注解Swagger 2 请求类注解,主要用于 Controller 类上Swagger 2 请求方法注解,主要用于 Controller 类对应的方法上Swagger 2 对象类注解,主要用于 JavaBean 上1、Swagger 2 请求类注解@Api 标识 Swagger 识别的类@Api 放在 @Controller 注解并列的请求类上核心参数包含 value原创 2022-05-14 15:53:27 · 2024 阅读 · 0 评论 -
【SpringCloud】Ribbon 负载均衡策略设置以及点对点直连
1、Ribbon 负载均衡策略设置示例项目接上一篇文章:【SpringCloud】什么是 Ribbon 以及入门案例_风落_的博客-CSDN博客1.1、全局在启动类或配置类中注入负载均衡策略对象。所有服务请求均使用该策略。@Beanpublic RandomRule randomRule() { return new RandomRule();}多次访问 http://localhost:9090/order/1,控制台打印的 服务提供者 ip 和端口号如下,即随机策略1.2、.原创 2022-05-11 20:32:39 · 1113 阅读 · 0 评论 -
【SpringCloud】什么是 Ribbon 以及入门案例
1、什么是 Ribbon?Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它是基于 Netflix Ribbon 实现的。它不想 Spring Cloud 服务注册中心、配置中心、API网关那样独立部署,但是它几乎存在于每个Spring Cloud 微服务中。包括 Feign 提供的声明式服务调用也是基于该 Ribbon 实现的。Ribbon 默认提供很多种负载均衡算法,例如轮询、随机等等,甚至包含自定义的负载均衡算法。2、Ribbon 解决了什么问题?Ribbon 提供了.原创 2022-05-11 19:49:15 · 577 阅读 · 0 评论 -
【SpringCloud】Eureka 安全认证
Eureka 安全认证1、添加依赖注册中心添加依赖 security 依赖<!-- spring security 依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>2、配置文件注册中心.原创 2022-05-01 14:55:14 · 2877 阅读 · 0 评论 -
【SpringCloud】集群下 Eureka 的启动 bug,大坑
如题,笔者创建了两个 Eureka Server 做集群,并引入了 Spring Security 在启动这两个 Server 就出现错误,会有各种 bug,比如There was a problem with the instance info replicator com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serverDiscoveryClient_E原创 2022-05-01 13:14:18 · 1169 阅读 · 0 评论 -
【SpringCloud】Eureka 整体架构 | CAP 原则 | Eureka 自我保护 | Eureka 优雅停服
Eureka 整体架构Register(服务注册):把自己的 IP 和端口注册给 EurekaRenew(服务续约):发送心跳包,每 30 秒发送一次,告诉 Eureka 自己还活着,如果 90 秒还未发送心跳,宕机Cancel(服务下线):当 Provider 关闭时会向 Eureka 发送小心,把自己从服务列表中删除,防止 Consumer 调用到不存在的服务Get Registry(获取服务注册列表):获取其他服务列表Replicate(集群中数据同步):Eureka 集群中的数据复制与同.原创 2022-04-30 18:19:38 · 358 阅读 · 0 评论 -
【SpringCloud】Eureka 之服务消费者
Eureka 之服务消费者1、创建项目2、添加依赖pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://ma原创 2022-04-30 17:39:03 · 373 阅读 · 0 评论 -
【SpringCloud】Eureka 之服务提供者
创建服务提供者1、创建项目 service-provider2、添加依赖 pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.原创 2022-04-30 16:47:00 · 631 阅读 · 0 评论 -
【SpringCloud】搭建高可用 Eureka 注册中心
高可用 Eureka 注册中心高可用的 Eureka 是指搭建多台 Eureka Server 服务,不同的 Eureka Server 之间相互指向注册。搭建多台 Eureka Server 的具体步骤和搭建单节点一样,pom.xml 依赖都是相同的,只是在配置文件 application.xml 中需要做修改!这里以搭建两台集群 Eureka Server 为例:EurekaServer01-application.ymlserver: port: 8761 # 端口spring:原创 2022-04-30 16:09:06 · 463 阅读 · 0 评论 -
【SpringCloud】Eureka 服务注册中心入门
Eureka 服务注册中心1、什么是注册中心注册中心相当于微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到注册中心,当服务需要调用其他服务时,就到这里找到服务的地址,进行调用。举个例子服务发现:你先要给张三打电话,于是你在通讯录中寻找张三的电话,并拨打电话服务注册:李四告诉了你的电话号,你把电话号存在通讯录中以方便以后在通讯中找到他总结:服务注册中心的作用就是服务的注册和服务的发现2、常见的注册中心Netflix EurekaAlib.原创 2022-04-29 17:43:56 · 1532 阅读 · 0 评论 -
【面试常考】多线程打印问题多种解法及总结
阿里面试原题:创建 n 个线程,依次命名为 T1、T2、T3、、、Tn,请按需打印这些线程的名字 printNum 次。通常我们创建多线程的方式有三种,这里我给出第一种解法(synchronized)的三种形式,后面统一使用 Runnable 接口。一、Synchronized1、继承 Thread 类创建多线程package com.fengluo;import java.util.Scanner;public class Test { private static int n;原创 2022-04-06 21:43:06 · 1438 阅读 · 1 评论 -
【面试八股】计算机网络回顾
为了准备暑期实习的面试环节,把常考的八股文梳理一下~八股文绝对不能硬背,应该是 理解 + 反复,从八股中打牢基础、查漏补缺才是正道!计算机网络重点(OSI 七层、TCP/IP 四层模型、IP、TCP、UDP、HTTP、HTTPS)计算机网络模型(为了支持异构网络的互联互通)OSI 七层模型物理层任务:透明的传输比特流功能:为数据段设备提供传送数据通路传输单位:比特(bit)所实现的硬件:集线器,中继器数据链路层任务:将网络层传输下来的 IP 数据报组装成帧原创 2022-03-31 19:54:11 · 3155 阅读 · 0 评论 -
【并发入门】Java 并发编程学习笔记
注:该笔记主要记录自 B站 up主 遇见狂神说的个人空间_哔哩哔哩_bilibili1、什么是 JUCJava 工具类中的 并发编程包学习:源码 + 官方文档业务:普通的线程代码 ThreadRunnable 没有返回值、效率相比于 Callable 相对较低!2、线程和进程进程:程序运行的实例一个进程至少包含一个线程,可以包括多个线程Java 默认有几个线程?2 个 main、GC线程:开了一个进程 Typora,写字、自动保存 由线程负责对于 Java 而言:Thread、Run原创 2022-03-07 14:59:02 · 544 阅读 · 0 评论 -
数组二分查找-Java 实现
二分查找法作为一种常见的查找方法,大大缩短了搜索时间,时间复杂度只有O(logn),但它必须在有序数据中进行查找。二分查找很好写,却很难写对,出错原因主要集中在判定条件和边界值的选择上,很容易就会导致越界或者死循环的情况。下面给出 Java 的实现代码:import java.util.Arrays;import java.util.Scanner;public class Test01 { public static void main(String[] args) {原创 2022-01-21 18:47:58 · 346 阅读 · 0 评论 -
【JavaWeb】《JSP程序设计与案例实战》读书笔记
目录一、JSP 概述JSP 概念JSP 组成JSP 执行过程二、JSP 脚本元素、指令JSP 脚本元素JSP 指令三、JSP 隐式对象JSP 隐式对象(九个)输入/输出对象(三个)作用域通信对象(三个)Servlet 对象(两个)错误对象(一个)四、JSP 标准动作JavaBean 概念JavaBean 特点JavaBean 编写JSP 标准动作五、JSP 表达式语言EL 概念EL 语法EL 运算符EL 常见应用六、JSP 中使用数据库JDBC 目的JDBC 用途JDBC 操作步骤JDBC 事务处理七、JS原创 2021-12-29 22:45:17 · 1722 阅读 · 0 评论 -
Java-多线程-完全自学指南
Java 多线程线程简介一个进程,通常可以包含若干个线程,线程是 CPU 调度和执行的单位。线程就是独立的执行路径;在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc 线程;main() 为主线程,即系统的入口,用于执行整个程序;在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为干预的;对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;线程会带来额外的开销,如 CPU 调度时原创 2021-10-31 22:56:39 · 451 阅读 · 0 评论 -
Java-网络编程-完全自学指南
吹爆 狂神老师的 B站课程网络编程1.1 概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:传播交流信息,数据交换,通信想要达到这个效果需要什么:如何准确的定位网络上的一台主机? 通过 IP地址+端口,例如 192.168.16.124:端口号,定位到这个计算机上的某个资源找到主机后,如何传输数据呢? 通过网络编程原创 2021-11-05 22:54:39 · 296 阅读 · 0 评论 -
Java-注解和反射-完全自学指南
吹爆 狂神老师的 B站课程Java 注解Annotation(注解) 是从 JDK5.0 引入的新技术Annotation 的作用:不是程序本身,可以对程序做出解释(这一点和注释(comment)没什么区别)可以被其他程序(比如编译器)读取Annotation 的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarning(value=“unchecked”)Annotation 在哪里使用?可以附加在package,class,meth原创 2021-11-10 22:34:54 · 881 阅读 · 0 评论 -
JavaWeb-完全自学指南
吹爆 狂神老师的 B站课程,狂神哥的课程真的很小白友好了,相信只要学完之后做些项目巩固一下,定能大有裨益!Java WebJava Web 是成为一名合格的 Java工程师 的一道坎,认真学完这部分可以轻松进入 Spring,加油!紧急学习,从 Tomcat 开始,持续更新1. Web基本概念2. Web服务器3. Tomcat3.1 下载安装 tomcat官网:https://tomcat.apache.org/3.2 Tomcat启动和配置文件夹作用:启动 / 关闭 Tomca原创 2021-11-18 11:49:46 · 745 阅读 · 0 评论 -
JDBC-完全自学指南
文章目录一、数据库驱动二、JDBC三、第一个 JDBC 程序四、工具类五、statement对象六、PrepareStatement 对象七、IDEA 连接数据库八、事务九、数据库连接池文章目录一、数据库驱动二、JDBC三、第一个 JDBC 程序四、工具类五、statement对象六、PrepareStatement 对象七、IDEA 连接数据库八、事务九、数据库连接池狂神老师的视频通俗易懂,但是需要明白的是,视频只是学习的捷径,真正实打实的学习还是得看书、看官方文档!一、数据库驱动我们的程序会通原创 2021-11-24 23:57:42 · 950 阅读 · 1 评论 -
Java贪吃蛇小游戏及素材 - GUI编程思想
面向对象!以数据为中心!对象 = 数据 + 对该数据的操作!原创 2021-09-25 20:41:27 · 1145 阅读 · 1 评论 -
Java-面向对象-抽象-封装-继承-多态-[总结]
后续补充先存着面向对象一切以数据为中心,对象=数据+操作,类为抽象模板,对象为具体实例类与对象成员变量成员方法构造方法静态方法main方法访问权限抽象定义一个类实际上是把一类事物的公有属性和行为提取出来,形成一个物理模型,这种研究问题的方法称为抽象。封装“高内聚,低耦合”高内聚:类的内部数据操作细节独立完成,不允许外部干涉低耦合:仅暴露少量的方法给外部使用通常禁止直接访问一个对象中的数据,而应通过操作接口来访问,即信息隐藏属性私有,get / set继承多态...原创 2021-09-26 16:09:28 · 115 阅读 · 0 评论 -
关于IDEA创建Maven子项目pom.xml中没有parent标签的解决办法
创建后刚开始有parent标签,加载完之后就没有了。解决办法pom.xml 中是项目的一些配置信息,我们可以手动加上parent标签解决,示例如下: <!--父标签,自然是父项目的一些信息--> <parent> <groupId>org.example</groupId> <!--注意:这里是父项目的 artifactId--> <artifactId>javaweb-02-servlet<原创 2021-11-16 18:52:47 · 4004 阅读 · 3 评论 -
DBCP数据源jar包下载与IDEA配置以及NoClassDefFoundError问题解决
一、DBCP的下载官网下载:下载二进制压缩包commons-dbcp.jarhttp://commons.apache.org/proper/commons-dbcp/download_dbcp.cgicommons-pool.jarhttps://commons.apache.org/proper/commons-pool/download_pool.cgi下载完成后,选择如图红框所示的两个 jar 包导入 IDEA项目中二、IDEA项目导入打开 lib 目录,右键 mysql 的原创 2021-11-24 15:57:33 · 5031 阅读 · 1 评论 -
关于Maven中 Could not transfer artifact xxx from/to xxx 的解决方案
使用 Maven 构建项目下载 jar 包时,出现错误,报错如下解决方案打开 maven 目录 如 D:\Program Files\Java\apache-maven-3.6.3\,打开 conf 文件夹,如下图打开 settings.xml在140行左右的代码处找到 mirrors 标签,在其中加入如下代码配置阿里云镜像,如图<mirror> <id>nexus-aliyun</id> <mirrorOf>*,!原创 2021-11-13 23:56:51 · 3913 阅读 · 0 评论 -
Java—错误:仅当显示请求注释处理时才接受类名称
解决办法在源代码文件名后加上.java后缀扩展名即可原创 2020-10-25 01:00:35 · 4362 阅读 · 0 评论 -
Java—错误: 找不到或无法加载主类
在命令行运行java程序分为两步第一步使用javac命令对java源代码进行编译,编译完毕以后我们会在文件夹下面看到一个class文件,这个是Java虚拟机编译完产生的文件第二步使用java命令(切记不能写入.class后缀)出错的原因可能有两种使用java命令时文件名写入了.class后缀,删除再试试应该可以解决叭包路径错误:如果你的代码文件里有包,并且当前目录在包目录内,则会报错,因为java代码运行时会在当前目录寻找包,而这时包在上一层目录。第二种解决办法有两种在源代码中注释或原创 2020-10-25 00:50:49 · 843 阅读 · 0 评论