自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt使用多线程的一些心得——1.继承QThread的多线程使用方法

Qt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类转移到一个Thread里。Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。两种方法区别不大,用起来都比较方便,但继承QObject的方法更加灵活。这里要记录的是如何正确的创建一个线程,特别是如何正确的退出一个线程。

2023-10-26 13:30:42 139

原创 LeetCode Java面试刷题笔记汇总

LeetCode Java刷题笔记汇总,按照类型刷题效率更高。。大厂面试算法题有一定的运气成分,有可能你刷的比较少,但是遇到会的题就进去了,也有可能你刷的比较多,但是出题比较偏就进不去,可以针对某个大厂来刷题,推荐。你刷题越多,那么靠运气的成分就越少,一般来说,刷题两三百道的时候,就可以去国内大厂的一般开发岗位尝试投递且比较稳了。

2023-10-26 00:27:29 83

原创 JVM(java虚拟机)

JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟计算机功能来实现的,JVM屏蔽了与具体操作系统平台相关的信息,Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改的运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

2023-10-26 00:12:17 55

原创 JVM工作原理简述

JAVA之所以跨平台,是因为有JVM这么一个编译和运行机器,它令对于系统的操作对于用户而言是黑盒的,使得开发人员更快速和更注重软件功能的实现。然而,也因为jvm是黑盒,所以内部和底层具有不确定性,如果用状态机来表示jvm,那么jvm就是一种现役复制不确定的状态机,因为它的状态和表现跟系统、底层、硬件等等都有关系,从而状态是不确定,如果在分布式应用中,jvm一直以来兼容性都不是很好,这就是主要原因。尽管如此,就单一的系统而言,弄清楚jvm运行的来龙去脉,对于系统的运行至关重要。

2023-10-18 03:12:29 46 1

原创 JVM从零到一系列:01--JVM概述【初识JVM】

虚拟机是一款软件,用来执行一系列虚拟的计算机指令。虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机是对物理计算机的仿真,提供一个可运行完整操作系统的平台。软件虚拟机是专门为执行单个计算机程序而设计的。在虚拟机上运行的软件所拥有的资源都被限制于虚拟机提供的资源。

2023-10-18 00:47:34 21 1

原创 Java:多线程:到底什么时候该用多线程

也就是说,是一种CPU闲等状态,不过有时我们使用多线程并不一定是保持闲等时的程序响应,例如在追求高性能的程序中,某条线程在进行高强度的运算,此时若对运算性能不满意,我们也许会再启动若干条运算线程(当然,是在CPU有运算余力的情况下),此时,高强度运算应该归为一种“忙等”状态。这里不需要消息队列,因为所有的线程都是相同的块的一个部分,并且可以共享。这个情景是不久前一位网友问我的,他的毕业设计是编写一个坦克大战的游戏,在编的差不多的时候,突然想到每一辆坦克、每一发子弹都是用单独的线程不是很合理,问我如何改进。

2023-10-12 00:27:48 722

原创 Java面试题以及答案---Redis

当我们的存取的 key 到达的时候,redis会根据 crc16 的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。从服务器连接主服务器,发送 SYNC 命令。一致性的问题很常见,因为加入了缓存之后,请求是先从 redis中查询,如果 redis 中存在数据就不会走数据库了,如果不能保证缓存跟数据库的一致性就会导致请求获取到的数据不是最新的数据。

2023-10-11 13:57:47 21

原创 java面试笔试题50道及答案

**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件 "stud "中。求代表的两位数,及809*后的结果。题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…

2023-10-11 12:58:09 142

原创 Java面试中经常问的问题

说回面试的事,这份面试清单本来是只有我们内部使用的,可到后来有很多朋友在微信上联系到我,让我帮他们找一些面试方面的资料,而且这些关系也不太好拒绝,一呢,是因为这些找我的人要么是我的朋友的弟弟妹妹,要么是我的表弟表妹们;这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。第二,你能进入哈佛,也说明你脑子不笨;

2023-10-11 12:08:02 21

原创 Java虚拟机:JVM 主要组成部分与内存区域

对于永久代,由于类和方法等信息比较难确定大小,所以指定永久代的大小比较困难,太小容易出现永久代溢出,太大则容易导致老年代溢出,并且每次Full GC 之后永久代的大小都会改变,如果动态生成很多 class 的话,就很可能出现 OOM,毕竟永久代的空间配置有限。JDK8 之前,Hotspot 中方法区的实现是永久代(Perm),JDK8 开始使用元空间(Metaspace),以前永久代的静态变量和常量池移至堆内存,其他内容移至元空间,元空间直接在本地内存分配。该区域线程私有,生命周期与线程的生命周期相同。

2023-10-10 13:36:10 37 1

原创 Java学习路线图,看这一篇就够了!

