- 博客(54)
- 收藏
- 关注
原创 SpringCloud微服务
dubbo 提供服务 调用服务A 调用服务B 给nacos 调用的服务事务不能回滚,不是本地的。约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适,至于注重通信。务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,以及服务。: 网络传输就是你要把你调用的方法的信息比如说参数啊这些东西传输到服务端,然后。因为,两个不同的服务器上的服务提供的方法不在一个内存空间,所以,需要通过网。实际指的就是接收到客户端执行方法的请求后,去指定对应的方法然后返回结。
2025-09-26 20:16:53
544
原创 牛客疑难题(6)
staticstaticvoidA cnt=5B cnt=2C cnt=3D cnt=6正确答案:A你的答案:D官方解析:这道题目考察了Java静态代码块的执行顺序以及静态变量的初始化过程。让我们逐步分析代码的执行流程:1. 首先,静态变量cnt被初始化为62. 然后按照代码中静态代码块的顺序执行:- 第一个静态代码块: cnt += 9 执行后,cnt变为15。
2025-08-12 20:57:45
972
原创 MyBatis笔记整理
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。像MyBatis、Hibernate都是属于ORM框架对象关系映射(英语:(Object Relational Mapping,简称ORM)MySql、Oracl
2025-08-11 20:08:17
594
原创 牛客笔试精华题(4
在Java中构造方法之间的相互调用需要使用this()语法,B选项this(x)是正确的语法格式。这是因为this()表示调用同类中的其他构造方法,参数x会传递给对应的构造方法A(int a)。A选项 this.A(x) 错误:这种语法在Java中是不存在的。D选项 A(x) 错误:直接使用类名加括号的方式无法在构造方法内调用其他构造方法,这种写法在Java中是不允许的。C选项 super(x) 错误:super()是用来调用父类的构造方法,而不是同类中的其他构造方法。
2025-08-11 09:18:16
281
原创 牛客笔试精华题(3)
如果没有发生异常,或发生了其他类型的异常,catch块中的代码就不会执行,无法保证资源的正确释放。finally子句是Java异常处理机制中专门用于执行清理工作的代码块,无论是否发生异常,finally块中的代码都会被执行,这正是释放资源的最佳位置。如果在try块中进行资源释放,一旦发生异常,后续的释放代码就可能无法执行。而Ant是过程式的构建工具,通过编写build.xml来定义一系列任务的执行顺序,这些任务之间可以有依赖关系,但并不是一个标准的生命周期概念。下面关于 Kotlin 的说法错误的是()
2025-08-10 09:40:50
473
原创 SpringMVC基础
特性转发(forward)重定向(redirect)请求次数1次2次URL变化不变改变数据传递保持request属性不保持request属性速度更快更慢使用场景同一应用内的页面跳转跨应用跳转或需要改变URL时。
2025-08-06 20:44:23
1029
原创 牛客笔试题错题记录(2,有价值的题
虽然大多数新对象会在Eden区分配,但大对象(通过JVM参数-XX:PretenureSizeThreshold设置)会直接分配到老年代,避免在Eden区频繁复制。• CMS收集器:当老年代使用率超过-XX:CMSInitiatingOccupancyFraction阈值时,触发的是并发标记周期(非Full GC),仅在并发失败时转为Full GC。在Minor GC(YGC)时,若存活对象无法全部放入To Survivor区,超出的部分会直接晋升到老年代。5 视图数据库相关!
2025-08-05 19:54:57
104
原创 牛客笔试题错题整理(1)
C选项错误:yield方法并不会导致线程暂停指定时间,它只是一个提示性的方法,建议让出CPU时间片。A选项错误:yield方法调用后,只是让当前线程让出CPU执行权,但不一定会发生线程切换。D选项错误:yield方法执行后,线程从running状态转为ready(就绪)状态,而不是waiting状态。B选项正确:sleep方法会导致当前线程暂停指定时间,在这段时间内线程会释放CPU资源,不会消耗CPU时间片。yield 方法会导致当前线程暂停指定的时间,同时也会导致 CPU 时间片的消耗。
2025-08-04 21:34:41
337
原创 Javaweb基础
init()方法,仅执行一次service()→ 根据请求类型调用doGet()doPost()destroy()方法,释放资源。
2025-08-04 19:53:42
928
原创 Java常用API(1)
问:String不是基本数据类型 是关键字吗?不是String是类名,像main这种类都不是关键字int a=12;int a=200;//Java会统一提升到double 再比较封装类型之间不能比,比的是是否是同一个对象//true//false//基本数据类型的封装类型的缓存 缓存的范围 -128~127//哪些类型有缓存呢?整数 浮点型没有 character 0~127 boolean两个。
2025-07-22 19:30:17
807
原创 二叉树理论知识
AVL树是最早发明的自平衡二叉查找树,由G.M. Adelson-Velsky和E.M. Landis在1962年提出。它通过旋转操作保持树的平衡,确保查找、插入和删除操作的时间复杂度为O(log n)。
2025-07-18 09:14:02
911
原创 Java数组中相关查找排序算法(1)
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。(相邻对比交换位置)
2025-07-17 19:42:14
277
原创 Java数组补充v2
有意创建的设计上需要永不停止的循环结构通常有特定的业务用途,是程序逻辑的一部分意外产生的本应终止却无法停止的循环属于程序缺陷(bug),会导致程序卡死或资源耗尽。
2025-07-17 19:21:39
1148
原创 Java常用方法v2
Scanner 类是 Java 中一个非常实用的工具类,位于java.util包中,用于解析基本类型和字符串的简单文本扫描器。
2025-07-17 14:06:19
928
原创 Java基础语法补充v2
/A&&B 当A为false,整个表达式的结果就可以确定为false,B不再计算,B表达式就被短路了。//A||B 当A为true,整个表达式的结果就可以确定为true,B不再计算,B表达式就被短路了。//& 按位与运算 A&B 将A和B转成二进制,右侧对齐,上下比较,两个都为1,结果为1,否则为0。//| 按位或运算 A|B 将A和B转成二进制,右侧对齐,上下比较,两个都为0结果为0,否则为1。//^ 按位异或运算 A^B 将A和B转成二进制,右侧对齐,上下比较,两个不同则为1,否则为0。
2025-07-16 19:11:19
752
原创 JDBC基础(1)
数据库会为每一个客户端都设立一个空间独立的缓存区(回滚段),一个事务中所有的增删改语句的执行结果都会缓存在回滚段中,只有当事务中所有SQL语句均正常结束(COMMIT),才会将回滚段中的数据同步到数据库。//发送SQL语句 增删改--executeUpdate(),返回受影响的行数 查--executeQuery(),返回结果集。一个操作序列,这些操作序列要么都执行,要么都不执行,它是一个不可分割的工作单位。事务要处理的问题,把多个对数据库的操作绑定成一个事务,要么都成功,要么都失败。
2025-06-14 22:13:05
1631
原创 数据库MySQL基础(3)
INSERT INTO 'stu' (’id‘,'name','age','gender') VALUES(10,'lisi',‘20‘,’男‘);UPDATE 'stu' SET 'addr' = '青岛' WHERE 'age' = 30 AND 'addr' = 'qd';INSERT INTO 'stu' ('name','age','gender') VALUES('张三',‘20‘,’男‘);
2025-06-04 19:25:27
687
原创 Java补充(Java8新特性)(和IO都很重要)
使用reduce操作来表达更复杂的查询,此类查询需要将流中所有元素反复结合起来,得到一个值,比如一个Integer.这样的查询可以被归类为归约操作(将流归约成一个值)Lambda表达式是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样传递)。作为一种更紧凑的代码风格。右侧:指定了Lambda体,是抽象方法的实现逻辑,也即Lambda表达式要执行的功能(其实就是重写的抽象方法的方法体)。左侧:指定了Lambda表达式需要的参数列表(其实就是接口中的抽象方法的形参列表)
2025-06-01 20:50:50
1489
原创 数据库MySQL基础2
二、查询语句练习 这里之间点击新建查询写查询语句即可,重在熟练。1、查询同时参与" 1 "课程和" 2 "课程考试的学生信息。WHERE t.t_name = '李白';3、查询学过「李白」老师授课的同学的信息。可以使用Navicat新建数据库连接。2、查询在成绩表存在成绩的学生信息。创建连接后双击会有创建的数据库。
2025-05-18 19:18:08
415
原创 Java基础(反射)
Constructor -- 代表类的构造方法 -- 通过反射创建对象要先得到该类的对象。Field -- 代表类的属性 -- 通过反射对属性进行操作要先得到该类的对象。java.lang.reflect.Constructor:代表类的构造器。Method -- 代表类的方法 -- 通过反射调用方法要先得到该类的对象。Class -- 代表加载到内存的.class文件,包含类的所有信息。java.lang.reflect.Method:代表类的方法。总结:反射操作的前提是得到Class类的对象。
2025-05-16 12:36:20
472
原创 Java基础(网络编程)
IPV6:128位(16个字节),写成8个无符号整数,每个整数用四个十六进制表示。一种规则,人与人交流有语言的规则,计算机之间通过网络交流也要有网络的规则。如何准确地发送到对方的主机 - IP地址 - 唯一的定位网络中的一台主机。传输控制协议(TCP)和网络互联协议(IP),一组协议,不同功能互相关联。IPV4:4个字节组成,4个0~255,如192.168.0.1。使用TCP协议前,须先建立TCP连接,形成传输数据通道;唯一的标识Internet上的计算机(通信实体)方式,释放连接,结束传输,效率低。
2025-05-15 21:03:47
376
原创 Java基础(多线程2)
2)Callable接口支持返回执行结果,有返回值,需要调用FutureTask.get()得到,此方法会阻塞主进程的继续往下执行,如果不调用不会阻塞;3)Callable接口的call()方法允许抛出异常,而Runnable接口的run()方法的异常只能在内部消化,不能继续上抛。wait(),wait(long)和sleep(long)的效果都是让当前线程暂时放弃CPU的使用权,进入阻塞状态。不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。
2025-05-15 19:25:42
727
原创 Java基础(多线程1)
一个进程中的多个线程共享相同的内存单元/内存地址单元/内存地址空间,它们从同一堆中分配对象,可以访问相同的变量和对象。~start():用来启动线程,通过该线程调用run方法执行run方法中所定义的逻辑代码。每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体;的话,才能更好的发挥线程的效率,现在电脑多核CPU每个核都可以调度运行线程,这时候线程可以并行的。~线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小;
2025-05-14 16:36:45
899
原创 Java基础(IO)
I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输。Java API提供的带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,默认使用8192个字节或字符的缓冲区。在程序中打开的文件 IO 资源不属于内存里的资源,垃圾回收机制无法回收该资源,所以应该显式关闭文件 IO 资源。字符流:操作的数据单元是16位字符,Reader、Writer,通常用于处理文本文件。硬盘-->内存,输入流。IO流是一组有序的,有起点和终点的数据集合,是对数据传输的总称和抽象。
2025-05-13 19:37:28
1752
原创 Java基础(异常2)
在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。如果一个方法中的语句执行时可能生成某种异常,但是并不能确定如何处理这种异常,则该方法应显示地声明抛出异常,方法(导航到源码)自己声明了向上抛出异常,在调用方法时就要使用上面的方式对异常进行处理。只要声明了,异常处理就有需求,两种方式:try/catch/finally 向上抛出。Java异常类对象的手动创建,上面的是自动创建。不处理,抛给上一层,在方法外处理掉。
2025-05-11 09:27:38
252
原创 数据库***MySQL基础/(反射理解应用)1
查询:select 字段,字段 from 表名(较快) 或者 select * from 表名(较慢)表没有了,上面的表还有是空的 效率最高!如果 不指定列名,values后小括号中必须包含所有列的值,并且,数值的顺序必须是表中列的顺序。清空表 :1)delete from t_student;insert into 表名(列名,列名) value/values (列值,列值)这里是找到mysql的bin路径之后从路径选中输入cmd进入的。insert into 表名 values (列的值)
2025-05-10 21:03:04
355
原创 Java基础(异常1)
创建好的异常对象不抛出对程序没有任何影响,和创建一个普通对象一样。,程序运行过程中,虚拟机检测到程序发生了问题,如果在当前代码中没有找到相应的处理程序,就会在后台自动创建一个对应异常类的实例对象并抛出;2、如果方法内部没有处理,会抛给调用者,...,如果一直没有处理,最后会抛给main方法,main方法会将异常抛给JVM,此时程序崩溃。printStackTrace():获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void。如果一个方法中,产生异常,通常有两种处理方式:‘
2025-05-10 19:49:57
339
原创 Java基础(集合框架3!!!!!!!!)
Properties 类是 Hashtable 的子类,该对象用于处理属性文件,由于属性文件里的key、value都是字符串类型,所以Properties里的key和value都是字符串类型。HashSet集合判断两个元素相等的标准,两个对象通过hashCode()方法比较相等,并且两个对象的equals()方法返回值也相等。Map中的key不允许重复,key所对应的类,须重写hashCode()和equals()方法。所有的key构成的集合是Set :无序的,不可重复的。否则,返回true。
2025-05-10 16:13:19
704
原创 Java基础(集合框架2)
还有一个常用 工具类 Arrays - 对数组进行操作的工具类 -- static -- 都涉及排序。二、 Collections --- 对集合进行操作的工具类 -- static -- 都涉及排序。1、 在Java官方提供的类中使用泛型 - "用“ - 泛型类 在创建对象和使用方法时使用泛型。2、 自定义类和接口中使用泛型 -- 泛型类 -- 设计类、创建对象和使用方法时使用泛型。extends 类型> 使用时指定的类型必须是继承某个类,或者实现某个接口,即<=
2025-05-08 18:07:13
322
原创 Java基础(集合框架1)
--LinkedList 基于链表结构实现 增删快 查询慢 通常用在需要频繁增删(特别是在头尾增删元素的场合) 线程不安全。|--Vector 基于数组结构实现 查询效率高 增删慢 通常用在需要频繁获取元素的场合 线程安全。Map -- 接口,双列集合 每个元素包括"键"和"值"两个部分 “键值对” “key - value”元素有序,且可重复的集合,集合中的每个元素都有其对应的顺序索引。集合/集合框架 -- "结构" - 存放多个元素。可变空间的数组/"结构" --- 集合。
2025-05-06 21:23:12
368
原创 Java项目小练习(员工管理系统)
/抽象类不能 new Employee();创建单独对象 但是new 一个数组arr可以 里面存放对象地址。CommonEmployee - 普通员工。Employee - 抽象类/父类。Director - 董事。Manager - 经理。3、21.75 工作日。
2025-05-04 22:12:45
175
原创 Java基础(常用类2)
StringBuilder是线程不同步(不安全)的。它的出现提高了处理可变字符串对象的效率。二、StringBuffer_可变字符串 _及_StringBuilder(用法一样)(1)Date 表示特定的瞬间,精确到毫秒。优势:解决了String用字符串做拼接,既费时又耗内存的问题。StringBuffer 是线程同步的。LocalDate 处理yyyy-MM-dd的年月日 日期。字符串缓冲区,用于存储可变字符序列的容器。三、_Math_常量_随机数。(4)格式化与解析日期与时间。
2025-05-02 22:13:07
340
原创 Java基础(常用类1,常用的/类似框架)
Java程序可以方便的处理字符串类型的数据信息,而这都要归功于Java中String类提供的强大功能。不需要全部学习,用到时再学习,但是需要先掌握一些常用的,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。Object类的hashCode()方法为不同的对象返回不同的值,Object类的hashCode值我们可以认为其表示对象的地址。这个方法返回对象的十进制的哈希值。注意:设计类的属性的时候,如果属性是基本数据类型,要使用对应的包装类(避免初始化为非空值)
2025-04-30 17:03:26
953
原创 Java基础(反射)
线程实现方式 4种实现方式 1、继承Thread 2、实现Runnable 3、实现Callable 4、线程池。我们可以通过反射,动态获取类中的属性 并且设置获取对象中的值 也可以获取对应的方法,并且执行方法。线程池 7个参数 核心线程数 最大线程数 存活时间 时间单位 工作队列 线程工厂 回绝策略。线程池 作用:实现线程对象复用的效果,减少开辟线程消耗 1、内存 2、时间。在程序运行阶段可以动态的获取类中定义的属性和方法的一种机制。单例设计模式 饿汉式和懒汉式 双检锁。
2025-04-26 22:15:39
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