java
文章平均质量分 57
注重java基础原理的知识
qq_27418931
这个作者很懒,什么都没留下…
展开
-
java-springboot-redis-使用教程
redis相关原创 2022-07-03 21:27:09 · 535 阅读 · 1 评论 -
elasticsearch总结
一般需要安装elastic+ elastic-headhead提供前端页面展示数据使用。els是什么lucence实现的分布式搜索引擎.怎么做到的基于lucence。启动流程1、elasticsearch: 本地自己测试,可以修改elasticsearch/bin 目录的 jvm.options中 -xms的参数256m。减少内存的损耗;在els根目录bin目录下执行 elasticsearch.bat可执行文件。(闪退的话在小黑窗执行就可以看到错误)2、elasticserach-he原创 2021-09-20 02:29:46 · 438 阅读 · 0 评论 -
Rabbitmq
1、rabbitmq学习是时候搞一搞消息队列组件了。项目中还是有很多可用的地方。奶奶的搞了一天,终于是安装好了RQ.但是还不是很完善,但是也没有必要了。本机只是做个测试就行。rabbitmq做的事情是应用的解耦。加速接口的相应。它的特点有一对多,一对一,根据路由route key来做不同的转发( 理解起来有点类似condition 条件判断)。几个关键词:broker: 包括exchangeexchangequeueroute key另外消息有保证失败的情况。失败的情况有1、消息不能原创 2021-06-19 12:03:59 · 57 阅读 · 0 评论 -
java基础之string
为何写这篇文章。因为string在开发中用的实在是太多了。对于string为何要设计为常量,在内存中的存储等知识都有点不一样。做个记录,算是自己的一点思考。问题1:string为何设计为不变常量?引用java核心技术作者的原话:java设计者认为string的不可能性带来的共享高效率优于可变的低效率。人话:不可变可以带来字符串的共享。问题2:string如何做到不变?其实并不是完全不可变。先说不可变的原因:final + private修饰的字符数组。可变的原因:字符数组原创 2021-09-11 00:18:10 · 96 阅读 · 0 评论 -
spring设计模式
1、适配器模式spring中的aop和处理http请求的HandlerAdapter。aop中:配置的是adviser增强。需要的是interceptor。spring是根据拦截器链来做增强的。所以需要将配置的advisor(adaptee被适配)进行适配为 interceptor。target为AdvisorAdapter。好处:类似于旧系统的改造。因为老的adviser不能直接用。dispatcher中的handlerAdapter:被适配者为handler(controller),原创 2021-09-10 12:18:04 · 102 阅读 · 0 评论 -
java多线程并发
1、准备学习并发编程,多线程编程,并通过实战线程抓取淘宝商品到数据库中。锁的理解和整理。锁的基本概念:6中状态。创建-运行-阻塞-等待-计时等待-死亡。项目中常用的锁写法。优劣点。ReetransLocksynchronized:底层的实现。监视器monitor 和 对象头。客户端锁定锁带来了性能的问题。不同的场景不用锁会更好。比如数字的设置,使用automic***(Long, Integer)这些类。使用compareAndSet方法,java中很多类都实现了类.原创 2021-06-14 01:05:07 · 60 阅读 · 0 评论 -
java-jenkins线上配置和排错思路(业务层面)
写在前面,参考的这篇文章。https://blog.csdn.net/GitChat/article/details/79019454根据这篇文章的总结:大的排除方向两个:一个是系统的,一个是业务层面。系统方面:从计算机的原理来看,涉及这几个——cpu,内存,磁盘,网络。业务层面:对于java应用来说,gc日志、系统用户自己写的日志。之前自己也大概知道如何排查,但是没有这么的有条理性,也没总结过相关的思路。对于系统层面,暂时不总结。稍微解释下内存free -m中的 buff/c原创 2021-09-06 14:29:39 · 350 阅读 · 0 评论 -
jvm常用命令(未完待续)
看的头大。有了这样一个思维:java中的所有类和对象其实都是存储在jvm堆和方法区中的。这些东西占用了内存。而这些东西是你写的代码。java的一个特点就是gc。垃圾自动回收。所以要了解gc的原理,这样能够写出更好的代码。另外可以配置gc。...原创 2021-07-05 18:55:24 · 97 阅读 · 0 评论 -
jmmjvm流程+细节整理
多线程的东西volitile: 轻量级锁。不满足两个条件的时候需要另外加锁。1、只有一个线程修改当前值2、当前值的唯一性不需要其他的变量参与约束。(很拗口,大概的意思就是当前变量不会受其他值影响)学习下虚拟机底层的原理java内存模型 jmm作用:定义变量访问规则。(变量不包括局部变量和方法参数)jvm内存模型作用:定义了所有的变量如何存储。所以区别简单理解就是:不同的维度。一个是访问,一个是存储。java运行的三大模块:jdk, jvm,java语言本身程序计数器:没有oom,用于字原创 2021-06-16 14:02:27 · 212 阅读 · 0 评论 -
java集合实现原理和应用场景
List:不唯一。 ArrayList:原理:动态数组实现,和数组的差别就在动态两个字。面试比较多的是扩容逻辑。(逻辑有点像分页逻辑,要考虑两头)默认是10,按照原来的容量1.5倍进行扩容,如果不够,那就设置为需要的大小,如果大于最大INT整数,则设置最大值。另外因为实现了RandomAccess接口,要遍历的话for循环的效率最好。【 另外关于删除和新增的效率问题,这里需要特别注意,就是在数组尾部添加数据时,如果不需要扩容,是非常快的,但是可能实际情况...原创 2021-07-25 15:26:28 · 168 阅读 · 0 评论