主要分为三阶段 | 耗废1024根秀发,Java学习路线图来了,整合了自己所学的所有技术整理出来的2022最新版Java学习路线图,适合于初、中级别的Java程序员。

2023-10-10 12:50:22 651 2

原创 Java多线程学习笔记(七)--线程池

1.corePoolSize:核心线程数量,指定了线程池中的线程数量,当使用Executors创建了一种线程池时,线程池中是没有活跃的线程的,当提交一个任务时,如果当前线程池中活跃线程数量小于核心线程数量,则会创建一个线程,这个线程就是活跃线程,当线程池中的线程数量达到核心线程数量,再来一个任务需要线程时,这个任务会被放到队列中,等待线程空闲。该方法返回一个只有一个线程的线程池,若多余一个任务被提交到该线程池,任务会被保存在一个队列中,待线程空闲,按先进后出的顺序执行队列中的任务。

2023-10-10 10:27:27 11 1

原创 JAVA—JVM详解

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。通过JVM,Java实现了平台无关性。

2023-10-10 00:49:50 555 1

原创 JavaEE进阶教程系列文章目录汇总

本文是JavaEE进阶教程系列专栏的目录贴(持续更新中…)专栏介绍:全专栏内容完结不会少于120篇,每周更新三篇,全面成长为Java开发工程师,文章覆盖了JavaEE基础与高级JavaWebMysql数据库Redis数据库MogodbKafakaRabbitMQMyBatisMaven基础与高级Spring框架Java高频面试题300道Java常用算法Git操作Java常用源码解析Lua知识;学完本专栏的知识足够应对常用的开发场景,加强基础知识JavaEE进阶教程系列。

2023-10-10 00:49:01 18 1

原创 Java7和Java8有什么区别?Java面试常见问题!

单例模式是指一个类仅允许创建其自身的一个实例,并提供对该实例的访问权限。它包含静态变量,可以容纳其自身的唯一和私有实例。它被应用于这种场景——用户希望类的实例被约束为一个对象。在需要单个对象来协调整个系统时,它会很有帮助。8. 什么是依赖注入依赖注入是spring框架中的解耦的一种策略,称为DI,主要有set方式(提供set和get方法)和constractor(构造方法)方式,它使得类与类之间以配置文件的形式组织在一起,而不是硬编码的方式。

2023-10-10 00:48:04 213 1

原创 C#一个简单多线程的实例

普通线程的优先级默认为Normal;**要注意的是:**系统优先执行优先级较高的线程,但这只意味着优先级较高的线程占有更多的CPU时间,并不意味着一定要先执行完优先级较高的线程,才会执行优先级较低的线程。多线程是相对于进程里更小的单位,比如3个线程在1个进程里进行不同的操作,他们所拥有的资源就是那个进程里的资源,不会占用更多资源,只是通过线程更合理的分配资源。在很久以前的MS-DOS时代时代,都是单任务的,比如说我想玩潜艇大战和听歌,很抱歉,只能选择玩潜艇大战或者听歌,不能同时进行。

2023-10-09 23:24:28 21 1

原创 2023年Java最新面试题,附详解答案

序列化就是一种用来处理对象流的机制,就是将对象的内容进行流化,可以对流化后的对象进行读写操作,也可以将流化后的对象传输于网络之间。可通过实现接口来实现序列化。AOP是面向切面编程,用于在不改变原有逻辑的基础上增加一些额外的功能,如事务管理、日志、缓存、权限控制等。Spring AOP是基于代理的。如果目标对象实现了接口,则默认采用JDK动态代理。如果目标对象没有实现接口,则采用CgLib进行动态代理。如果目标对象实现了接口,且强制CgLib代理,则采用CgLib动态代理。IOC翻译为。

2023-10-09 23:05:03 158 1

原创 Java面试突击

自定义类加载器只需要,实现了双亲委派机制,默认实现是空方法,所以我们自定义类加载器主要是重写findClass方法。package 基础面试.JVM;// 自定义类加载器:重写findClass@Overridetry {// 转换成class对象返回// 打破双亲委派:重写loadClass@OverrideClass

2023-09-15 18:43:45 119

原创 Java面试复习大纲2.0(持续更新)

本系统是X委托Y开发的用于Z的系统,系统包括A、B、C、D等模块。系统使用了Java企业级开发的开源框架E以及前端技术F。表示层运用了G架构,使用H作为视图I作为控制器并实现了REST风格的请求;业务逻辑层运用了J模式,并通过K实现事务、日志和安全性等功能,通过L实现缓存服务;持久层使用了M封装CRUD操作,底层使用N实现数据存取。整个项目采用了P开发模型。说明:上面的描述中,E通常指Spring(Java企业级开发的一站式选择);

2023-09-15 18:20:29 23 1

空空如也

空空如也

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

TA关注的人

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