自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MFC 多线程编程总结

*********** 写在前面*************1、进程与线程1.1、进程1.2、线程1.3、进程与线程的区别(常见面试题)2、线程创建的三种方式2.1、CreateThread(需要手动关闭线程句柄)2.2、AfxBeginThread(会自动释放)2.2.1、用户界面线程2.2.2、工作者线程线程2.2.3、用户界面线程与工作者线程线程的区别2.3、_beginthreadex(需要手动释放)3、线程通信3.1、全局变量方式3.2、消息传递方式3.3、参数传递方式3.4、线程同步方式。

2023-10-26 13:00:21 255

原创 Linux查看应用Jvm参数的几种方式

第一种:jps查看jvm参数jps简介jps语法jps常用命令jps -lv查看应用jar及jvm参数第二种:jmap查看堆栈信息jmap简介jmap语法jmap -heap查看jvm参数、堆栈信息第三种:ps -ef|grep java查看CMD列jps是jdk提供的一个查看当前java进程的小工具, 全称是JavaVirtual Machine Process Status Tool。

2023-10-26 12:22:06 285

原创 JVM类的加载机制

()方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static语句块)中的语句合并生成的,编译器收集的顺序是由语句在源文件中出现的顺序决定的,静态语句块中只能访问到定义在静态语句块之前的变量,定义在它之后的变量,在前面的静态语句块中可以赋值,但是不能访问。类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。解析阶段是把常量池内的符号引用替换成直接引用的过程。

2023-10-25 23:57:23 80

原创 JVM出现OOM的八种原因及解决办法

本地方法在运行时出现了内存分配失败,和之前的方法栈溢出不同,方法栈溢出发生在 JVM 代码层面,而本地方法溢出发生在JNI代码或本地方法处。4、还有一点容易被忽略,检查是否有大量的自定义的 Finalizable 对象,也有可能是框架内部提供的,考虑其存在的必要性。出现这种异常,基本上都是创建的了大量的线程导致的,以前碰到过一次,通过jstack出来一共8000多个线程。2、通过jmap命令,把堆内存dump下来,使用mat工具分析一下,检查是否存在内存泄露的问题。

2023-10-18 02:58:20 1116

原创 jvm内存泄漏排查

一种通俗的说法。1、内存溢出:你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,出现溢出。2、内存泄漏:你用new申请了一块内存,后来很长时间都不再使用了(按理应该释放),但是因为一直被某个或某些实例所持有导致 GC 不能回收,也就是该被释放的对象没有释放。点击查看内存泄漏更多说明。java.lang.OutOfMemoryError,是指程序在申请内存时,没有足够的内存空间供其使用,出现OutOfMemoryError。查看更多说明。一般情况下,在程序上的体现为。

2023-10-18 00:51:46 173

原创 JVM SandBox简要介绍

客户端通过 Attach 将沙箱挂载到目标 JVM 进程上,沙箱的启动实际上是依赖 Java Agent,上文已经介绍过,启动之后沙箱会一直维护着 Instrument 对象引用,在沙箱中 Instrument 对象是一个非常重要的角色,它是沙箱访问和操作 JVM 的唯一通道,后续修改字节码和重定义类都要经过 Instrument。我们知道Java对象的行为(函数,方法)是存储在方法区的,从下图可以看到,方法区的数据是由类加载器把编译好的class文件加载到jvm方法区的。

2023-10-18 00:33:26 300 1

原创 JDK、JRE、JVM的区别与联系

JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行。JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域。

2023-10-13 12:13:42 23

原创 Java面试题整理!面试20多家公司后呕心沥血总结(Java面试无论去哪个公司面试都逃不过这些面试题)

Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈启动类加载器 Bootstrap ClassLoader:加载lib目录下核心库扩展类加载器 Extension ClassLoader:加载libext目录下扩展包应用程序类加载器 Application ClassLoader: 加载用户路径(classpath)上指定的类库。

2023-10-12 00:08:11 33

原创 java面试题及答案2020 大汇总

4、海量数据中查找一个单词,分布式计算 map reduce,或者用 hsah 映射筛选部分结果5、java 的抽象类和接口区别、java 的 hashmap,java 的内存模型,分区,分代垃圾回收算法。8、tcp ip,七层模型,rest 接口规范,get 和 post 区别,长度,安全9、tcp ip 的 arp 协议,两个同一网络的主机如何获得对方的 mac 地址10、负载均衡、高并发、高可用的架构。14、final,finall,finalize 三者的区别?10、hash 冲突了解哪些?

