- 博客(35)
- 收藏
- 关注
原创 两种动态代理比较(补充),进程通信方式总结
总结来说,CGLib动态代理是在运行时创建子类代理的实例,通过继承目标类来生成代理对象,并在拦截器中进行方法拦截和增强。总结来说,JDK动态代理是在运行时创建接口的代理实例,通过实现目标接口的代理类来生成代理对象,并在拦截器中进行方法拦截和增强。在运行时,JDK动态代理会动态生成一个实现了目标接口的代理类,并在代理类中重写了目标接口中的方法。当调用代理对象的方法时,实际上是调用了代理类中重写的方法,然后在拦截器中进行拦截操作。方法是在拦截器中实现的,用于拦截目标方法的调用,并在拦截器中进行自定义的操作。
2023-09-03 21:01:07 226
原创 锁( ReentrantLock,Synchronized)
如果锁已经被其他线程占用,则该线程会进入阻塞状态,直到锁被释放。无锁操作是指在并发编程中,通过使用特定的算法和数据结构,避免使用传统的锁机制(如互斥锁、读写锁等),从而实现对共享资源的并发访问而无需阻塞或等待其他线程释放锁的操作。synchronized 是基于悲观锁的思想:最悲观的估计,得防着其它线程来修改共享变量,我上了锁你们都别想改,我改完了解开锁,你们才有机会。ABA问题:由于无锁操作不需要获取锁,可能会导致ABA问题,即一个值被修改为另一个值,然后再被修改回原来的值,导致线程无法察觉到值的变化。
2023-09-02 17:08:25 512
原创 Spring理解,重要概念及图解,2023秋招spring常见八股文
pring的两大核心:IoC和AOP;IOC容器:BeanFactory和ApplicationContext;DI依赖注入;AOP和动态代理关联;spring中bean的安全问题;事务;Spring事务失效的场景;spring中bean的生命周期
2023-09-01 21:21:20 537
原创 2023秋招得物面经 8.31总结
1.数据结构中有哪些树 2.OSI7层网络,每一层具体做什么的 3.HTTP和HTTPS的区别 4.有哪些方式做多线程开发,需要注意哪些点 5.线程用一次就创建一次,然后销毁,怎么解决 6.IOC和DI 7.Set 怎么去保证去重的 8.Set 里面保存的是一个自定义的对象的话,对象应该有什么动作? 9.Redolog和Binlog区别
2023-08-31 21:07:24 3266 3
原创 阻塞非阻塞IO(BIO和NIO),IO多路复用
NIO(New Input/Output)和BIO(Blocking Input/Output)是Java中用于处理输入输出的两种不同的模型。
2023-08-30 19:59:18 641
原创 ThreadLocal的实现原理
ThreadLocal是多线程中对于解决线程安全的一个操作类,它会为每个线程都分配一个独立的线程副本从而解决了变量并发访问冲突的问题。ThreadLocal 同时实现了线程内的资源共享
2023-08-30 11:27:34 98
原创 <免费>搜狐畅游JAVA校招面经(往年)
涉及redis,mysql,hashmap。有两个线程A和B,A希望插入一个key-value到HashMap中,首先会通过A的key得到桶的索引坐标,然后获取该桶的链表头结点,线程A的时间片用完,而此时B线程被调用执行,和线程A一样执行,只不过线程B成功的将数据插入到桶里面。假设线程A插入时候计算的坐标和B线程要插入的索引坐标是一致的,那么当B线程成功插入以后,线程A再次被调用运行的时候,它依然持有原来的链表头,但是它对B线程插入的过程一无所知,那么线程
2023-08-01 21:10:44 472
原创 2023秋招面试大厂高频面试题总结,必备八股文(Java基础,Redis,集合),自测day1
大厂面试题举例。Redis常见问题,缓存雪崩,缓存击穿,缓存穿透,持久化机制等;“==”与equals,hashmap,set等集合类八股文。秋招面试必背八股,自测记忆。
2023-07-29 20:21:38 188 1
原创 力扣秋招算法题进大厂必备,小白入门,day1
2023秋招进大厂,算法题准备,知识点的总结,更重要的是解题思路,还涉及到java基础八股文,多多重复,百炼成钢。
2023-07-29 08:20:55 109
原创 web实验二
【实验目的与要求】1.理解网页内容和表现的分离;2.熟悉CSS的基本语法和格式;3.了解页面常用布局结构;4. 学会用CSS+DIV布局制作一个博客页面。【实验内容】结合HTML5的语义化标签,使用DIV+CSS网页布局技术设计一个个人博客页面。要求:(1)header标签定义页面头部区;nav标签定义导航区;div标签定义中部的内容区块,其中左边用section标签嵌套两篇article文章区,每篇文章区应含有头部的标题区、段落内容和页脚;右边用aside设计侧栏;底部用foo
2022-04-25 18:01:06 581
原创 web实验一
【实验目的与要求】1.掌握常用的HTML语言标记;2.利用文本编辑器建立HTML文档,制作简单表单页面。【实验内容】编写一个能输出如下图所示界面的HTML文件。要求:(1)校验输入的E-mail的格式:用户名@域名。(2)校验输入的电话格式:11位数字组成。(3)性别“女”为默认选项(4)年龄的列表选项有:20以下、20、21、22、23、24、25、25以上,其中“20以下”为默认选项。{ 页面实现(参考) }:<html><head &..
2022-04-25 17:52:55 986
原创 educoder——面向对象程序设计java——实验实训——实验四 - 多线程基础
第1关:创建线程编程要求请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: 使用继承Thread类的方式创建一个名为 ThreadClassOne 的类,重写的run方法需要实现输出0-10之间的奇数,输出结果如下: 1 3 5 7 9; 使用实现Runnable接口的方式创建一个名为ThreadClassTwo的类,重写run方法,编写start方法,run方法需要实现打印0-10之间的偶数,输出结果如下: 0 2 4 6 8 10
2022-01-27 13:30:16 3406
原创 educoder——面向对象程序设计java——实验实训——实验三 - 集合框架
第1关:ArrayList集合的增删改查编程要求请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: 删除集合的第一个和最后一个元素; 添加两个字符串:hello,educoder至集合中; 修改集合的第三个元素,改为:list; 输出集合中所有的元素。 测试说明补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。测试输入:4 张三 李四 王五 赵六预期输出:
2022-01-27 13:28:55 2439 2
原创 educoder——面向对象程序设计java——实验实训——实验二 - 面向对象
第1关:通过任务一编程要求 声明一个抽象类Pet,封装属性name和sex,声明一个带有两个参数的构造函数,声明抽象方法void talk()和void eat(); 声明一个Dog类继承自Pet,封装属性color,声明带有三个参数的构造函数,复写talk()和eat()方法; 声明一个Cat类继承自Pet,封装属性weight,声明带有三个参数的构造函数,复写talk()和eat()方法; 编写测试类,通过有参构造函数实例化Dog类对象,调用talk()方法和ea
2022-01-27 13:25:20 3554
原创 educoder——面向对象程序设计java——实验实训——实验一 - 语言基础
第1关:Java 循环结构之 for 循环编程要求是不是会用了呢?来试试吧,在右侧编辑器Begin-End中填充代码,用for循环实现一个自然数N的阶乘。 例如:给定一个数数N=5,那么它的阶乘为1*2*3*4*5。 效果图如下:测试说明平台会对你编写的代码进行测试,若与预期输出一致,则算通关。第2关:for循环的进阶使用-嵌套循环编程要求请在右侧编辑器Begin-End中填充代码,实现两个三角形的打印输出,效果图如下:测试说明平台会对你编...
2022-01-27 13:19:10 3425
原创 educoder——面向对象程序设计java——第三阶段-Java 高级特性——Java 多线程基础1
第1关:创建线程编程要求请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: 使用继承Thread类的方式创建一个名为 ThreadClassOne 的类,重写的run方法需要实现输出0-10之间的奇数,输出结果如下: 1 3 5 7 9; 使用实现Runnable接口的方式创建一个名为ThreadClassTwo的类,重写run方法,编写start方法,run方法需要实现打印0-10之间的偶数,输出结果如下: 0 2 4 6 8 10.
2022-01-27 13:11:21 952
原创 educoder——面向对象程序设计java——第三阶段-Java 高级特性——Java 集合框架
第1关:集合的基本使用编程要求请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,创建ArrayList集合并且向集合中添加数据,具体要求如下: 添加字符串类型数据:https:www.educoder.net; 添加double类型数据:2018.423; 在方法中返回你创建的集合对象。 测试说明补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。预期输出: https:www.educod
2022-01-27 13:09:33 4524 1
原创 educoder——面向对象程序设计java——第二阶段Java面向对象——思政-1 : 科技-->人工智能
第1关:AI与机器学习 1、 数据科学在组织中有很多方面的应用。人们在管理数据科学时,我们将数据科学分解为三种能力,分别是(ABD) A、 了解商业 B、 对数据科学的管理 C、 产品数据科学 D、 研发能力 2、 数据科学开始兴起的时候,该学科主要涉及(ABC) A、 敏捷计算 B、 预测 C、 数据建模 D、 机器学习 第2关:图灵模型 1、 图灵机的核心在于(A) A、 读写头的状态 B、 图灵机的.
2022-01-27 12:59:46 1364
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(七) - 文件类
第1关:创建文件编程要求好了,到你啦,在编辑器中Begin-End中填写代码实现,在src/output目录下创建hello.txt,test.txt文件。需要先创建test.txt,后创建hello.txt。注意:文件操作有异常需要抛出。测试说明平台会对你编写的代码进行测试,若与预期输出一致,则算通关。第2关:文件的常用操作编程要求你也试试吧,在编辑器Begin-End中编写代码,实现文件夹下所有文件信息的列出,删除指定文件夹,在文件夹下创建文件,具体要求.
2022-01-27 12:51:15 1409
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(六) - Java中的异常
第1关:Java 中的异常处理机制 1、 在Java中,源文件Test.java中包含如下代码段,则程序编译运行结果是(B) public class HelloWorld{ public static void main(String[] args){ System.out.print(“HelloWorld!”); } } A、 输出:HelloWorld! B、 编译出错,提示“公有类HelloWorld必须在HelloWorld.java文件中定义
2022-01-27 12:41:07 2128
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(五)- 常用类
第1关:Object类编程要求请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: Demo类和Person类已经写好,在测试类中创建Demo类对象d1,传入输入值num1, d1调用toString方法并打印输出该值; 创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址); 创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址); 测试说明补充完代
2022-01-27 12:32:19 5227
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(四)- 包装类
第1关:基本数据类型和包装类的转换测试说明请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:完成基本数据类型与包装类之间的相互转换,即装箱与拆箱。编程要求补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。预期输出:装箱后的结果为:66.6和66.6 拆箱结果为:88.88和88.88第2关:包装类转换成其他数据类型编程要求请仔细阅读右侧代码,根据方法内的提示,在Beg..
2022-01-22 17:15:04 1149
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(三)- 综合练习
第1关:通关任务一编程要求 声明一个抽象类Pet,封装属性name和sex,声明一个带有两个参数的构造函数,声明抽象方法void talk()和void eat(); 声明一个Dog类继承自Pet,封装属性color,声明带有三个参数的构造函数,复写talk()和eat()方法; 声明一个Cat类继承自Pet,封装属性weight,声明带有三个参数的构造函数,复写talk()和eat()方法; 编写测试类,通过有参构造函数实例化Dog类对象,调用talk()方法和ea
2022-01-22 17:08:10 2005
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(二) - 封装、继承和多态
第1关:什么是封装,如何使用封装编程要求声明一个Person类,私有化属性name和age,并将字段封装起来; 在Person类中定义一个talk()方法,打印姓名和年龄信息; 在main方法中声明并实例化一Person对象p,给p中的属性赋值,调用talk()方法打印我是:张三,今年:18岁。测试说明测试输入: 无 预期输出: 我是:张三,今年:18岁第2关:什么是继承,怎样使用继承编程要求声明一个Animal类,将属性name和age封装起来,提供对外的公共访.
2022-01-22 16:55:21 7234
原创 educoder——面向对象程序设计java——第二阶段Java面向对象(一) - 类与对象
第1关:什么是类,如何创建类编程要求 声明一个Dog类,给Dog类添加三个String类型的属性,分别是name,color,variety ,定义两个方法,分别是,eat,run。 在main方法中在Begin-End区域创建一个名为wuhuarou的Dog对象,并设置name为五花肉,color为棕色,variety为阿拉斯加。 使得调用wuhuarou对象的eat方法能输出啃骨头,调用run方法能输出叼着骨头跑。 具体输出要求请看测试说明。测试说明测试输入:无
2022-01-22 16:34:56 7285
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(十)- 方法的使用
第1关:如何定义方法编程要求根据提示,在右侧编辑器Begin-End处补充代码,定义一个方法名为hello的方法用来和老师打招呼; 调用此方法输出如下结果:hello teacher!测试说明平台会对你编写的代码进行测试,若与预期输出相同,则算通关。第2关:掌握无参有返回值方法的调用编程要求请根据任务描述 ,在编辑器Begin-End中定义一个名为 calcAvg 的方法,用来计算两门课程成绩的平均值,并返回结果。测试说明程序会对你编写的代码进行测试:需要..
2022-01-21 16:37:15 15934
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(九)- 数组进阶
第1关:数组的复制编程要求在右侧编辑器Begin-End中填充代码,将arr1数组中的数据全部复制给arr2数组,最后输出arr2中所有的数据。测试说明我会对你的程序进行测试,如下: 测试输入:1,3,12 预期输出: 1 3 12 测试输入:2,13,11 预期输出: 2 13 11第2关:数组中元素的查找编程要求在右侧编辑器Begin-end处填充代码,实现在数组中查找指定字符串位置的功能。测试说明测试输入:张三 预期输出:张三在数组的第1个位置测试输入:张富
2022-01-21 16:25:22 2723
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(八)- 数组基础
第1关:初识数组编程要求在编辑器Begin-End中定义一个int类型数组 scores,录入三个值,91,88,60,最后输出数组中的三个值,效果如图:测试说明平台会对你编写的代码进行测试,若与预期输出一致,则算通关。第2关:数组的使用编程要求使用本关所学知识,根据右侧编辑器Begin-End中提示补充代码,赋值并输出数组中的信息。测试说明我会对你的程序测试两次: 输入:3 预期输出: 数组中的第一个数据为:张三 数组中的第二个数据为:张无忌 数组中的第三个数.
2022-01-21 16:03:58 7816
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(七)- String类
第1关:length()方法与compareTo()方法的使用 - 花名册编程要求本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下: roster1变量为之前的全班花名册,roster2变量为小明统计的全班花名册。 你将被要求输出3行: 第一行为roster1的长度; 第二行为roster2的长度; 第三行为两个花名册是否相同,若相同,输出“相同”;反之输出“不相同”(若姓名顺序不同,也算作不相同)。 评
2022-01-21 10:07:27 3877
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(五)- 循环结构基础
第1关:Java循环结构之while循环编程要求在右侧编辑器中填充代码,使程序能输出如下效果:测试说明如果你写了一个死循环,评测的时候会导致评测超时,如果右侧一直在加载,说明评测超时了,这个时候请刷新你的页面。第2关:Java循环结构之while循环练习编程要求在右侧编辑器Begin-End中填充代码,使用while循环实现一个1到100的整数相加,并输出相加后的结果。效果图如下:测试说明平台会对你编写的代码进行测试,若与预期输出一致,则算通关。第..
2022-01-21 09:59:10 2480
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(四)- 分支结构
第1关:Java分支结构之 if...else编程要求为了完成判断学生成绩等级的任务,在右侧编辑器Begin-End处,需要你定义一个变量score用来接收程序输入的成绩数据,然后判断score变量的值,输出相应结果,你编写的程序要能根据不同的分数输出不同的等级,规则如下:85-100分: 优,非常棒! 85分以下: 良,下次加油!效果如下:提示:在平台不会有显示从键盘录入的值,即不会显示91,但是在本地会显示,平台中键盘录入的值在测试输入中。测试说明程序会对你编写的代码
2022-01-20 17:02:06 2499
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(三)- 运算符和表达式
1.本章节你将学习Java中的运算符和表达式是什么。2.本章节你将会掌握对两个操作数进行简单的算数运算。3.本章节你将掌握Java当中最基本的赋值运算。4.本章节你将掌握基本的关系运算符。5.本章节你将掌握基本的逻辑运算符。6.本章节你将掌握Java中的三元运算符。第1关:算数运算符编程要求定义两个变量a和b,然后使用上一章节学到的扫描仪(Scanner)获取程序输入的数据并赋值给a,b变量,使程序能输出如下效果:测试说明我会对你编写的代码进行若干次测试: 第..
2022-01-20 15:27:57 2215 1
原创 educoder——面向对象程序设计java——第一阶段Java语言基础(二)- 变量与数据类型
第1关:变量与常量编程要求请在编辑器Begin-End中定义一个名为 love 的变量,并且给变量赋值www.educoder.net,然后输出,要求使用换行输出语句。 程序运行结果:www.educoder.net思考题答案测试说明平台会对你编写的代码进行测试,若与预期输出一致,则算通关。第2关:变量的使用编程要求在编辑器第6行中添加代码定义love变量并且赋初值为 我喜欢在educoder上学习在11行将userName的值改成李四。 运行结果:.
2022-01-20 15:15:24 4566 2
原创 educoder——面向对象程序设计java——第一阶段java语言基础(一)——java初体验
第1关:Java第一课编程要求是否能独立的写出一个Java程序了呢?在右侧编辑器中编写代码输出如下结果:第2关:Java入门测试题 1、 Java源代码文件的扩展名为( C) A、 .txt B、 .class C、 .java D、 .doc 2、 在控制台显示消息的语句正确的是( C) A、 System.out.println(我是一个Java程序员了!); B、 System.Out.Println("我是一个Ja.
2022-01-19 12:21:45 3892
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人