- 博客(29)
- 收藏
- 关注
原创 nacos服务分级存储(权重配置)
一个可以有多个,例如我们的user-service,可以有:这里user服务copy了三个实例出来、。这里我们使用order-Servervice来访问,order-Servervice也在杭州节点实际效果:两个区域的服务器都会访问,没有规则,不存在先访问本地。
2024-03-26 23:37:10 280
原创 Ribbon负载均衡
默认为实现就是ZoneAvoidanceRule,是一种轮询方案通过定义IRule实现可以修改负载均衡规则,有两种方式:代码方式:在order-service中的OrderApplication类中,定义一个新的IRule配置文件,这里是给nacos配置。
2024-03-26 23:02:16 1634
原创 反射面试题
反射的优点:提高Java程序的灵活性和扩展性,降低了耦合性,提高自适应能力。允许创建和控制任意类对象,无需提前硬编码目标类缺点:反射的性能低反射机制主要在对灵活性和扩展性要求很高的系统框架上。放射会模糊内部逻辑,可读性较差。反射,在日常开发中使用不多,主要是底层框架的使用反射的优点:提高Java程序的灵活性和扩展性,降低了耦合性,提高自适应能力。允许创建和控制任意类对象,无需提前硬编码目标类缺点:反射的性能低反射机制主要在对灵活性和扩展性要求很高的系统框架上。
2024-03-05 19:28:51 403
原创 反射(重点)
Java给我们提供了一套API,使用这套API我们可以在运行时动态的获取指定对象所属的类,创建运行时类的对象,调用指定的结构,(属性,方法)等:代表一个类java.lang.reflect.Method:代表类的方法java.lang.reflect.Field:代表类的成员变量java.lang.reflect.Constructor:代表类的构造器反射的优点:提高Java程序的灵活性和扩展性,降低了耦合性,提高自适应能力。
2024-03-05 19:13:18 1396
原创 网络编程(JAVA)
计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源网络编程的目的:直接或间接的通过网络协议与其他计算机实现数据交互,进行通讯网络编程的三个问题:- 问题1:如何精准的定位到每台电脑- 问题2:如何精准的定位到主机上特定的应用(进程)-问题3:找到主机后,如何进行可靠的数据传输。
2024-02-26 16:52:35 1372 1
原创 生产和消费者问题(day5)
线程执行同步代码块时,其他线程调用了该线程的supend()方法将该线程挂起,该线程不会释放锁(同步监视器)当前线程在同步代码块,同步方法中出现了未处理的Error和Exception,导致当前线程的异常结束。当前线程在同步代买快,同步方法中遇到了break和return终止了该代码块,该方法的继续执行。当前线程在同步代码块,同步方法中执行了锁对象的wait()方法,当前线程别挂起,并释放锁。尽量避免使用supend()和resyme()这样的过时来控制线程。当前线程的同步方法。同步代码块执行结束。
2024-02-24 17:07:47 363
原创 线程的通信
wait():线程一旦执行此方法,就会进入等待状态。同时就进入等待状态,wait分为time_wait()和wait(),time_wait()计时一旦到就会释放,而wait()则需要被notify()和notifyall()唤醒才能继续工作notify():一旦执行方法,就会唤醒wait()的线程优先级最高的那一个线程。(如果被wair()的多个线程的优先级相同,那么就随机被唤醒一个)。被唤醒的线程从当初被wait()的地方继续执行。
2024-02-24 10:37:09 490
原创 死锁(day4)
不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。当第一个线程s1执行完进行sleep时,第二个线程就开始执行,(这里第一个线程s1是等待s2的,第二个 线程s2等待s1完成)当第一个线下s1sleep()结束之后,发现s2被第二个同步锁锁住了,而的第二个线程s2需要的是s1,这时s1被线程一的同步监视器拿到了,此时双方的资源都在对方手里就形成了死锁。
2024-02-21 22:44:16 303
原创 单冽模式的线程安全问题(day5)
饿汉式:立即加载,类加载完对象就创建完毕优点:简单方便,没有多线程安全问题缺点:耗费内存懒汉式:延迟加载,调用静态方法时才创建对象优点:节约内存(优点:实现起来比较简单;当类被加载的时候, static 的实例未被创建并分配内存空间,当静态方法第一次被调用时,初始化实例变量,并分配内存,因此在某些特定条件下会节约内存)缺点:多线程中存在线程安全问题。
2024-02-21 22:19:48 350
原创 多线程的两种创建方法 day2
线程在主方法中执行,进入main开始,到start才开始执行分线程这种一条线没有分开的就是单线程(当然这里本身条件就不满足)并且在继承这种方式中,start不能调用两次,否则会报错,如果实现Runable就不用解决办法:再创建一个对象。
2024-01-24 00:31:07 424 1
原创 多线程学习day1
注:进程之间通信就是各个软件之间的调用,每个软件都是独立的进程,如:当你打开pdd时自动跳转到微信1.1总结程序是静态的指令集,进程是动态的,是操作系统最小调度单位,可以打开任务管理查看(此时显示的就是各个任务的进程)线程是进程的衍生,共享方法区和堆,(所以会存在线程安全问题)
2024-01-23 23:38:53 539 1
原创 基于springboot的解耦
在学校面向对象三大特性之一封装性时,我们就有提到高内聚,低耦合,现在我们要基于springboot架构下来达到解耦,当然封装性也一定会用到。先来回顾一下什么是高内聚低耦合。
2023-12-22 16:31:19 396
原创 springboot-@ResponseBody详解
直接查看源码:里面包含了@Controller@ResponseBody会自动转换成json格式上面是响应的几种格式,但是在实际开发中我们都要求统一响应结果
2023-12-22 15:23:55 426
原创 Maven的使用
在我们开发一个项目时,我们就需要去配置各式各样jar包,整个过程繁琐而复杂,还存在版本问题,因此我们可以通过使用Maven来解决这些需求Maven包含了许多插件,我们所需要的包就是通过插件来获取的Maven就是一个插件类型的软件,里面包含了各式各样的插件来运行相关的jar包当我们需要对应的jar包时,就在pom文件去配置我们所需要的包,maven会自动去本地仓库查找,如果本地仓库没有,就会自动连接远程仓库下载,我们可以绑定对应的私服,这里我们绑定了阿里私服,使用过的jar包会自动存在本地仓库和私服,可以供团
2023-12-16 13:04:10 333
原创 StringBuilder和StringBuffer
前面我们详细学习了一系列字符串的使用,但对于String来说,设计到字符串的转化和修改其实都new了一个新的字符串,而不是去改变原字符串,这便是String的不可修改性,因此JAVA给我们提供了一些新的类供我们使用。
2023-11-24 00:52:09 375 2
原创 包装类的介绍和使用
在JAVA中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。这里进行的是装箱,而装箱调用的都是Integer.Valueof();那我们就在这里面去找答案,看这个方法底层的构造。这里的==既比较地址,又比较数值是否相等,因为此时是基本数据类型。当然具体的范围我们也可以从源码中找到。注意:我们来看看这道题的答案。
2023-11-23 01:19:32 52 3
原创 一文了解接口使用
在本文开始之前,我们先来聊聊String类,通过前面的学习,我们发现String类是一个比较特殊的引用类型,里面重写了许多的object类方法。如equals(),clone(),包括我们今天要使用到的两个方法,前面我们学习基本类型的时候,了解到基本类型和引用数据类型,由自动类型提升到向上转型,再到强制转换向下转型,每一个知识点都联系紧密。
2023-11-16 01:06:07 22 2
原创 初识接口1
在文章开始之前我们先来探讨一下,首先我们得明白一个东西,JAVA是不支持多层继承的!在前面的学习中我们知道JAVA的继承主要是单继承,子类继承父类--->object类。
2023-11-15 15:18:04 35
原创 一篇带来了解内部类和静态内部类
当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么这个内部的完整结构最好使用内部类。在Java中,可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。内部类也是封装的一种体现。
2023-11-14 00:26:34 23
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人