自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(264)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 类初始化过程与对象创建过程

面试经常遇见,所以记录一下。

2023-03-30 09:55:39 1205 1

原创 java八股系列——Spring Bean的作用域与生命周期

Spring Bean作用域是指在Spring容器中管理的Bean对象的生命周期和可见范围。通过配置Bean的作用域,可以控制Bean的生命周期和可见范围,从而更好地管理和利用Bean对象。注:Global Session是指在整个应用程序中都可以访问和使用的会话对象。关键在于"整个应用程序",因为一个应用可能是部署在多台机器上的,而Global Session是多台机器共享的Session。Global Session可以通过不同的方式实现,例如使用数据库、缓存或分布式存储等。

2023-03-08 14:06:04 1480

原创 java八股系列——SpringMVC从接受请求到完成响应的过程

Spring的MVC框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。在整个过程中,Spring MVC还提供了一些其他的功能,如拦截器、数据绑定、数据验证、异常处理等。这些功能可以帮助开发者更方便地开发Web应用程序。

2023-03-08 10:45:29 1415

原创 java八股系列——spring事务失效场景

AOP其实就是生成bean对象的代理对象。在bean进行创建初始化时, 如果是有事务注解的方法,就会被进行增强,最终形成代理类。在说明事务失效场景之前,需要先介绍一下AOP,因为。是通过AOP实现的。

2023-03-07 21:29:08 700

原创 并发编程——CAS

首先看一个案例:我们开发一个网站,需要对访问量进行统计,用户每发送一次请求,访问量+1,如何实现?我们模拟有100个人同时访问,并且每个人对网站发起10次请求,最后总访问次数应该是1000次。// 总访问量 static int count = 0;// 模拟访问的方法 public static void request() throws InterruptedException {// 模拟耗时5毫秒 TimeUnit . MILLISECONDS . sleep(5);count ++;

2023-03-06 22:21:24 628

原创 java八股系列——依赖注入的方式

依赖注入有三种方式:构造方法注入、setter注入与属性注入。而对于属性注入,还有两种注解方式:@Autowired与@Resource。

2023-03-06 19:13:20 1259

原创 Java八股系列——线程池拒绝策略

当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize时,如果还有任务到来就会采取任务拒绝策略,通常有以下四种策略:CallerRunsPolicy、AbortPolicy(默认策略)、RejectedExecutionException、DiscardPolicy、DiscardOldestPolicy。

2023-03-06 13:45:58 195

原创 并发编程——可见性与有序性

JMM即Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等。

2023-03-05 20:22:14 751

原创 并发编程——ReentrantLock

从Java 5开始,引入了一个高级的处理并发的包,它提供了大量更高级的并发功能,能大大简化多线程程序的编写。我们知道Java语言直接提供了synchronized关键字用于加锁,但这种锁一是很重,二是获取时必须一直等待,没有额外的尝试机制。而包提供的ReentrantLock用于替代synchronized加锁。

2023-03-05 16:03:56 859

原创 Java八股——wait、sleep与park

sleep()、wait()、park()都可以使线程进入等待状态,但是3种方式在使用上和功能上都有些不同。

2023-03-05 11:52:55 862

原创 并发编程——synchronized优化原理

锁优点缺点适用场景偏向锁加锁和解锁不需要额外的消耗,和执行非同步方法比仅存在纳秒级的差距如果线程间存在锁竞争,会带来额外的锁撤销的消耗适用于只有一个线程访问同步块场景轻量级锁竞争的线程不会阻塞,提高了程序的响应速度竞争的线程如果始终得不到锁会使用自旋,消耗CPU追求响应时间,同步块执行速度非常快重量级锁线程竞争不使用自旋,不会消耗CPU线程阻塞,响应时间缓慢追求吞吐量,同步块执行速度较长。

2023-03-04 21:50:33 819

原创 JVM详解——执行引擎

虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM所识别的字节码指令、符号表,以及其他辅助信息。

2023-03-04 00:10:54 453

原创 为了能看到星星,我开源了一片星空——耶瞳星空

星空里闪烁的星星,都寄托着一句话,这句话可以是任何类型的。总之,当我们仰望星空时想说什么,星星里就可以是什么。

2023-03-02 11:48:29 208

原创 ThreadLocal详解

ThreadLocal类能提供线程内部的局部变量。这种变量在多线程环境下访问时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。线程并发:在多线程并发的场景下传递数据:我们可以通过ThreadLocal在同一线程的不同组件中传递公共变量线程隔离:每个线程的变量都是独立的,不会互相影响。

2023-02-28 23:21:01 210

原创 zrender TypeError: “x“ is not a constructor

然后经过大佬指点,这种开发环境没问题但生产环境报错的东西,一般是因为打包的时候被tree-shaking掉了。对了,这个项目已经上线了,也开源了,地址:http://stars.eyescode.top。debug+翻看源码后发现丢失调的是registerPainter方法。

2023-02-26 14:33:32 412

原创 JVM详解——垃圾回收

