百天打卡
圣人以心束行 ,君子以行束心
七月份打卡记录
第1天打卡 : 2025-07-01
Java人也能轻松上手CSharp:面向对象五大核心全对比
🧠 总结一句话:
C# 的面向对象就像 Java 的面向对象,几乎一模一样,只是语法和一些细节稍微不同。
🔍 通俗对比讲解1. 类和对象(Class & Object)✅ C#:123456789101112public class Person { public string Name { get; set; } public void SayHello() { Console.WriteLine("你好,我是 " + Name); }}// 创建对象Person p = new Person();p.Name = "小明";p.SayHello();
🔄 Java 对比:123456789101112public class Person { public String name; public void sayHello() { System.out.println("你好, ...
Java 面试题整理
基础篇1、 Java 语言有哪些特点1、简单易学、有丰富的类库
2、面向对象( Java 最重要的特性,让程序耦合度更低,内聚性更高)
3、与平台无关性( JVM 是 Java 跨平台使用的根本)
4、可靠安全
5、支持多线程
2、面向对象和面向过程的区别面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发
面向对象:是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有 封装、继承、多态 的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。
3 、八种基本数据类型的大小,以及他们的封装类
基本类型
大小(字节)
默认值
封装类
byte
1
( byte )0
Byte
short
2
( short )0
Short
int
4
0
Integer
long
8
0 L
Long
float
4
0.0 f
Float
...
SimpleMemory主题备份
主题界面
侧边栏公告1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981 ...
面试可能会被问的问题
记录下在面试回答过程中可能会被问到的问题 ,防止自己答不上来
你来说下MQ的异步处理机制MQ的异步处理机制,说白了就是排队干活。比如用户下单后,系统不需要立刻把所有事情都做完(比如发短信、改库存、记日志),而是先把任务写成一条消息扔进队列里,然后慢慢处理。这样做的好处是:
速度快:用户下单完就返回成功,不用等着后面的事做完;
不丢活:消息会保存在MQ里,不会因为系统忙或出错而丢失任务;
抗高峰:大促时订单暴涨,MQ可以先收着消息,后端慢慢消化;
解耦合:谁需要处理这个消息,自己去MQ取就行,不依赖主流程。常见的MQ工具有RabbitMQ、Kafka等,就像不同的快递公司,各有各的优势。总之,MQ异步机制就是让系统更高效、稳定、可扩展的一种常用手段。谢谢!
简单说下什么是MQ分布式事务好的,面试官:MQ分布式事务,简单来说就是:在多个服务之间做业务操作的同时,保证消息发送和业务数据一致性的一种机制。比如用户下单扣库存,同时要发一条消息通知其他系统。如果只用普通MQ,可能会出现:库存扣了,但消息没发出去;或者消息发了,但库存没扣成功,这就乱套了。所以引入了分布式事务机制,确保这两件 ...
你一直在逃避成功
你的惯性思维仍然是“我还需要成长,需要沉淀,才能真正迎来改变”有时候你以为你是在“沉淀自己”,但真相可能是一你在逃避马上改变的那个机会。你说你想成长,你说你还不够好、还没准备好、再等等…但你有没有想过,你以为的“准备期”是不是早就过期了?你嘴上说自己在等合适时机,其实你在等一个能替你下决定的外力。你一直逃避,命运就会出同一道题荣格说过“你生命中出现的问题,并不是为了打败你而是为了唤醒你。任何你不曾彻底接纳的困境,都将以另一种形式重现。”你需要一个一个的解决你遇到的问题,不管是学习,恋爱,交友,成长,工作,和父母的关系这些问题如果你一直不解决一直逃避避,那它就会一直缠着你。
人生就是一个回旋镖,出来混迟早要还的,与其花时间内耗,不如直接行动。想全是问题,做才有答案。当你拥有解决问题的能力,你会发现所有人的出现,所有事发生都是为了激发你升级。放下你的浮躁,放下你的懒惰,放下你的三分钟热度,放空你禁不住诱惑的大脑,放开你容易被任何事物吸引的眼睛,闭上你什么都想聊两句八卦的嘴巴,静下心来好好做你该做的事,在尘埃落定之前,不要让盲目的自我感动,遮蔽掉你对自我的正确认知。
基础不好就拼命往死里学, ...
起来 别躺着 赶紧行动起来
其实让自己忙起来的时候,时间是过的最快的也是过得最充实的。人啊大多数时候都是在想象,很少人会马上付诸行动,特别是现在高度信息化的社会,其实人是越来越懒,越来越没有耐心,越来越静不下心来。而且越是这样,越发感到空虚,越容易焦虑,越容易抑郁。所以你会发现,现在人大多数时候心理上或多或少都有些问题,自己有时候还不知道,以为是正常的,结果越陷越深,无法自拔。
心理上不管焦虑、迷茫、恐慌、兴奋、抑郁等等,本质上都是自我在想象,最好的方法就是让自己动起来,哪怕走出办公室,走出家门去小区,去公园溜达几圈,看看外面的天空,呼吸一下外面的空气,也比一直躺着或者一直拿着手机不断的刷小视频墙,能站着绝不躺着,能走动绝不坐着,一定要想尽一切办法让自己动起来。强制自己俩小时不翻看手机,让自己手写写字,写写日记,哪怕就几行字,认认真真工工整整地写;可以做几组简单的运动;可以哼唧几首自己喜欢的歌;不管干啥,总得让自己干点啥,行动是自洽,自愈的第一步,很多人不知道,人之所以有这样那样的心理问题,是因为没让自己动起来,忙起来,不信你试试。
当你动起来了,忙起来,你会发现时间一下子就过去了,也跟自己过去一直停留在脑子里的 ...
面试题总结8
自我介绍在实习过程中的收获是什么对于 IO 通信/IO 多路复用模型 有了解吗IO 多路复用的话,一开始 TCP 的连接是一对一的通信。但一对一的通信效率并不高,所以就对他做了一些改进,比如多进程或多线程:就相当于 一个 TCP 请求对应一个进程,虽然连接数上来了,但是并发量达不到很大,而且服务器的负载也很高。从整体来看,服务器的运行瓶颈主要在于 IO,CPU 的运行效率比 IO 快的多。所以后面就诞生了 IO 多路复用:用一个单线程同时去处理多个 IO 的请求,而且单线程相比于多线程的一个好处就是不存在线程安全的问题,减少了线程的创建和销毁开销。通俗的讲 就好比我们去点餐,这里面分为两步,① 用户思考要吃什么,也就是等待数据 ② 想好了,开始点餐,就是读取数据。服务员在用户点单的过程中是阻塞的,其他用户要等我们点完单后才能叫服务员去点单。解决方案有两种:一、增加服务员(多线程),二、不排队,那个用户想好吃什么了,服务员在去那里点单。那么问题来了,用户进程如何知道内核中的数据是否就绪呢?也就是说 IO 多路复用是如何实现的?在这里面有一个定义 FD 文件描述符 他关联了 ...
面试题总结7
面试题总结7自我介绍Redis 和 Mysql 数据库有什么不一样Redis 怎么保证数据持久性一个应用面对高并发怎么去保护如何创建索引、索引的好处是什么反问
面试题总结6
介绍下项目对于转语言你怎么看,是 倾向做后端还是客户端还是说无所谓,因为应届生决定未来技术栈是很庞杂的,不可能几年所有的东西都学完,所以现在决定了方向至少是 3-5 年的事情,除非你干了一年以后觉得不行立马转行因为我的专业是软件工程嘛,主学的是 Java 开发 做了很多相关准备所以基础也比较扎实。但我对客户端也源于去了解和学习,因为作为应届生来说还是很渴望能接触到新的领域,我认为自己的学习能力还是很强的,能快速适应不用的技术栈。所以强调的还是更看重在公司能学习到新东西得到成长这是最重要的。无论是后端还是客户端,只要有发展的机会都会全力以赴。我也清楚一旦做出了某一个选择就要投如精力学习,我可以讲这 3-5 年看作是提升技能累计经验的时期,既然选择了肯定是要做出成果,可以拓宽视野对自己还是有帮助的。
讲一下虚拟机里面关于废弃对象的理解,什么节点可以充当 GCRoot废弃对象属于 JVM 中执行引擎这一部分处理的,对象都是在堆中生成对的内存是有限的,不可能无限的生产对象,那他就得有一个对象回收的机制但是得区分哪些对象是可以回收哪些是不能回收,虚拟机有两种方法:引用计数法,如果对象被引用那虚拟 ...
面试题总结5
讲一下 Java 的集合从两方面去讲,单例集合、双列集合,单列集合顶层接口 Collection,下面的子接口 Set、List、Queue,最常用的集合实现类 ArrayList、LinkedList。这两个的对比:前者动态数组、能随机查找、时间复杂度 O1、扩容机制、创建时默认大小为 10 但不会分配内存空间第一个元素插入后才会实际分配内存空间、方法 add、set、get、remove,后者双向链表、顺序查找、时间复杂度 On、方法 add、getFirst、getLast、remove;双列集合顶层接口 Map,最常用的实现就是 HashMap,又可分为 1.7 和 1.8 来讲:1.7 使用数组+链表实现,数组存储哈希桶,链表存元素;数组大小为 2 的倍数原因内部使用取模运算也叫位运算 2 倍方便计算,方法:get、put、remove;1.8 使用数组+链表+红黑树实现,防止链过长导致的查询缓慢问题。插入元素后检查链表长度是否大于 8,是则先扩容数组,然后再讲链表树化成红黑树。方法:put、resize、get。
HashMap 的线程安全吗?怎么实现线程安全Concurr ...
面试题总结4
自我介绍一下对 node.js 有了解吗node 指网络节点,js 指 JavaScript,综合就是开发者使用 JavaScript 编写服务端应用程序。是一个服务端运行的环境
Docker 是什么?常用指令有哪些Docker 是一个可以将程序环境依赖打包成镜像的一个容器,容器中的各个应用互不影响。
他是一个 CS 架构:客户端发送指令,服务端:接收处理指令、管理镜像容器。镜像操作的指令:docker pull 从 docker 拉取镜像、docker save 将镜像保存到文件、docker rmi 删除镜像、docker load 加载镜像文件容器操作的指令:docker run 运行容器、docker exec 进入容器、exit 退出容器、rm 删除容器
介绍一下 rabbitMQRabbitMQ 是一种常见的消息队列中间件,是两个系统之间进行通讯的一种方式。优点:服务解耦、一步通讯、流量消峰。缺点:可用性降低、复杂度提高。还有其他的一些消息队列实现:最简单的消息队列 Redis 的 Stream,功能最全面的消息队列 RocketMQ、专注于大数据处理的 kafka。
说一 ...
面试题总结3
先做一个自我介绍面试官您好,我叫XXX,我是25界软件工程的一个应届毕业生,在校期间自学了一套Java的常用开发技术栈,包括Java基础、集合、spring、springboot、并发变编程JUC、虚拟机JVM、关系型数据库MySQ、非关系型数据库redis、以及消息队列中间件rabbitMQ、rocketMQ、这些都有学习,这大概就是我的一些情况了。
常见的集合有哪些常见的集合的话,可以分为单例集合Collection和双列集合Map单列集合有又可分为set、list、队列queue。往里细分set又可以分为TreeSet、hashset、linkedHashset,list可以分为arraylist、vector、linkedlist,queue可以分为ArrayDeque、LinkedList、priorityQueue。Map可以分为TreeMap、HashMap、LinkedHashMap。
Map 的 key 可以为 null 吗在 HashMap 中,允许 key 为 null,原因是 HashMap 对 null 键做了特殊处理,将他的哈希值固定为 0.
final 关 ...
面试题总结2
你对 Spring 事务的注解了解吗?Spring 事务的话就是基于数据库连接和 AOP 机制实现的,首先对于使用了 @Transactional 注解的 Bean,Spring 会给他创建一个代理对象作为 Bean。当我们调用代理对象上的方法的时候,会先判断方法有没有加事务注解,如果加了,那么事务管理器就会建立一个数据库连接。并且修改连数据库连接的 autocommit 为 false 禁止连接的自动提交。然后执行方法,方法中会执行 sql 语句。当方法执行完毕后,如果没有出现异常则提交事务。如果出现了异常,并且异常被捕获但没有跑出的话事务会回滚,如果捕获后抛出则事务就会提交。
他和 MySQL 的事务有什么区别spring 的事务可以管理多个数据源,MySQL 的事务管理数据库的操作无法跨越多个数据库。spring 可以通过声明式或者编译式来显示的添加注解,mysql 是通过 sql 语句的 begin、commit、rollback 或者自动提交模式 autocommmit 来管理事务。Spring 事务可以有传播行为,解决了业务层方法之间相互调用的问题:例如当事务方法被另一个事 ...