自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 JVM之类的热替换原理解读,数据库事务深入分析

}}第二步:写个ClassFileTransformer,利用Javassist等工具进行字节码修改public class ClassModifierTransformer implements ClassFileTransformer {@Overridepublic byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain

2021-08-11 18:40:34 258

原创 JUC并发,Java多线程实现方式及并发与同步

} finally { //释放锁 lock.unlock(); }}}synchronized和lock区别:1. synchronize内置的java关键字,lock是一个java类2. synchronize无法获取锁的状态,lock可以判断是否获取到了锁3. 前者会自动释放锁,lock必须手动释放锁,如果不释放锁,会造成死锁4. 前者线程1(获得锁,阻塞)线程2(等待,一直等);lock就不一定会等待下...

2021-08-11 18:38:18 114

原创 JSP常用内置对象:page,linux内核源码详解

<%! int a=8;%><%= a/0 %> <%--算数运算错误--%></body></html> ```error.jsp```<%@ page isErrorPage=“true” contentType=“text/html;charset=UTF-8” language=“java” %><title>Title</title><h2

2021-08-11 18:37:04 139

原创 JQuery,最全的BAT大厂面试题整理

JQeury实现方式$.ajax()$.get()$.post()客户端的代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script> //定义方法 function fun()

2021-08-11 18:35:56 103

原创 JQuery,Java工作经验6年

//3.发送请求 xmlhttp.send(); //4.接受并处理来自服务器的响应结果 //获取方式 :xmlhttp.responseText //什么时候获取?当服务器响应成功后再获取 //当xmlhttp对象的就绪状态改变时,触发事件onreadystatechange。 xmlhttp.onreadystatechange=function() {...

2021-08-11 18:34:49 70

原创 jQuery 基础知识总结(超级详细,被大佬问到自闭

所以,我觉得阅读源码很重要的一点是,摒弃面向过程的思维方式,不要刻意去追求从上至下每一句都要在一开始弄明白。很有可能一开始你在一个奇怪的方法或者变量处卡壳了,很想知道这个方法或变量的作用,然而可能它要到几千行处才被调用到。如果去追求这种逐字逐句弄清楚的方式,很有可能在碰壁几次之后阅读的积极性大受打击。道理说了很多,接来下进入真正的正文,对 jQurey 的一些前期准备,小的细节进行分析:二、jQurey 闭包结构=============// 用一个函数域包起来,就是所谓的沙箱// 在这里边

2021-08-11 18:33:41 124

原创 jQuery 基础知识总结(超级详细(1),你有过迷茫吗

new jQuery.fn.init() 相当于 new jQuery() ;jQuery() 返回的是 new jQuery.fn.init(),而 var obj = new jQuery(),所以这 2 者是相当的,所以我们可以无 new 实例化 jQuery 对象。四、jQuery 方法的重载==============1、方法重载基本介绍jQuery 源码晦涩难读的另一个原因是,使用了大量的方法重载,但是用起来却很方便:// 获取 title 属性的值$('#id'..

2021-08-11 18:32:35 235

原创 Java虚拟机内存管理,美团java一面二面HR面面经

1、对分配内存空间的动作进行同步处理——实际上虚拟机采用CAS配上失败重试的方式保证更新操作的原子性;2、把内存分配的动作按照线程划分在不同的空间之中进行,即每个线程在Java堆中预先分配一小块内存,称为本地线程分配缓冲(Thread Local Allocation Buffer,TLAB)。那个线程要分配内存,就在哪个线程的TLAB上分配,只有TLAB用完并分配新的TLAB时,才需要同步锁定。虚拟机是否使用TLAB,可以通过-XX:+/-UseTLAB参数来设定。内存分配完成后,虚拟机需要将分配到内

2021-08-10 15:00:41 229

原创 Java虚拟机5大核心知识点,RocketMQ消费者是如何获取消息的

Java字节码无法直接直接,需要JVM将其翻译成机器码。在 HotSpot 里面,翻译过程有两种形式:第一种是解释执行,相当于同声传译,即每解析一条字节码,便翻译成机器码并执行;第二种是即时编译(Just-In-Time compilation,JIT),则相当于线下翻译,即将整个方法中所包含的字节码统一翻译成机器码后在执行。前者的优势在于无需等待编译,而后者的优势在于实际运行速度更快。HotSpot 默认采用混合模式,综合了解释执行和即时编译两者的优点。它会先解释执行字节码,而后将其中反复执行的热点代

2021-08-10 14:59:33 164

原创 Java自学教程百度云盘,疯狂加持!腾讯大佬的

**虚拟机性能监控、故障处理工具:**基础故障处理工具+可视化故障处理工具+HotSpot虚拟机插件及工具**调优案例分析与实战:**案例分析:(大内存硬件上的程序部署策略+集群间同步导致的内存溢出+堆外内存导致的溢出错误+外部命令导致系统缓慢+ 服务器虚拟机进程崩溃+ 不恰当数据结构导致内存占用过大+ 由Windows虚拟内存导致的长时间停顿+由安全点导致长时间停顿)Four:虚拟机执行子系统**类文件结构:**无关性的基石+Class类文件的结构+字节码指令简介+公有设计,私有实现 +Clas

2021-08-10 14:58:23 79

原创 Java编程教程视频下载,搭建SSM项目框架全过程及思考

test是和测试相关。建好以上目录,开始进入正题。3. 引入Spring3.1 web.xmlweb程序启动会去读取它的配置文件 web.xml,首先需要配置web.xml,添加上spring的监听器、spring mvc的Servlet。ContextLoaderListener 它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener中关联了ContextLoad

2021-08-10 14:57:13 105

原创 Java编程入门经典,阿里P8级大神经验分享,怎样成为一个优秀的架构师

1、OCP(开闭原则):设计良好的软件应该易于扩展,同时抗拒修改。这是我们进行架构设计的主导原则,其他的原则都为这条原则服务。2、SRP(单一职责原则):任何一个软件模块,都应该有且只有一个被修改的原因,“被修改的原因“指系统的用户或所有者,翻译一下就是,任何模块只对一个用户的价值负责,该原则指导我们如何拆分组件。举个例子,CTO 和 COO 都要统计员工的工时,当前他们要求的统计方式可能是相同的,我们复用一套代码,这时 COO 说周末的工时统计要乘以二,按照这个需求修改完代码,CTO 可能就要过来骂街

2021-08-10 14:56:07 219

原创 Java经典面试题详解,突围金九银十面试季,Java基础入门传智播客答案

如果碰撞了,以链表的方式链接到后面,如果链表长度超过阀值(TREEIFY_THRESHOLD == 8),就把链表转成红黑树。GC 算法,除了常见的复制算法,标记整理,标记清除算法,还有哪些?增量算法。主要思想是垃圾收集线程与用户线程交替执行。也可以说一边执行垃圾回收一边执行用户代码。但是这种方法会造成系统吞吐量下降。Spring 主要思想是什么,回答 IOC 和AOP,怎么自己实现 AOP ?使用基于反射的动态代理SpringAOP 用的哪一种代理阿里二面HashMap 怎样解决冲突.

2021-08-10 14:54:54 146

原创 Java线程状态以及 sheep(,Java进阶推荐

4. 阻塞(Bloacked):阻塞状态是线程因为某种原因放弃CPU的使用权,暂时停止运行,知道线程进入就绪状态后才能有机会转到运行状态。阻塞的情况分三种:等待阻塞:运行的线程执行**wait()**方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池中”。进入这个状态后是不能自动唤醒的,必须依靠其他线程调用notify()或者notifyAll()方法才能被唤醒。同步阻塞:运行的线程在获取对象的(synchronized)同步锁时,若该同步锁被其他线程占用,则JVM会吧该线程放入“

2021-08-10 14:53:41 103

原创 JVM的类加载机制全面解析

验证这一阶段是为了保证Class文件的字节流中包含的信息符合当前JVM的要求,并且不危害JVM自身的安全。大致分为以下四个阶段:文件格式验证验证字节流是否符合Class文件格式的规范,能不能被当前JVM处理。验证点比较多,比如:是否以魔数0xCAFEBABE开头、主次版本号是否在当前JVM的处理范围内、常量池的常量是否有不被支持的常量类型、CONSTANT_Utf8_info类型的常量中是否有不符合UTF8编码的数据等等。这个阶段是基于二进制字节流进行验证的,只有这个阶段验证通过了,字节流才能进入内存

2021-08-09 16:00:28 69

原创 JVM的类加载机制全面解析(1),Java面试常见笔试题

解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading)类加载的全过程,包括其中的加载、验证、准备、解析、初始化几个阶段。加载加载是类加载的第一阶段,在这一步中JVM规范要求完成了以下三件事:通过一个类的全限定名来获取定义这个类的二进制字节流。将这个字节流多代表的静态存储结构转化为方法区的运行时数据结构。在内存中生成一个代表这个类的java.lang.Class对象。以上要求其实并不具体,JVM的具..

2021-08-09 15:59:15 112

原创 JVM字符串常量池及String的intern方法详解?

intern方法的作用intern()方法的功能定义:(1)如果当前字符串内容存在于字符串常量池(即equals()方法为true,也就是内容一样),那直接返回此字符串在常量池的引用;(2)如果当前字符串不在字符串常量池中,那么在常量池创建一个引用并指向堆中已存在的字符串,然后返回常量池中的引用。简单说intern方法就是判断并将字符串是否存在于字符串常量池,如果不存在则创建,存在则返回。字符串常量池在HotSpot中实现字符串常量池功能的是一个StringTable类,它是一个Hash表,默认

2021-08-09 15:58:05 477

原创 JVM GC,SpringBoot整合MyCat实现读写分离

第一件是查找到哪些内存中的对象是已经废弃掉的。第二件事是如何清理掉这些已经废弃掉的数据。本文先来说说后者,如何清除掉这些内存中的废弃数据。1、标记清除算法Mark-Sweep这种算法是最简单最直接的算法,也是其它算法的一些最初思路。标记清除算法其实就是对内存中的对象依次的进行判断,如果对象需要回收那么就打一个标记,如果对象仍然需要使用,那么就保留下来。这样经过一次迭代之后,所有的对象都会被筛选判(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )断一次。紧接着

2021-08-09 15:56:56 101

原创 JUC并发,Java面试问题及答案

wait会释放锁,sleep会抱着锁睡觉使用的范围不同wait必须在同步代码块中,sleep任何地方是否需要捕获异常wait不需要,sleep必须捕获线程六大状态3.lock锁public class SaleTicketLock { public static void main(String[] args) { //创建资源类对象 Ticket ticket = new Ticket(); //创建线程

2021-08-09 15:55:43 72

原创 jsonp原理详解,Java数据库面试问题

<title></title><script type="text/javascript">var localHandler = function(data){ alert('我是本地函数,可以被跨域的remote.js文件调用,远程js带来的数据是:' + data.result);};</script><script type="text/javascript" src="http://remoteserver.co..

2021-08-09 15:54:38 86

原创 《零基础(1),理解RabbitMQ中的AMQP模型

该函数有 6 个参数,在成功链接到 MySQL 后返回连接标识,失败返回 FALSE 。语法mysqli_connect(host, username, password, dbname,port, socket);参数说明:|使用mysql二进制方式连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接mysql服务器的简单实例:\[root@host\]# mysql -u root -pEnter password

2021-08-08 19:34:50 102

原创 《菜菜的机器学习sklearn课堂,孔浩Java视频百度云盘

===============================================================================================数据无量纲化无量纲化:将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布例如梯度和矩阵为核心的算法中,逻辑回归、支持向量机、神经网络,无量纲化可以加快求解速度;而在距离类模型,例如K近邻、K-Means聚类,无量纲化可以帮我们提升模型精度,避免某一个取值范围特别大的特征对距离计算造成影响。

2021-08-08 19:33:37 1743

原创 《深入理解Java虚拟机,学习指南

}output:m == n: truem == u: falsem == v: falseu == v: false[[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzaJOZQt-1628422334305)(https://github.com/c-rainstorm/blog/raw/master/res/string-const.png)]](https://github.com/c-rainstorm/blog/blob/master/res/s

2021-08-08 19:32:31 102

原创 《深入理解Java虚拟机 3,Java程序员面试笔试真题与解析

此阶段时用于初始化类变量和其它资源,是执行类构造器()方法的过程,此时才真正开始执行勒种定义的java程序代码。第八章:字节码执行引擎===============JVM中的执行引擎在执行java代码的时候,一般有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择。一、栈帧1、基本概念(1)、定义栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它位于虚拟机栈里面。(2)、作用每个方法从调用开始到执行完成的过程中,都对应着一个栈帧在虚拟机栈里面从入栈到出

2021-08-08 19:31:22 137

原创 《我想进大厂,腾讯大佬的“百万级JVM学习笔记”

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210130140006850.png)5. 说说服务引用的流程?服务暴露之后,客户端就要引用服务,然后才是调用的过程。首先,客户端根据配置文件信息从注册中心订阅服务;之后,DubboProtocol 根据订阅的得到 provider 地址和接口信息连接到服务端 server,开启客户端 client,然后创建 invoker;invoker 创建完成之后,通过 invoker 为服务接口生成代理

2021-08-08 19:30:08 138

原创 《我想进大厂,GitHub标星过万

首先,客户端根据配置文件信息从注册中心订阅服务;之后,DubboProtocol 根据订阅的得到 provider 地址和接口信息连接到服务端 server,开启客户端 client,然后创建 invoker;invoker 创建完成之后,通过 invoker 为服务接口生成代理对象。这个代理对象用于远程调用 provider,服务的引用就完成了。6. 有哪些负载均衡策略?加权随机:假设我们有一组服务器 servers = [A, B, C],他们对应的权重为 weights..

2021-08-08 19:29:05 89

原创 《大型数据库技术,传智播客Java百度网盘

select * from employee;![在这里插入图片描述](https://img-blog.csdnimg.cn/2020102221554418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70#pic_center)[](

2021-08-08 19:27:59 305

原创 《大型数据库技术(1),阿里Java校招面试题目

3.1 创建用户z1@localhost,赋予所有数据库上的所有表的select权限,并确认权限3.2 将z1@localhost上的权限改为只对本实验范例数据库上所有表的select权限,并确认权限实验一:《大型数据库技术》MySQL数据库的开发基础实验二:《大型数据库技术》MySQL数据库安装配置及基础使用实验三:《大型数据库技术》MySQL的进阶开发技巧实验四:《大型数据库技术》MySQL管理维护实验五:1、MySQL的备份===========...

2021-08-08 19:26:48 90

原创 Java自学视频百度云,手把手讲解--性能优化案例(1(2)

手把手讲解系列文章,是我写给各位看官,也是写给我自己的。文章可能过分详细,但是这是为了帮助到尽量多的人,毕竟工作5,6年,不能老吸血,也到了回馈开源的时候.这个系列的文章:1、用通俗易懂的讲解方式,讲解一门技术的实用价值2、详细书写源码的追踪,源码截图,绘制类的结构图,尽量详细地解释原理的探索过程3、提供Github 的 可运行的Demo工程,但是我所提供代码,更多是提供思路,抛砖引玉,请酌情cv4、集合整理原理探索过程中的一些坑,或者demo的运行过程中的注意事项5、用gif图,最直观地展.

2021-08-07 06:44:56 196

原创 Java自学宝典pdf,高性能缓存-Caffeine-原理及实战

2.1.2 W-TinyLFU 算法Caffeine 使用了 W-TinyLFU 算法,解决了 LRU 和LFU上述的缺点。W-TinyLFU 算法由论文《TinyLFU: A Highly Efficient Cache Admission Policy》提出。它主要干了两件事:一、采用 Count–Min Sketch 算法降低频率信息带来的内存消耗;二、维护一个PK机制保障新上的热点数据能够缓存。如下图所示,Count–Min Sketch 算法类似布隆过滤器 (Bloom filter)思

2021-08-07 06:43:39 474

原创 Java者升职加薪的8项技能,零基础Java的福音

二、其中第一个文件夹,001基础(se)作为整个java的语法思想等基础,下面我来进行划分下内容重点及删除不必要的学习内容(绝不影响后面工作),大纲如下,原本学时一个月开始划重点打— 横线的内容,为中速看(播放速度调成1.6倍),知道即可,有兴趣可以敲框起来的为必须看,慢速1.3倍看,理解,并一定要敲代码,且做笔记!一、语言基础(这是最基础的东西,其实没什么好划的,都要会,学时五天)二、面向对象(这个是核心思想,也必须会,其实也没啥好画的…)三、基础工具四、核心类库五、

2021-08-07 06:42:18 93

原创 Java编程高级教程,这些数据库索引的高频面试题,你都掌握了多少

HASHHASH即哈希索引,哈希索引多用于等值查询,时间复杂夫为o(1),效率非常高,但不支持排序、范围查询及模糊查询等。BTREEBTREE即B+树索引,INnoDB存储引擎默认的索引,支持排序、分组、范围查询、模糊查询等,并且性能稳定。RTREERTREE即空间数据索引,多用于地理数据的存储,相比于其他索引,空间数据索引的优势在于范围查找索引的种类有哪些?主键索引:数据列不允许重复,不能为NULL,一个表只能有一个主键索引组合索引:由多个列值组成的索引。唯一索引:数据列不.

2021-08-07 06:41:04 483

原创 Java编程教学视频,面试官最喜欢问的Spring Boot知识点整理【附解答

Spring 旨在简化 J2EE 企业应用程序开发。Spring Boot F 旨在简化 Spring 开发(减少配置文件,开箱即用!)。3. 说出使用 Spring Boot 的主要优点开发基于 Spring 的应用程序很容易。Spring Boot 项目所需的开发或工程时间明显减少,通常会提高整体生产力。Spring Boot 不需要编写大量样板代码、XML 配置和注释。Spring 引导应用程序可以很容易地与 Spring 生态系统集成,如 Spring JDBC、Spr

2021-08-07 06:39:41 103

原创 Java编程从入门到实践,动态图片演示,源码直析

@Override public UserInfoBean getInfo(String name) { return map.get(name); } } ;}@Overridepublic void onCreate() { super.onCreate(); Log.e("MyService", "onCreate: success");}}**`客户端`核心代码 :**public class ClientActivity extends ..

2021-08-07 06:38:18 131

原创 Java经典面试,【Java面试题总结 14

不用考虑各种锁的问题,不存在加锁和释放锁的操作,没有因为可能出现死锁而导致的性能问题;不存在多线程切换而消耗CPU;无法发挥多核CPU的优势,但可以采用多开几个Redis实例来完善;七、Redis真的是单线程的吗?Redis6.0之前是单线程的,Redis6.0之后开始支持多线程;redis内部使用了基于epoll的多路服用,也可以多部署几个redis服务器解决单线程的问题;redis主要的性能瓶颈是内存和网络;内存好说,加内存条就行了,而网络才是大麻烦,所以redis6内存..

2021-08-07 06:37:02 91

原创 Java组件化开发教程,Java反射机制详解(由浅入深

}private String getSonName(){ return mSonName;}}1\. 获取类的所有变量信息--------------/**通过反射获取类的所有变量*/private static void printFields(){//1.获取并输出类的名称Class mClass = SonClass.class;System.out.println("类的名称:" + mClass.getName());/

2021-08-07 06:35:46 265

原创 Java线程池面试题,【漫画(1)

//懒汉模式public final class Singleton { private static Singleton instance= null;//不实例化 private Singleton(){}//构造函数 public static Singleton getInstance(){//通过该函数向整个系统提供实例 if(null == instance){//当instance为null时,则实例化对象,否则直接返回对象 i

2021-08-07 06:34:24 95

空空如也

空空如也

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

TA关注的人

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