- 博客(19)
- 收藏
- 关注
原创 MySQL高级-MVCC(超详细整理)
当前读就像select lock in share mode(共享锁);update,insert,delete(排他锁);这些操作都是一种当前读,为什么叫当前读?因为它读取的记录都是目前数据库中最新的版本,读取时还要保证其它并发事务不能修改当前记录,所以会对读取数据加锁。快照读像不加锁的select操作就是快照读,即不加锁的非阻塞读,快照读的前提是隔离级别不是串行级别串行级别下的快照读会退化成当前读。之所以出现快照读的情况,是基于提高并发性能的考虑,快照读的实现是基于多版本并发控制(MVCC)。
2023-10-26 13:25:58
97
原创 JVM调优经验分享
为了能更好地适应不同程序的内存状况,虚拟机并不总是要求对象的年龄必须达到MaxTenuringThreshold才能晋升老年代,如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
2023-10-26 00:06:13
66
原创 JVM启动参数的类别及使用
java.lang.OutOfMemoryError相信很多开发人员都用到过,这个主要就是JVM参数没有配好引起的,但是这种错误又分两种:java.lang.OutOfMemoryError:Javaheapspace和java.lang.OutOfMemoryError:PermGenspace,其中前者是有关堆内存的内存溢出,可以同过配置-Xms和-Xmx参数来设置,而后者是有关永久域的内存溢出,可以通过配置-XX:MaxPermSize来设置。一旦对象经历了一定数量的垃圾收集循环后,便进入旧域。
2023-10-18 03:06:53
60
1
原创 JVM中FGC和YGC分析
堆内存之所以采用分代结构,是考虑到绝大部分对象都是短生命周期的,这样不同生命周期的对象可放在不同的区域中,然后针对新生代和老年代采用不同的垃圾回收算法,从而使得GC效率最高。4,程序BUG导致动态生成了很多新类,使得 Metaspace 不断被占用,先引发FGC,最后导致OOM. 代码中显式调用了gc方法,包括自己的代码甚至框架中的代码。3,程序频繁生成一些长生命周期的对象,当这些对象的存活年龄超过分代年龄时便会进入老年代,最后引发FGC. (即本文中的案例)YGC次数:太频繁,会降低服务的整体性能。
2023-10-18 00:41:59
1067
1
原创 Java面试:假如我是面试官,我会这样虐你!
本文的面试题以 HR & 技术官角度常问的面试题,技术方面从 Java 基础、JVM、Spring、数据库、拓展题等方面考察你,当然面试官可能还会问些其他的技术点,我一篇文章也难以概全。总的来说,还是得多准备充分,面试时灵活答辩,相信你最后能拿到满意的 offer!加油,骚年!最后针对上面的高频常问面试题我还总结出了适合于1-5年以上开发经验的java程序员面试涉及到的绝大部分面试题及答案做成了文档和学习笔记文件以及架构视频资料和高清架构进阶学习导图免费分享。
2023-10-12 00:20:12
32
1
原创 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完不进你找我
对于Java后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer, 也已经帮助了很多的Java学习者,希望也能帮助到你。最新2022整理收集的一些Java学习资料(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud等详细讲解,也有详细的学习规划图,面试题整理等,44、怎样查看一个 linux 命令的概要与用法?
2023-10-11 18:03:52
277
1
原创 java面试题2019_java面试题及答案_java面试题库
1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49、50、51、52、53、54、55、56、57、58、59、60、61、62、63、64、65、66、
2023-10-11 13:50:13
27
1
原创 Java面试总结(2021优化版)发布&1024程序员节
Java面试总结(2021优化版)针对读者反馈的一些错误问题进行了修改,同时删除了一些不常见的面试题,添加了一些高频面试题,是整个【Java面试总结】系列更加的精简,更加贴近于实战,2021版面试总结最新发布在个人微信公众号【技术人成长之路】,欢迎大家关注阅读。【技术人成长之路】,助力技术人成长!更多精彩文章第一时间在公众号发布哦!序号内容链接地址1Java基础知识面试题(2021优化版)2集合容器面试题(2021优化版)3Java虚拟机面试题(2021优化版)4。
2023-10-11 12:50:34
38
1
原创 Java进阶(下篇1)
Java进阶(下篇1)Java进阶一、泛型与File P5621.集合的复习2.为什么要使用泛型3.自定义泛型①自定义泛型类泛型接口的注意点②自定义泛型方法③举例泛型类和泛型方法的使用场景 P5714.泛型在继承方面的体现5.通配符的使用①使用通配符后数据的读取和写入要求②有限制条件的通配符的使用③自定义泛型小练习6.File类的实例化①File类的使用②File类的常用方法7.复习张同学核心笔记Java进阶一、泛型与Fil
2023-10-11 12:00:25
25
1
原创 JAVA程序员面试总结
至于算法分析,不会、不想研究就算了,记得某次面试对方问我,Collections.sort方法使用的是哪种排序方法,额,吐血三升。最深入的一次,我记得面试官直接问到了我Volatile关键字的底层实现原理(顺便插一句,面试和被面试本身就是相对的,面试官能问这个问题同时也让面试者感觉到面试官也是一个喜爱研究技术的人,增加了面试者对公司的好感,我最终选择的就是问了这个问题的公司),不要觉得这太吹毛求疵了—-越简单的问题越能看出一个人的水平,别人对你技术的考量绝大多数都是以深度优先、广度次之为标准的,切记。
2023-10-10 13:27:13
29
1
原创 Java多线程超详解
相同:二者都可以解决线程安全问题不同:synchronized机制在执行完相应的代码逻辑以后,自动的释放同步监视器lock需要手动的启动同步(lock()),同时结束同步也需要手动的实现(unlock())(同时以为着lock的方式更为灵活)优先使用顺序:LOCK-》同步代码块-》同步方法。
2023-10-10 12:41:35
24
1
原创 Java多线程-线程池ThreadPoolExecutor构造方法和规则
首先为三个任务开启了三个核心线程1,2,3,然后第四个任务和第五个任务加入到队列中,第六个任务因为队列满了,就直接创建一个新线程4,这是一共有四个线程,没有超过最大线程数。有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。当队列是SynchronousQueue时,超出核心线程的任务会创建新的线程来执行,看到一共有6个线程。所以第五个就会抛异常了。核心线程数为3,最大线程数为6。
2023-10-10 10:18:41
38
1
原创 Java JVM常见知识点串讲
大家可能在面试中,或多或少都遇到JVM相关的面试题,但是有个问题,就是JVM其实知识点挺多的,本文以笔者亲身经历为主,通过一个JVM的常见面试题,进行逐步了解,学习JVM。这一切都是逼的,回想我刚工作的时候,然后被问JVM,那会儿第一反应,JVM是啥,现在在看看各个招聘岗位,或多或少都要求会JVM。然后面试者,也开始将JVM作为必备技能,虽然可能百分之95的程序员在实际工作中,不会用到任何和JVM相关的知识点。
2023-10-10 00:29:14
29
1
原创 Java JVM 中 堆,栈,方法区 详解
由上图可以看出,Java栈中存放的是一个个的栈帧,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表(Local Variables)、操作数栈(Operand Stack)、指向当前方法所属的类的运行时常量池(运行时常量池的概念在方法区部分会谈到)的引用(Reference to runtime constant pool)、方法返回地址(Return Address)和一些额外的附加信息。对象都存放在堆区中。4. 在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。
2023-10-10 00:28:24
133
1
原创 JAVA HEAP SPACE解决方法和JVM参数设置
要监控本地应用,执行jconsole pid,pid就是运行的java进程id,如果不带上pid参数,则执行jconsole命令后,会看到一个对话框弹出,上面列出了本地的java进 程,可以选择一个进行监控。如果要远程监控,则要在远程服务器的jvm参数里加入一些东西,因为jconsole的远程监控基于jmx的,关于 jconsole详细用法,请见专门介绍jconsle的文章,我也会在博客里专门详细介绍jconsole。若设置太小程序的响应速度会变慢了,因为GC占用了更多的时间,而应用分配到的执行时间较少。
2023-10-10 00:27:40
1009
1
原创 autojs之多线程-Threads
我也是初初接触多线程,对于小白来说,可能会觉得无从下手,我刚开始也是毫无头绪,对一些奇奇怪怪的问题搞不明白,比如:子线程和主线程谁放在前面有影响吗?sleep()对线程运行有什么影响?处理突发情况,如弹窗时,怎么暂停其他线程?等等等在这里,我就从一个小白的角度,说明一下多线程到底怎么用,多线程:1.代码自上而下运行,这是毋庸置疑的,开启了的子线程于主线程是同步进行的,所以sleep是各自sleep自己的(其他代码也是,各自运行);
2023-10-09 23:19:06
779
原创 2019java面试(六)
就业指导Java就业指导面试收到offer必备 208 道面试题Java?面试收到offer必备 208 道面试题Java 208 道面试题:第一模块答案Java 208 道面试题:第二模块答案Java 208 道面试题:第三模块答案Java 208 道面试题:第四模块答案Java 208 道面试题:第五模块答案Java 208 道面试题:第六模块答案Java 208 道面试题:第七模块答案Java ?208 道面试题:第八模块答案Java ?208 道面试题:第九模块答案Java ?208 道面试题:第十
2023-10-09 22:59:52
25
1
原创 JAVA面试技术栈
5.3事务相关:事务的4个隔离级别,mysql默认的隔离级别,数据库锁(悲观锁,乐观锁),死锁的条件,事务注解的用法,OCID理解(原子性,有序性,可见性,幂等性)。6.1数据存储:memcache,redis利弊,redis锁,redis的aof和rdb落盘方式,redis集群部署,一致性哈希算法,Mongo数据库;1.1 JVM相关:JVM如何进行gc,JVM调优,垃圾回收算法,JVM内存模型,类加载机制,内存泄漏,内存溢出;IOC和AOP,动态代理,Spring拦截机制。top,netstat等。
2023-09-15 18:37:15
34
原创 Java面试之数据库面试题
1、触发器的作用?触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。2、什么是存储过程?用什么来调用?存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。
2023-09-15 18:13:58
28
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人