2023-10-11 17:51:47 26

原创 Java面试自我介绍怎么说?Java面试技巧!

因为学历背景是自身知识结构一个有力的“敲门砖”,如果是非计算机专业的毕业生,则要重点突出说一下自身的学习经历,强调自己的学习能力,与此同时突出一下自己的动手和实践能力。面试中高级Java工程师岗位时,首先应该重点强调一下自己的项目开发经验,从技术选型、方案设计到具体编码都要有一个清晰的思路来描述,在描述过程中要把自己的开发经验突出一下,比如经历了哪些不同的开发场景,解决了哪些疑难问题等,如果具有较多的行业经验,也一定要突出一下(多行业经验有时未必是好事,建议挑重点行业或者面试企业对口行业)。

2023-10-11 13:38:10 71

原创 JAVA面试之容器

那么HashSet和TreeSet有什么区别呢?hashSet是为快速查找而设计的Set,存入HashSet的元素必须定义为hashCode()。所以如果没有其他的限制,HashSet就是默认的选择,因为对速度进行了优化。TreeSet是保持了次序的set,底层实现为树结构,使用它可以从set中提取有序的序列,其元素必须实现comparable接口。

2023-10-11 12:38:27 13

原创 java进阶之synchronized锁

对象锁不能实现同一Class的不同对象的线程同步。请看下面这个问题:例子中共享资源是 static i,两个线程的锁分别是不同的Integer实例。j++) {i++;t1.start();t2.start();t1.join();t2.join();从输出结果看到线程1在执行run()的时候,线程2仍可以执行run()。因为线程2可能拿到老的i,导致最终结果不是20000,表明两个线程没有同步执行。

2023-10-11 11:48:24 15

原创 java实现分布式事务的三种方案

部署在不同结点上的系统通过网络交互来完成协同工作的系统。比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完成。事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。原子性:执行单元中的操作要么全部执行成功,要么全部失败。

2023-10-10 13:12:59 158 1

原创 JAVA多线程常见的十大问题

读写锁就多个线程可以同时获取读锁读资源,当有写操作的时候,获取写锁,写操作之后的读写操作都将被阻塞,直到写锁释放。中的实际应用类并不多,大多用在数据库锁上,可参看:http://blog.csdn.net/sdyy321/article/details/6183412。后台线程如其名,就是在后台工作的线程,它的任务是为其他线程提供服务,也叫做“守护线程”与“精灵线程”。方法用于启动线程,会把线程状态由新建态转为就绪态,为线程分配线程私有的方法栈、程序计数器等资源,而。当所有锁释放后,其他线程才可以获取锁。

2023-10-10 12:27:21 36 1

原创 Java之美[从菜鸟到高手演变]之多线程简介

我们知道目前我们计算机基本是基于X86架构的,而基于X86架构的机器主频超不过4GHz,随着信息时代的来临,我们需要处理的数据越来越大,因此对程序的性能也要求越来越高,提高程序的性能,一方面需要提高运行环境的配置,也就是配性能更好的机器,更快的CPU更大的内存,另一方面就是优化自己的程序,从前者的角度考虑,我们说当前计算机的CPU主频已经接近顶级,一段时间内不可能再高,也就是说想通过提高机器的性能来加快程序的运行是一个不好的选择,因为你需要投入更多的硬件。此处我们先简单介绍,在后面的文章中我们逐渐深入。

2023-10-10 10:04:26 27 1

原创 CC++ 用 pthread 进行多线程开发

它的作用是挂起当前的线程,等待指定的线程运行完毕。作为一个程序员,不管你用的开发语言是 C、C++、Java、Python 或者其它,你总会需要处理多任务。上面是 C 的代码,其实 C++ 也同样适用,只不过需要用 g++ 编译器来编译代码。在线程创建的时候给子线程传递了它的名字,然后在线程的运行函数中进行了强制转换。多线程是实现多任务处理的一种最常用的手段,线程相比进程而言显得轻量级。第四个参数也是一个指针,它是用来将数据传递进线程的运行函数。第三个参数是线程运行时的函数,这是个函数指针。

2023-10-09 23:57:56 200 1

原创 Carson带你学JVM:图文解析Java虚拟机内存结构

了解Java中的对象、变量等存放的内存区域十分重要本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢Carson带你学JVM:这是一份全面 & 详细的JVM学习指南Carson带你学JVM:图文解析Java虚拟机内存结构Carson带你学JVM:Java对象的创建、内存布局 & 访问定位全过程解析Carson带你学JVM:Java对象如何判断存活原则-引用计数法 & 引用链法Carson带你学JVM:这是一份全面 & 详细的垃圾收集算法(GC)讲解攻略。

2023-10-09 23:57:09 22 1

原创 C++连接并使用MySQL数据库

mysql_field_tell() 返回用于最后一个mysql_fetch_field()的字段光标的位置。mysql_row_seek() 搜索在结果集合中的行,使用从mysql_row_tell()返回的值。mysql_insert_id() 返回有前一个查询为一个AUTO_INCREMENT列生成的ID。mysql_fetch_field_direct () 返回一个表字段的类型,给出一个字段编号。mysql_options() 设置对mysql_connect()的连接选项。

2023-10-09 23:56:22 1114 1

原创 2023最新版Java面试八股文大全PDF版限时分享,含700道高频面试题

2023经济复苏,眼看已经到了金三银四黄金跳槽季了,不知道在座的Java架构师们找到理想的工作没。前面这段时间,为了能让大家拿到最优质的资料,从今年1月份我就开始收集整理这几年面试出的最多,最频繁的Java面试题。这不,前段时间就整理就花了我三天两夜,真的太多了。今天呢,小编就通过这篇文章把这几月整理的Java面试八股文大全PDF版分享给大家,希望大家能第一时间拿走。限于文章篇幅原因,只能以截图的形式展示出来,??????有需要的小伙伴可以文末获取??????目录总览。

2023-10-09 23:10:55 149 1

原创 Java面试--SpringIOC

软件系统在没有引入IoC容器之前,对象A依赖对象B,那么A对象在实例化或者运行到某一点的时候,自己必须主动创建对象B或者使用已经创建好的对象B,其中不管是创建还是使用已创建的对象B,控制权都在我们自己手上。如果软件系统引入了Ioc容器之后,对象A和对象B之间失去了直接联系,所以,当对象A实例化和运行时,如果需要对象B的话,IoC容器会主动创建一个对象B注入到对象A所需要的地方。IOC容器要生成的对象是通过配置文件中给出定义的,用java反射技术,根据配置文件中给出的类名生成相应的对象。

2023-10-09 22:50:36 26 1

原创 java面试宝典2019

java面试宝典2019,java面试葵花宝典。java面试宝典2019。

2023-09-15 18:27:00 18 1

原创 Java面试BAT通关手册

转载请标明出处: https://blog.csdn.net//article/details/88823244手机端可以关注微信公众号号查看:

2023-09-15 18:03:46 15 1

原创 Java进阶 - MyBatis查询数据库 && Spring Boot 单元测试 - 细节狂魔

经过前的学习咱们 Spring 系列的基本操作已经实现的差不多了,接下来,咱们来学习更重要的知识,将前端传递的数据存储起来,或者查询数据库的数据。xml 文件,不能随便创建。我们在配置文件中,已经指定了 xml 文件存储路径。并且,命名规则也指定了。我们必须按照规则来。至于 xml 文件的配置内容,直接把下面的内容,拷贝到里面去。相信很多朋友,都会发现 mapper标签中的 namespace 属性,缺少value值。namespace 的值,是需要我们手动去填写的。

2023-09-14 22:32:56 596

原创 ISCC 2022 wp

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

2023-09-14 21:18:20 62

原创 2019年互联网高频Java面试题指南!互联网升职加薪方案!

2019年互联网高频Java面试题指南!互联网升职加薪方案!》2019年我们只聊面试!让你能够随时准备升职加薪!少刷点抖音头条,少喝点鸡汤毒药,少研究些成功学,这些给不了你什么,你也得到不到什么,多学点技术,这才是王道!最近整理了多达200+的互联网高频面试题提纲,后期也会不断的更新,在接下来的2019年,会逐一讲解和探讨,也希望和大家一起继续探讨交流!也希望大家,有面试的直接扔到星球里边来,大家一起学习和探讨!

2022-11-27 22:26:19 117 1

空空如也

空空如也

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

TA关注的人

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