<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wxdot1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wxdot1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wxdot1]]></copyright><item><title><![CDATA[如何查看JVM内存各个区域占用情况？]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376394</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376394</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:20:49 +0800</pubDate><description><![CDATA[3）jmap -heap pid：输出堆内存设置和使用情况（JDK11使用jhsdb jmap --heap --pid pid）13) jcmd 1 VM.flags 当前使用的参数 ， jcmd 5296 VM.flags -all 所有参数。9）jstat -gc pid：输出gc信息，包括gc次数和时间，内存使用状况（可带时间和显示条目参数）4）jmap -histo pid：输出heap的直方图，包括类名，对象数量，对象占用大小。6）jmap -clstats pid：输出加载类信息。...]]></description><category></category></item><item><title><![CDATA[JVM面试题（7-12）]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376380</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376380</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:19:46 +0800</pubDate><description><![CDATA[针对Java虚拟机进程中的线程，Java提供一个专门的工具来查看线程的详细信息：jstack 进程id，我们使用jstack可以查看到某一个java线程下的所有线程的详细信息，我们在找程序中的错误或者尝试调优的时候通常会将上面的线程展示方法和stack线程详情展示方法结合起来使用，进而定位到一个线程并观察到它的详细信息。jstack最大的好处就是会把产生死锁的信息（包含是什么线程产生的）输出到最后，所以我们只需要看最后的内容就行了。- 不断的分析和调整，直到找到合适的JVM参数配置；...]]></description><category></category></item><item><title><![CDATA[jvm相关面试题（1-6）]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376359</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376359</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:18:20 +0800</pubDate><description><![CDATA[如果本地方法栈可以动态扩展，并且在尝试扩展的时候无法申请到足够的内存，或者在创建新的线程时，没有足够的内存去创建对应的本地方法栈，那么java虚拟机将会抛出一个OutOfMemoryError异常。对象的年龄达到阈值（默认是15），或者没达到但是新生代的内存满了，那么年龄大的就要进老年代，大对象（数组之类的）直接进老年代。筛选回收，根据用户所期望的停顿时间指定回收计划，必须暂停全部的用户线程，多条收集器线程并行完成的。java虚拟机栈用于管理java方法的调用，而本地方法栈用于管理本地方法的调用。...]]></description><category></category></item><item><title><![CDATA[jvm中的编译器是什么？]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376345</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376345</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:17:26 +0800</pubDate><description><![CDATA[jvm]]></description><category></category></item><item><title><![CDATA[程序计数器是个啥]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376324</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376324</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:16:33 +0800</pubDate><description><![CDATA[程序计数器]]></description><category></category></item><item><title><![CDATA[jvm运行时数据区域]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376304</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376304</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:14:49 +0800</pubDate><description><![CDATA[其实从这个图当中我们不难看出，JVM的设计模型其实就是操作系统的设计模型，对于操作系统而言，jvm就是一个应用，而对于class文件来说，JVM就是一个操作系统，JVM的方法区，相当于操作系统的硬盘区。至于堆虽然概念上一致目标也一致，分配内存的方式也一直(new,或者malloc等等)，但是由于他们的管理方式不同，jvm是gc回收，而操作系统是程序员手动释放，所以在算法上有很多的差异，gc的回收算法，估计是jvm里面的经典啊，后面我们也会一点点的学习的，不要着急。...]]></description><category></category></item><item><title><![CDATA[redis配置密码]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376281</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376281</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:12:56 +0800</pubDate><description><![CDATA[daemonize yes  //将no改为yes :开启守护进程模式,在该模式下，redis会在后台运行，并将进程pid号写入至redis.conf选项pidfile设置的文件中，此时redis将一直运行，除非手动kill该进程。cd redis-6.0.9  //redis-6.0.9相当于安装包。// 这样退出 shell 重新打开依然就是新版的gcc了。然后我们将redis安装在/usr/local/目录下。//此时redis就已经安装到了local目录下了。//然后 编译安装到指定目录下。...]]></description><category></category></item><item><title><![CDATA[redis基础知识]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376264</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376264</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:11:30 +0800</pubDate><description><![CDATA[最初的时候，数据库的并发非常少，需要把数据缓存到redis中，让redis去抗并发。一些热门的数据应该存储在缓存中，攻击方请求的数据预估没有在缓存，先访问缓存在访问数据，绕过热点数据访问冷门数据，直接访问数据库，如果绕过的频率高，会让数据库崩溃。redis单纯运行速度，比数据库在磁盘要快不少，redis在内存中（自己开辟一个区域，他是c写的，没有所谓jvm这些东西，redis和jvm是同级别的、、、、、、、），数据本身是在内存里面，redis相对于mysql来说，省去了从磁盘中加载的环节。...]]></description><category></category></item><item><title><![CDATA[JVM二三章面试点]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376250</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376250</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:09:53 +0800</pubDate><description><![CDATA[例如在32位的HotSpot虚拟机中，如对象未被同步锁锁定的状态 下，Mark Word的32个比特存储空间中的25个比特用于存储对象哈希码，4个比特用于存储对象分代年 龄，2个比特用于存储锁标志位，1个比特固定为0。在对象添加一个引用计数器，有一个地方引用他就加一，引用失效就减一，任何计数器为零的对象就是不可能再被使用的。运行时常量池存放类信息，方法区相当于大数组，数组里在这个索引区域划分常量池，不同的类信息存在常量池中，相当于存在数据的这一块，那一块，根据不同的区域，把数组不断的切割存储存储他们。...]]></description><category></category></item><item><title><![CDATA[nginx修改mysql端口号]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126376224</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126376224</guid><author>wxdot1</author><pubDate>Tue, 16 Aug 2022 23:08:36 +0800</pubDate><description><![CDATA[firewall-cmd --zone=public --add-port=1300/tcp --permanent //添加1300端口。#3306为mysql的端口。#1300为对外访问的端口。首先修改/etc/my.cnf(mysql配置文件) 里的端口。firewall-cmd --reload //使其生效。在/etc/nginx/nginx.conf下配置。然后在服务器开启改之后的端口 比如1300。然后在服务器控制台添加1300端口。注意:需要在服务器开启1300端口。...]]></description><category></category></item><item><title><![CDATA[CMS处理器的缺点]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126202181</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126202181</guid><author>wxdot1</author><pubDate>Sat, 06 Aug 2022 22:17:45 +0800</pubDate><description><![CDATA[在并发阶段，它虽然不会导致用户线程停顿，但却会因为占用了一部分线程（或者说处理器的计。为了缓解这种情况，虚拟机提。是在并发标记、清理的时候让收集器线程、用户线程交替运行，尽量减少垃圾收集线程的独占资源的。时间，这样整个垃圾收集的过程会更长，但对用户程序的影响就会显得较少一些，直观感受是速度变。段，用户线程是还在继续运行的，程序在运行自然就还会伴随有新的垃圾对象不断产生，但这一部分。，也就是说，如果处理器核心数在四个或以上，并发回收时垃圾收集线程只占用不超过。的触发百分比，降低内存回收频率，获取更好的性能。.]]></description><category></category></item><item><title><![CDATA[IOC/AOP大白话讲解]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126059935</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126059935</guid><author>wxdot1</author><pubDate>Fri, 29 Jul 2022 17:06:07 +0800</pubDate><description><![CDATA[中转，你new一个controller需要在new一个servlet，但是你new的servlettomcat也调用不到，如果你new的话，tomcat改动的比较多，耦合度比较高，所以才采取控制反转。mybatis的dao层，有接口没实现类---------》通过CGlib动态生成实现类，作为模板类给代理使用------->通过代理引用模板类生成对象-------》invoke调用对象的method方法-------》访问数据库。Object类中的全部方法，例如，tostring，equals等；...]]></description><category></category></item><item><title><![CDATA[扫码登录原理]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126046319</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126046319</guid><author>wxdot1</author><pubDate>Thu, 28 Jul 2022 23:35:14 +0800</pubDate><description><![CDATA[实际上，知道了也没有影响，因为设备信息是唯一的，只要你的设备信息别人不知道，别人拿其他设备来访问，验证也是不通过的。手机登录&打开网页二维码登录页（二维码有时效5-10分钟左右，超时会过期）——>手机扫码之后跳转到一个页面，这个页面至少有两个按钮确认登录/取消登录——>手机上点击确认登录————手机上显示登陆成功&电脑网页显示登录成功并且跳转，以及显示登陆人信息。2.如果账号密码校验通过，服务端会把账号与设备进行一个绑定，存在一个数据结构中，这个数据结构中包括设备id，账号id，设备信息。...]]></description><category></category></item><item><title><![CDATA[哈希set于哈希map的一些基本用法]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126046301</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126046301</guid><author>wxdot1</author><pubDate>Thu, 28 Jul 2022 23:31:54 +0800</pubDate><description><![CDATA[8keySet()hashmap.keySet().iterator()，keySet是把key放到一个set集合中，通过迭代器遍历，再用hashmap.get(key)来取到value的值。1put方法put(key，value)，我们经常用存储一些常用的数据，比如flag、百分比之类的，我们就可以返回map结构，如果key相同则值会覆盖，允许key和value为null。hashset.add(Ee)返回boolean型，如果此set中尚未包含指定元素，则添加指定元素；...]]></description><category></category></item><item><title><![CDATA[JVM第二章基础]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126045106</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126045106</guid><author>wxdot1</author><pubDate>Thu, 28 Jul 2022 22:09:00 +0800</pubDate><description><![CDATA[每一个方法被调用直至执行完毕的过程，就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程；本地方法栈java的最终执行还是要翻译成操作系统自带的一些方法，最终调用的还是操作系统的方法（操作系统的内核，操作系统的方法）同样一个数据，不同的线程不能访问，A线程访问某个信息的时候，B,C线程不能访问；OutOfMemoryError内存溢出----内存不够了，就会溢出，指的是整个栈的内存，或者整个堆的内存。StackOverflowErroe栈溢出，单个的栈空间满了，没办法入栈---递归的情况容易出现这种情况。...]]></description><category></category></item><item><title><![CDATA[nginx部署域名]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126045027</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126045027</guid><author>wxdot1</author><pubDate>Thu, 28 Jul 2022 22:05:13 +0800</pubDate><description><![CDATA[nginxsystemctlstatusnginx.service//查看nginx的状态。systemctlrestartnginx//任意目录下重启。使用nginx添加证书将http改为https。使用yum安装的nginx在etc目录下。证书文件需要在腾讯云服务器获取。配置文件为nginx.conf。https的默认端口为443。...]]></description><category></category></item><item><title><![CDATA[java基础--内存]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126028966</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126028966</guid><author>wxdot1</author><pubDate>Thu, 28 Jul 2022 10:15:16 +0800</pubDate><description><![CDATA[一、计算机的位数代表什么以及cpu的计算时间cpu一次处理数据的量决定了我们操作系统的位数，我们的计算机当前有32位的和64位的，也就意味着我们cpu一次只能计算64bit的数据，那么也就意味着我们的总线一次只能传输64位的数据。当代cpu的计算时间在0.2ns左右二、内存和磁盘的速度分析1.磁盘我们在磁盘上找数据的时候，首先涉及到机械臂的移动，以及盘面的转动 共需要 5ms 上边我们看到cpu的的计算速度和每次只能计算的量，那么我们可以看到我们磁盘和cpu的速度差是25000000倍那如何解决这个问题呢？]]></description><category></category></item><item><title><![CDATA[磁盘的基本使用]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126028779</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126028779</guid><author>wxdot1</author><pubDate>Thu, 28 Jul 2022 10:11:01 +0800</pubDate><description><![CDATA[曾经我们要向给计算机输入数据进行预算，我们只能输入0和1这两个数字，输出是以纸带的形式进行输出，在纸带上打眼的地方就代表着数字1，在纸带上没有打眼的地方就是0，但是有一次呀人们发现电脑没有问题，但就是输出不对，后来人们发现原来是一个小飞虫堵住了纸袋上的一个眼导致了错误的发生。（举例）假如正电压产生的是2V,负电压也产生2V,我们默认让磁头拥有3V的电压，当他滑到正的时候就有5V电压，当他滑动到负的时候就只有1V的电压。所以会产生两种方向相反的电压，所以需要我们的磁头也需要带有一定的电压。...]]></description><category></category></item><item><title><![CDATA[JVM先行课]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126015900</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126015900</guid><author>wxdot1</author><pubDate>Wed, 27 Jul 2022 15:30:52 +0800</pubDate><description><![CDATA[1、线程中的start()方法和run()方法的主要区别在于，当程序调用start()方法，将会创建一个新线程去执行run()方法中的代码。但是如果直接调用run()方法的话，会直接在当前线程中执行run()中的代码，注意，这里不会创建新线程。在第一个方法入栈后，去堆内存创建对象，因为address是static类型的，他在方法区中存在静态常量池，所以会赋值给北京；.class文件是字节码文件，字节码文件存在于方法区当中，字节码文件就是类信息，静态常量池也在方法区当中。main方法先执行，t1，t2。...]]></description><category></category></item><item><title><![CDATA[java基础之计算机底层结构！]]></title><link>https://blog.youkuaiyun.com/wxdot1/article/details/126015516</link><guid>https://blog.youkuaiyun.com/wxdot1/article/details/126015516</guid><author>wxdot1</author><pubDate>Wed, 27 Jul 2022 15:19:03 +0800</pubDate><description><![CDATA[最早期的人类将自己养的牛羊的数量画在一根根的骨头上，假设我们用一条横线代表一头羊，随着人类生活越来越丰富，羊群的数量也越来越多，那么在骨头上画的线也就越来越多，数起来也就原来越麻烦，于是有些聪明的人就发现我们为什么不将每10个横线重新做一个标记，比如用一根竖线，这样我们数羊的时候我先数有几个竖线然后在数有多少横线。--直到发现二极管。我们可以通过对逻辑开关的改造成，逻辑与，或，异或，与非，或非，异或非等门，然后将他们当成最基本元素不断的搭建就会形成了加法器，在计算机当中一切的计算的基础就来源于加法器。...]]></description><category></category></item></channel></rss>