- 博客(57)
- 资源 (11)
- 收藏
- 关注
原创 redis支持的数据结构
有序集合(Sorted Set,或者叫作ZSet):有序集合类似于集合,但每个元素都关联一个分数,用于排序,常用操作:添加元素,删除元素,按分数范围回去元素等。哈希(Hash):散列是一个键值对集合,其中每个键都映射到一个值,常用操作:设置字段值,获取字段值,删除字段,获取所有字段值等。列表(List):列表是一个有序的字符串集合,允许重复值,常用操作:从头或者尾部添加元素,获取元素,追加,删除元素,截取等等。常用操作:添加元素,删除元素,查找元素,集合运算,等。位图(Bitmap)
2024-08-18 19:22:44
259
原创 Java中redis面试题
答:redis版本在4.0之前都是单线程运行的,所有的客户端请求处理/命令执行以及数据读写操作都是在一个主线程中完成得。这种设计的目的就是为了防止多线程环境下的锁竞争和上下文切换所带来的性能开销,这样保证在高并发场景下的性能。不存在死锁和线程切换带来的性能和时间上的开销。答:redis数据是存储在内存中的,为保证不丢失就要从内存存储到磁盘上,以便在服务器重启之后能从磁盘中恢复原有的数据。大部分操作都是在内存中完成的,内存中的执行率本身就是很快的,并且采用了高效的数据结构,比如哈希表,跳表。
2024-08-18 11:32:02
277
原创 Java基础知识
首先要让java代码运行起来,你需要安装java开发工具包(JDK)并确保你的系统PATH环境变量中包含了JDK的bin目录。1,创建一个Java源文件,比如Hello.java 并写入以下代码。解释JVM类加载的五个阶段分别为:加载,验证,准备,解析和初始化。3.使用cd 命令导航到包含hello.java 文件的目录。java代码是如何运行的?5 运行编译后的类文件。JVM的工作原理和阶段?4.编译Java源文件。
2024-08-17 11:04:51
154
原创 java反射机制原理
反射最重要的用途就是开发各种通用框架,比如spring都是配置化的,为了保证框架的通用性,他们可能需要根据配置文件加载不同的类或者对象,调用不同的方法,这个时候就必须使用到反射机制。当我们在使用IDE或者Ecplise时,我们输入一个对象或者类,并想调用它的属性和方法时,编译器就会自动列出它的属性或者方法,这里就是用到反射。对于任意一个对象,都能够调用它的任意方法和属性,这种动态获取信息以及动态调用对象方法的功能成为Java的反射机制。3. 使用对象的getClass()方法,这需要有一个具体的对象实例。
2024-08-15 17:33:19
230
原创 Java中Spring基础知识理解
在分布式架构中,服务治理的实现方式包括使用服务注册中心(如Eureka、Zookeeper)进行服务的注册与发现,使用限流技术(如Guava、Sentinel、Nginx) 控制请求访问速度,以及使用熔断技术(如Hystrix、Resilience4j)自动处理服务故障。微服务是一种软件架构模式,将一个应用程序拆分成多个小而自治的服务,每个服务都有自己独立功能,每个服务都可以独立开发,部署和扩展,它们之间通过轻量级的通信机制进行交互。确保系统的稳定性和性能。
2024-08-15 11:01:30
191
原创 SpringBoot日志整合
Spring Boot 对各种日志框架进行了自动配置,使得我们可以很容易地在 Spring Boot 应用中使用日志。Spring Boot 提供了自动配置的日志工厂,可以自动适配 Logback、Log4j2、Log4j 等日志框架。文件不存在,Spring Boot 会查找默认的日志配置,并应用默认的日志级别(通常是。Spring Boot 在类路径下寻找 Logback 的配置文件。依赖来实现的,它默认整合了 Logback 日志框架。,如果不存在,则会寻找标准的 Logback 配置文件。
2024-08-14 18:58:23
457
原创 微服务架构
随着微服务工程的越来越多,每个工程都有一套配置文件,系统膨胀,如果每个项目都有公共的比如数据库连接信息,没有统一的管理,想要修改则需要每个工程都有修改,所以我们通常有很多系统环境如: prod-生产环境,test-测试环境,dev-预发布环境。微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。熔断器:在微服务架构中,由于服务之间调用可能会产生故障,因此需要使用熔断器来保护系统免受故障的影响,SpringCloud Hystrix提供了熔断器的实现。
2024-08-14 15:32:57
331
原创 Java多线程的理解和应用场景
此外,多线程还在网络应用中进行并行数据处理,通过运行多个线程可以同时处理多个客户端的请求,有效提升服务器的处理能力。在图形用户界面(GUI)应用中,多线程可以避免耗时任务阻塞主线程,从而提高程序的响应速度。在开发网络应用或数据库操作时,多线程可以实现耗时操作的异步处理,提高程序的整体性能。多线程:是指在一个程序中同时运行多个线程执行不同的任务。每个线程都有自己的调用栈和程序计数器。多个方法共享堆和方法区。实现Runnable接口。
2024-08-13 21:33:16
264
原创 java中nginx负载均衡配置
负载均衡的配置,是为了实现程序的高并发和可用性进行服务器访问配置负载均衡是指将用户的请求分配到多个后端服务器上进行处理,以达到优化资源利用率、提高响应速度和增加系统的可靠性的目的。负载均衡器通常位于用户和服务器之间,接收用户的请求,并根据某种算法将请求分发给合适的后端服务器在nginx中,可以使用upstream模板来配置后端服务器集群组,并使用server指令指定服务器的地址和参数。然后在server配置中使用proxy_pass 指令请求转发到定义好的服务器群组。在这个upstream。
2024-08-12 11:38:33
609
原创 Java高并发处理机制
Feign,是声明式的伪HTTP客户端,使得编写HTTP客户端更新容易,只需要创建一个接口,并且使用注解的方式去配置,即可完成对服务提供方接口的绑定,大大简化了代码量,同时它还具有可拔插的注解特性,而且支持feign自定义的注解和springMvc的注解。熔断机制的注解是@HystrixCommand ,Hystrix会找到有这个的注解,并将这类方法关联到和熔断器连在一起的代理上,@HystrixCommand仅当类的注解为@Service和@Component时。添加具体的Feign依赖。
2024-08-12 11:08:26
804
原创 Java集合的分类
并行处理,如果你需要在多线程环境处理集合,可以使用并发集合如ConcurrentHashMap。队列,如果你需要先进先出的数据结构,可以使用Queue接口实现类如LinkedList。需要保证唯一性,如果你不想要重复的元素时,可以使用set接口的实现类HashSet。排序:你需要对集合进行排序,可以使用TreeSet或者PriorityQueue。动态数组:当你不知道需要多少元素时,可以使用集合类如ArrayList。当你需要将键映射到值时,可以使用Map接口的实现类HaspMap。接口:存储键值对映射。
2024-08-10 10:56:51
285
原创 Java中NoSql 数据库的使用
NOSQL(Not Only SQL)数据库是一种非关系型数据存储系统,它不采用传统的表格结构来组织数据,而是采用更灵活的数据模型如文档、键值对、列族或图形等。:由于其出色的扩展性和容量能力,NOSQL常用于存储和分析大量日志、社交媒体内容、物联网设备生成的传感器数据等。灵活性:适应不断变化的数据模式,支持半结构化或非结构化的大量数据,比如JSON、XML、图片或地理位置信息。:NOSQL更适合存储和检索复杂的数据结构,如JSON、XML等,而不是严格的固定表格形式。
2024-08-10 10:30:21
462
原创 JAVA分布式CAP原则
假如有客户端在浏览器访问用户A,A部署了2台服务器,分别在2个同样的服务节点有S1,S2存放的数据都是V0,他们之间的网络是互通的,也就是相当于分布式系统的两个部分。实现这些策略的方式有使用基于数据库的分布式方案属于AP型,使用缓存+数据库的方案,先更新数据库在进行缓存更新,可能出现短暂的不一致,但可以保证AP型。一般来说,分区容错无法避免,因此可以认为CAP的P是总会成立的,CAP定理告诉我们,剩下的C和A无法同时做到。CAP原则指的是在一个分布式系统中,一致性,可用性,分区容错性。
2024-08-10 10:20:12
183
原创 SpringCloud 微服务nacos和eureka
Spring是微服务架构,是一种经过良好架构设计的分布式架构方案。微服务架构有如下特性单一:微服务拆分粒度小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发面向服务:微服务对外暴漏业务接口自己治理:独立团队,对立技术,独立数据,部署独立隔离性强:服务调用做好隔离/容错/降级/避免出现级联问题提供者与消费者,提供者与消费者角色是相对的服务提供者:一次业务中,被其它微服务调用的服务{提供接口给其它微服务}服务消费者:一次业务中,调用其它的微服务服务{调用其它微服务提供的接口}
2024-08-09 13:48:02
707
原创 医保的三大目录
包括甲类和乙类药品。甲类药品是临床治疗必需、使用广泛、疗效好且价格较低的药品,可以全额纳入报销范围并按规定比例报销。乙类药品是可供临床治疗选择使用、疗效好但价格较高的药品,使用乙类药品时需要先按比例扣除一定的个人自付费用,然后将剩余费用纳入报销范围并按规定比例报销。这些项目需由物价、卫生部门制定收费标准,并由定点医疗机构为参保人员提供。主要涵盖由定点医疗机构提供的,参保人员在接受诊断、治疗和护理过程中所需的生活服务设施,其中最主要的是住院床位费及门(急)诊留观床位。
2024-08-08 10:48:05
188
原创 浅谈Springboot与Springcloud的区别
3 @RestController 是一个方便的注解,它是@Controller和@ResponseBody的组合,添加了RestController的类中方法返回的值通常被直接写入HTTp响应体中,是一种REST风格的控制器。每天工作中都在用SpringBoot框架,当面试的时候被问到Springcloud的基本组件都有哪些的时候,我当时是蒙圈的状态,告诉大家在使用底层东西的时候基本的业务知识还是得掌握下,这样才能完美的使用。SpringCloud是一个基于SpringBoot的实现云应用的开发工具,
2024-08-08 09:47:04
528
原创 FineReport帆软设计器,远程连接服务器
3.点击配置会出现如下界面,输入对应的主机名/IP,输入主机位置就会自动带出Web应用、Servlet 方式直接输入用户名和密码进行验证。这样,您就成功配置了FineReport的远程服务器,可以开始使用FineReport进行报表设计和分析了。4.点击测试连接,验证主机、用户名和密码是否正确,信息正确会有如下提示。这样子,就可以看到对应远程服务器上的帆软报表了,可以直接进行修改了。1、打开帆软设计器,点击文件,可以看到切换目录,继续进行操作。修改完成也不用在放到对应的服务器上面了,这样子方便了好多。
2024-05-29 15:39:40
1183
1
原创 移动医保支付
传统就医流程中,涉及“三长一短”的难题,因此根据国家政策及互联网的能力支持,用户在微信或者支付宝上激活医保电子凭证之后,无需在医院窗口排队,即可通过微信小程序或者公众号、支付宝小程序缴纳医保挂号或医保门诊费用,优化了传统的就医流程,为用户提供便捷的医保结算就医方式。需要注意的是,医保支付那么HIS就需要调用线上医保平台提供的门诊登记、费用上传、支付下单接口才能正式发起支付,费用上传的支付基本信息必须是在医保的线下平台进行了医疗服务项目备案之后的项目,不然医保会给出具体的提示信息,是不能进行正常支付的。
2024-04-08 14:37:16
386
原创 redis 相关知识
redis是单线程还是多线程的?redis不同的版本之间采用线程模型是不一样的,在redis4.0版本之前使用的是单线程模型,在4.0版本之后增加了多线程的支持。在4.0之前虽然我们说redis是单线程,也只是说网络I/O线程以及set和get操作是由一个线程完成的。但是redis的持久化、集群同步还是使用其他线程完成的。4.0之后添加了多线程的支持,主要体现在大数据的异步删除功能上,例如:unlink key、flushdb async。为什么redis在4.0之前会选择淡线程,而且单线程还那么快。
2024-04-07 17:43:09
394
原创 maven 打包命令
学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件。基本概念:Maven是跨平台的项目管理工具。Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。
2024-02-21 14:47:11
1069
1
原创 java基础面试题
如果是在网页上,一些不恰当的设计可能会使用户认为上一次操作失败了,然后刷新页面,这就导致了withdraw被调用两次,账户也被多扣了一次钱。因为支持多继承,引入了菱形继承问题,又因为要解决菱形继承问题,引入了虚继承。这时候,因为D同时继承了B和C,并且B和C又同时继承了A,那么,D中就会因为多重继承,继承到两份来自A中的属性和方法。幂等接口:幂等接口认为,外部调用者会存在多次调用的场景,为了防止重试对数据状态的改变,需要将接口的设计为幂等的。假设我们有类B和类C,它们都继承了相同的类A。
2024-02-06 14:53:02
192
原创 spring 熔断机制
而下游的服务器挂了或者网络不可达,通常线程会堵塞住直到timeOut,如果并发量多了,这些堵塞的线程就会占用大量的资源,很有可能把自己本身的微服务所在的机器资源耗尽,导致自己也挂掉。服务降级利用fallback实现,例如在fegin中接口实现fallback指定的错误请求方法,使得这次请求不进入正常系统的处理逻辑,而去执行指定的fallback方法,返回error操作,就比如常见的错误友好页面,让它不去卡你的系统。熔断是微服务必须的,可我不用熔断,系统好像也能正常的工作,那为什么说它是必须的呢?
2024-02-06 14:49:53
399
原创 鉴权验证唯一登录
就是客户端在首次登陆以后,服务端再次接收http请求的时候,就只认token了,请求只要每次把token带上就行了,服务器端会拦截所有的请求,然后校验token的合法性,合法就放行,不合法就返回401(鉴权失败)5. 服务器收到上述请求信息后,将Authorization字段后的用户信息取出、解密,将解密后的用户名及密码与用户数据库进行比较验证,如用户名及密码正确,服务器则根据请求,将所请求资源发送给客户端。1. 客户端向服务器请求数据,请求的内容可能是一个网页或者是一个ajax异步请求,此时,
2024-02-06 14:48:11
401
原创 mysql 数据库基础知识
2.从库I/O线程:当START SLAVE语句在从库开始执行之后,从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。读写分离:①避免从数据库进行写操作而导致的主从数据库数据不一致的情况,因为当主从数据库数据不一致时,那么从数据库最主要的备份任务就没有意义了。拥有多个从库的主库为每一个连接到主库的从库创建一个binlog输出线程,每一个从库都有它自己的I/O线程和SQL线程。主从复制:①当主数据库出现问题时,可以当从数据库代替主数据库,可以避免数据的丢失。
2024-02-06 14:45:25
821
6
原创 Java-spring注解的作用
上面的示例中,@Qualifier注解用于指定需要注入的Bean的名称为“userServiceImpl”。需要注意的是,@Qualifier注解通常与@Autowired或@Inject注解一起使用,用于在多个匹配的Bean中进行选择。当容器中有多个类型相同的Bean时,可以使用@Qualifier注解来指定需要注入的Bean。如果没有指定@Qualifier注解,Spring框架将使用默认的自动装配策略,即按照类型进行匹配。因此,使用@Qualifier注解可以有效地解决这个问题。
2024-02-05 16:11:48
742
原创 java读取配置文件数据
在实际开发中,项目中难免会有一些秘钥或者不经常使用到的配置信息,此时,就可以将这些配置信息统一写到配置文件中。随后使用@Value注解读取配置文件的值来向Spring中Bean的属性设置值。例如,一些系统环境变量信息,数据库配置,系统通用配置等等,都可以保存到配置文件中,此时就可以使用Spring的EL表达式读取配置文件中的值今天记载下读取配置文件的方法1、读取项目该文件的配置文件数据yml文件的格式如下:代码里面使用。
2024-01-18 15:02:06
570
原创 oracle数据创建同义词
grant select,insert,update,delete on B.表名 to palm_doctor;项目里面,可以存在多个系统之间都相互调用,我们一般会采用多个用户进行数据库表空间的创建。要么写接口进行处理,如果服务直接访问受限可以使用创建同义词的方式进行数据库相互操作。那么就存在问题了,多个数据库之间相互访问查询、新增、修改、删除。这样子,B用户就可以直接访问A下面的表,查询也可以直接进行查询。存在两个数据库A和B、B需要访问A下面的数据库。SELECT * FROM B.表名。
2024-01-18 11:32:56
709
原创 JAVA调试webservice接口
java程序调试webservice接口可以使用调用工具进行调试,对应的调试工具。SoapUI 下载地址:https://www,soapui.org/可在这个目录下面下载。
2024-01-18 10:52:57
889
原创 Java 集合存在相同属性,其他元素累加
使用JDK8的新特性: OutpatientPayWayAccountVO vo = new OutpatientPayWayAccountVO(); vo.setIncomeAmount(new BigDecimal(100)); vo.setPayName("支付宝"); OutpatientPayWayAccountVO vo1 = new OutpatientPayWayAccountVO(); vo1.s...
2021-08-11 09:30:01
666
原创 js问题总结
<input type="radio" value="0" name="type" checked="checked">个人<input type="radio" value="1" name="type">单位$('input:radio[name="type"]:checked').val();
2021-04-13 14:00:55
115
原创 Java 控制台VUE.JS的使用
运行环境:1、全局安装 vue-cli$ npm install vue-cli -g2、全局安装 webpack$ npm install webpack -g3、安装依赖库$ npm install4.安装 vue-quill-edito$npm install vue-quill-editor -g新增菜单: 在 ./src/router.js 配置具体...
2019-11-07 14:25:47
245
原创 java--微信小程序发送模板消息
String appId = ""//小程序appIdString appSecret = "" //小程序秘钥String url = "https://api.weixin.qq.com/cgi-bin/token?appid="+appId+"&secret="+appSecret+"&grant_type=client_credential"RestTemplate...
2019-03-19 15:43:13
1273
原创 微信小程序---授权登录
1、小程序登录授权,前端需要传入的参数:code==登录授权的rawData==计算签名使用encryptedData==包括敏感数据在内的完整用户信息的加密数据iv ==加密算法的初始向量signature == 字符串[sha1(rawData+sessionkey)]2、根据传入的参数进行加解密String url = "https://api.weixin....
2019-03-19 15:07:33
1148
3
原创 java 生成小程序二维码
根据小程序的appId和秘钥换取授权accessToken 信息:String codeUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="//生成二维码urlString url = "https://api.weixin.qq.com/cgi-bin/token?appid="+appId+"&a...
2019-03-15 14:15:45
1803
原创 java 发送电子邮件
电子邮件的发送分两种:1、发送的附件是在本地服务器上面,可以在置顶文件目录下面直接获取文件进行发送文件(1)使用JavaMailSenderImpl技术 简单的发送邮件JavaMailSenderImpl mailSender = new JavaMailSenderImpl()mailSender.setHost(smtpHost)//发件人邮箱的 SMTP 服务器地址, 必须...
2019-03-14 16:24:25
696
原创 js 特殊文本的判断
测试例子如下:<html> <head> <title>测试</title> </head> <script type="text/javascript"> function loadOption(ids){ var all_options = document.getEle
2018-10-08 16:11:04
352
原创 刘同间--大骗子
我是陕西人,今年年初的时候在打算装修西安的房子。经小区的邻居介绍认识了刘同间,邻居也是通过一个弟弟介绍的说是刘同间在西安很多工地上有工程在做,而且活也做的特别细。经过再三考虑就和他签订个人合同4月开始装修房子。 和他沟通和聊天都感觉这人蛮实在的,也没有考虑那么多,毕竟是第一次装修刚刚开始也没有签订合同。4月初开始的水电走了一月都没有完工,感觉他做工有点慢他起初说的是五一黄金周的时候...
2018-08-24 16:18:08
638
7
原创 前端angularJs的开发过程
一、启动项目的过程① npm install② bower install 安装访问浏览器③ grunt serve 启动命令
2018-05-18 14:33:15
836
原创 angular前端基本页面验证
验证值必须要在【0.01-100】之间,而且最多是2位小数<md-input-container flex=""><label>费率</label><input type="number" name="fee" ng-model="config.fee" required="" pattern="^(0
2018-05-07 10:42:39
1358
原创 Java 些许公共工具类
1、生成一些随机数字组合 public static String getNum(int length) { String val = ""; Random random = new Random(); for (int i = 0; i < length; i++) { val += String.valueOf(ran...
2018-03-29 13:56:26
552
消息提示框
2014-11-14
My97DatePicker日期控件
2014-11-14
mysql存储过程--根据主表创建一张副表导入数据(分表)
2014-06-09
JAVA-支付支付问题
2024-02-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人