GC:垃圾收集(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存。不当的回收可能会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。

2023-02-24 11:40:26 713

原创 JVM详解——内存结构

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,具体实现有很多,以下内容如果不额外声明,默认是HotSpot JVM。JVM它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

2023-02-08 10:18:04 3007 1

原创 软件设计与体系结构——结构型模式

JDK代理和CGLIB代理:使用CGLIB实现动态代理,CGLIB底层采用ASM字节码生成框架,使用字节码技术生成代理类,在JDK1.6之前比使用Java反射效率要高。唯一需要注意的是,CGLIB不能对声明为final的类或者方法进行代理,因为CGLIB原理是动态生成被代理类的子类。

2022-12-11 20:24:23 714 1

原创 朴素贝叶斯模型的训练(wdbc数据集)

训练代码如下,我在写的过程中为了让代码逻辑更清晰点,所以损失了一些性能;虽然是多次测试,但测试集并没有随机选取。反正是作业,糊弄过去就行。

2022-12-08 20:08:56 1340

原创 文本分类之朴素贝叶斯算法

数据集如下,有两个特征共250条数据。数据集暂不提供下载。代码如下,人工智能小白,大佬轻喷。

2022-12-08 19:56:49 295

原创 机器学习与数据挖掘——分类与预测模型

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间分类(Classification):分类是找出描述并区分数据类或概念的分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个,以便能便用模型预测类标记未知的对象类。预测(Prediction):识别对象在特定时刻的状态(带有时间参数的求解)分类的步骤(1):建立模型分类的步骤(2):使用模型进行预测分类与预测的案例:分类器评价或比较尺度:保持(holdout):K-次交叉验证(k-fold cross v

2022-12-08 11:53:56 9968

原创 Apriori算法及例题

关联规则挖掘是数据挖掘中最活跃的研究方法之一 。最早是由 Agrawal 等人提出的1993最初提出的动机是针对购物篮分析问题提出的,其目的是为了发现交易数据库中不同商品之间的联系规则。这些规则刻画了顾客购买行为模式,可以用来指导商家科学地安排进货,库存以及货架设计等。Apriori算法是一种挖掘关联规则的频繁项集算法,一种最有影响的挖掘布尔关联规则频繁项集的算法。Apriori是由a priori合并而来的,它的意思是后面的是在前面的基础上推出来的,即先验推导。其核心思想是通过候选集生成和情节的向下封闭检

2022-12-07 17:31:24 4761

原创 软件架构模式

创建软件系统基本结构的原则称为软件体系结构。软件结构由软件元素及其相互关系组成,这些元素起着蓝图的作用,规划了要执行的任务的模式。软件设计团队极大地依赖于这些软件架构模式。应当指出,必须明智地选择软件体系结构,因为一旦实施,就不容易更改。软件架构模式很重要,因为它们是在架构设计中成功构建和测试的最佳解决方案的示例。有经验的开发人员会使用他们的知识和熟悉程度来包含这些模式,而不是在设计时人为或随机创建模式。此外,通过使用这些模式并突出显示它们,他们可以共享知识并教会新开发人员关键的设计策略。

2022-12-02 22:56:29 1046

原创 机器学习与数据挖掘——数据预处理

数据挖掘处理的初始数据集描述了一个极大的总体,对数据的分析只基于样本的一个子集。获得数据的子集后,用它来提供整个数据集的一些信息,这个子集通常叫做估计量,它的质量依赖于所选子集中的元素。取样过程总会造成取样误差,取样误差对所有的方法和策略来讲都是固有的、不可避免的,当子集的规模变大时,取样误差一般会降低。数据归约技术可以用来得到数据集的归约表示,它小得多,但仍接近地保持原数据的完整性。数据清理的基本概念:数据清理一般指对数据通用性的处理,旨在提高数据质量,与分析任务关联不大。

2022-12-02 19:40:25 2647

原创 机器学习与数据挖掘——前言

这是从老师的PPT里面提取出来的,知识点分布比较零散,可能他做PPT的时候也没想那么多。

2022-12-02 18:22:12 1509

原创 搜索技术——群智能

相互作用的相邻个体的集合个体的行为简单,既有竞争又有协作智能化的集体行为(1+1>2)个体间不仅能够交互信息,还能够处理信息,根据信息改变自身行为没有一个集中控制中心,分布式、自组织作为群体协同工作时,展现出非常复杂的行为特征—智能鱼聚集成群可以有效地逃避捕食者,因为任何一只鱼发现异常都可带动整个鱼群逃避蚂蚁成群则有利于寻找食物,因为任何一只蚂蚁发现食物都可带领蚁群来共同搬运和进食。

2022-12-02 15:41:59 2202

原创 搜索技术——模拟退火算法

是模仿自然界退火现象而得,利用了物理中固体物质的退火过程与一般优化问题的相似性,从某一初始温度开始,伴随温度的不断下降,结合概率突跳特性在解空间中随机寻找全局最优解。而模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合一定的概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。退火算法的基本思想:在一定温度下,搜索从一个状态随机地变化到另一个状态;温度越低,物体的能量状态越低,到达足够的低点时,液体开始冷凝与结晶,在结晶状态时,系统的能量状态最低。

2022-12-02 15:17:11 1371

原创 搜索技术——遗传算法

遗传算法(Genetic Algorithm,GA)最早是由美国的John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。

2022-12-02 14:29:02 3422

原创 字节跳动后端面经

自我介绍聊聊之前实习做的项目聊聊简历里自己的项目谈谈HashMap的结构Hashtable与HashMap的区别ConcurrentHashMap的原理线程的生命周期线程池的设计RabbitMQ与Kafka的区别AMQP的消息模型delete,truncate,drop区别脏读、不可重复读、幻读数据库的MVCC然后是两道算法题。

2022-11-30 15:33:17 526

原创 搜索技术——盲目与启发

搜索是人工智能中的一个基本问题,并与推理密切相关。搜索策略的优劣将直接影响到智能系统的性能与推理效率。

2022-11-24 15:57:24 5786

原创 软件需求分析——需求工程过程

需求工程过程的目的:介绍为软件加强型系统中的复杂软件设计的需求工程过程,涉及。主要关注点:需求工程中要做些什么。过程:一组活动的有序集合。过程模型:过程的简化描述。需求验证过程:输入与输出。需求抽取过程的关键活动。

2022-11-19 18:49:09 2362

原创 软件需求分析——需求的理论基础

共享现象:软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对问题域中的某些部分的具有模拟特性。问题域中的某些信息能够和模型中的信息建立映射关系,这些通过映射建立的共同知识,就是问题域和解系统之间的共享现象。软件加强型系统:泛指由计算机技术支持的互相联系着的一组人类活动组成的系统。从问题域、需求和规格说明的关系看需求工程:设描述明确的问题域特性为E,定义良好的系统行为为S,预期的需求为R,规格说明:规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。

2022-11-18 22:08:36 1792

原创 八股系列——Java基础

序列化是⼀种将对象转换成字节序列的过程,用于解决在对对象流进行读写操作时所引发的问题。序列化可以将对象的状态写在流里进行网络传输,或者保存到文件、数据库等系统里,并在需要的时候把该流读取出来重新构造成⼀个相同的对象。在泛型使用过程中,操作的数据类型被指定为⼀个参数,这种参数类型在类中称为泛型类、接口中称为泛型接口和方法中称为泛型方法。Java 编译器生成的字节码是不包涵泛型信息的,泛型类型信息将在编译处理是被擦除,这个过程被称为泛型擦除。29.在 Java 中定义⼀个不做事且没有参数的构造方法的作用。

2022-11-14 15:40:47 934

原创 Java八股系列——Java数据结构

Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。尽管如此,它还是使用在诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用。Enumeration只是接口,具体使用还得靠实现类,下面是使用示例。

2022-11-14 15:08:29 140

原创 云南白药Java后端面经

从用户发请求到服务响应数据的过程中,SpringMVC做了什么。MyBatis怎么使用注解赋予接口功能的。一个接口多个实现类怎么指定实现类注入。依赖注入为什么注入接口而不是实现类。HashSet如何保证元素不重复。谈项目,项目的难点以及解决方案。HashMap的线程安全问题。voliate关键字的作用。谈谈Java三大特性。一道sql分组查询题。对JDK线程池的使用。

2022-11-14 15:06:59 3001 5

原创 现代企业管理笔记——企业概论

现代企业制度主要包括企业组织制度、法人制度和科学管理制度。

2022-11-12 12:28:51 498

转载 数据库MVCC详解

MVCC指的就是在使用RC、RR这两种隔离级别的事务在执行普通的SELECT操作时访问记录的版本链的过程,这样可以使不同事务的读-写、写-写操作并发执行,从而提升系统性能。

2022-11-11 12:42:51 390

原创 delete,truncate,drop区别

今天面试遇到的,不会,感觉很尴尬,就记一下。

2022-11-10 23:06:23 127

转载 Redis大key问题

大key有什么影响:我们都知道,redis的一个典型特征就是:核心工作线程是单线程。单线程中请求任务的处理是串行的,前面完不成,后面处理不了。大key是如何产生的:大key的产生往往是业务方设计不合理,没有预见value的动态增长问题。所谓的大key问题是某个key的value比较大,所以本质上是大value问题。

2022-11-10 10:13:39 241

原创 现代企业管理笔记——管理理论新进展

现实中一个企业不可能只有显性知识或隐性知识。企业在实施知识管理策略时,应该根据自己企业的主要特点和该时期的战略目标、竞争策略,识别阻碍自身知识增长的主要障碍,选择一种策略作为在该时期企业的主要知识管理策略。要想充分有效地利用知识,企业在选择知识管理策略时应有侧重,建议的比例约是80%对20%。也就是80%的知识采用一种策略进行管理,其他20%采用另一种策略。企业如果试图同时按相同程度采用两种管理策略,结果往往是两者都不成功。

2022-11-06 23:17:34 467

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除