自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mycat JVM appears hung Timed out waiting for signal from JVM

Mycat配置支持的JVM参数是支持1.8_x之前的版本,当JDK升级到1.8_x以后在大数据量操作的时候JVM内存的分配就会存在问题,我们需要做相应的调整以适应这种参数改变,JDK 1.8_x不支持Permgen。参数需要做的调整为-XX:PermSize=64m -XX:MaxPermSize=128m 变成-XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m 否则在JDK 1.8_x中不生效。

2023-10-26 13:03:02 346

原创 JVM经典书籍

书中完备、准确而又详尽地描述了Java虚拟机。算法篇介绍了标记-清除算法、引用计数法、复制算法、标记-压缩算法、保守式GC、分代垃圾回收、增量式垃圾回收、RC Immix算法等几种重要的算法;此书全书共分11章,从代码和实战的角度对class文件格式、运行时数据区域、指令集和解释器、类和对象内部结构、方法调用和返回、异常处理等Java虚拟机核心概念进行了详细讨论。基于最新JDK1.7,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行全面而深入的分析,深刻揭示JVM的工作原理。

2023-10-26 00:00:37 143

原创 JVM原理和调优(读这一篇就够了)

为什么要停止呢,如果不停止的话,意味着回收线程和用户线程同步执行,回收线程会认为用户线程的内存不是垃圾对象,因此不予理会,但如果用户线程很快执行完,它使用的对象就变成垃圾对象了,这时候回收线程不知道该如何处理,因此为了更好的控制内存,fullgc的时候,必须暂停用户线程,回收完成后,再恢复用户线程。因此会出现每过13秒,会有60M数据进入old区。当old区内存满了后,就会触发fullgc,但是发现引用还在(list还是运行),因此没法回收,但是死循环又一直在new对象,old区无内存可用,于是就OOM。

2023-10-18 03:01:26 731 1

原创 JVM 深入笔记(1)内存区域是如何划分的?

JVM 是一个从事 Java 开发的软件工程师的修炼之路上必然要翻阅的一座山。当你了解了 Java 的基本语言特性,当你熟悉了 Java SDK 中的常用 API,当你写过一些或大或小的程序后,你就会有去了解 JVM 的需求出现。如果你现在没有这种感觉,那么可能此时去了解 JVM 并不是一个好的时机,因为你不会带着问题去探索。从本篇开始的系列博文,记录本人的 JVM 深入学习总结,其中结合了本人自己的一些经验,也参考了一些书籍和网络资源,然后根据自己的理解写出这些博文。如有版权问题,请伊妹儿我 😃。

2023-10-18 00:36:32 65 1

原创 JVM - 内存模型

虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。在执行应用程序的过程中会将它管理的内存分为若干个不同的区域。其中一部分是线程私有的,一部分是线程共享的。程序开始执行时它才执行,程序结束时它就结束。方法区:存放常量信息,类信息,方法信息。程序,真真正正在执行的是一个叫做。使用的是栈的指令架构。虚拟机进程退出的情况。

2023-10-13 12:16:38 32

原创 Java面试题目大汇总(附参考答案)

足足准备了长达3个月的面试,终于在上周拿到了阿里的offer!博主汇总整理了一份我面试之前看的一些Java面试题目,可以说是非常详细!分享给大家,希望对正在面试Java岗位的朋友有帮助哈~~

2023-10-12 00:12:26 66 1

原创 Java面试题及答案整理( 2023年 6 月最新版,持续更新)

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。

2023-10-11 17:56:03 65 1

原创 Java面试集锦:面试官只问一个问题,30几人集体懵圈

Java编译器利用分析方法或构造方法中可能产生的结果来检测Java程序中是否含有检测异常的处理程序,对于每个可能的可检测异常,方法或构造方法的throws子句必须列出该异常对应的类。Error类的异常是不允许捕获的,而发生Exception异常的程序可以通过捕获处理后正常运行保持程序的可读性及可靠性。常见的Error类异常(各位Java爱好者有空可以来我的Java学习群515675832,每天都有企业项目视频+素材源码分享,小白也可以来,群里有完整成熟的Java学习体系供大家参考学习)

2023-10-11 13:42:24 43

原创 Java面试官:兄弟,你确定double精度比float低吗?

double和float提供了快速的运算,然而问题在于转换为二进制的时候,有些数字不能完全转换,只能无限接近于原本的值,这就导致了你看到的不正确的结果。,a的值为2,b的值为1.1,我侄女五岁半都知道答案应该是0.9,结果程序算出来的结果竟然是0.89999…,我当时又气又激动,气的是计算机还没有我侄女靠谱,激动的是我竟然第一次找到了Java的bug。我有一个朋友,叫老刘,戴着度数比我还高的近视镜,显得格外的“程序员”;“看到二哥的信息后,我沮丧的心情得到了很大的安慰。老刘:“东丰啊,你非常的优秀。

2023-10-11 12:42:43 23

原创 java进阶学习笔记

1. 表(List) 和 集合(Set) 是java.util中定义的两个接口(interface)。2.String类对象是不可变对象(immutable object)String类对象是不可变对象(immutable object)。与此同时,内部类对象可以访问它所依附的外部类对象的成员(即使是private的成员)。11.一个接口不能继承一个抽象类,但可以通过extends同时继承多个接口,实现接口的多继承。9.接口的实现必须通过子类完成,使用关键字implements,而接口也可以多实现。

2023-10-11 11:52:39 25

原创 Java微服务下的分布式事务介绍及其解决方案

1.由于最近在学习springcloud的项目,现在互联网下,分布式,微服务横行,难免会遇到分布式下的事务问题,这是一个难点,也是面试经常问的,别面试官一看你简历,都是微服务项目,问你了解啥是分布式事务不,你来句没有,这就很尴尬了,当然微服务下可能没有分布式事务,但是很多场景是需要分布式事务的,下面我就来介绍下什么是分布式事务,和分布式事务的解决方案部署在不同结点上的系统通过网络交互来完成协同工作的系统比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。

2023-10-10 13:18:18 138 1

原创 Java多线程总结

涉及到两个概念,线程(Thread)、以及任务(Task, Java里面叫Runnable),推荐的做法是写一个类(class)实现Runnable接口,作为Task,传给Thread的的构造函数,调用Thread的start方法即可。从任务抽象的角度来说,推荐前者,后者的优势是简单。依个人的理解,此时当前线程也是被阻塞(Blocked)了,等待另外一个线程运行完毕,然后唤醒。多个线程同时访问同一份资源(内存块)的时候,可能发生某一个线程处理到一半,被别的线程抢走资源并修改的问题,造成资源的不一致。

2023-10-10 12:32:39 33 1

原创 java分布式实战

iBase4J是基于java的开源框架搭建的分布式系统架构,使用到的开源框架有:SpringMVC,Mybatis,Redis缓存,Dubbo,ActiveMQ,面向模块分布式基础SpringSession统一管理session,Druid数据库连接等等。

2023-10-10 10:09:45 31 1

原创 DLL的多线程

为了解决这个问题,我们可以通过TLS机制,为每一个使用该全局变量的线程都提供一个变量值的副本,每一个线程均可以独立地改变自己的副本,而不会和其它线程的副本冲突。如果一个初始化函数是在线程A中调用的,而核心功能函数是在线程B中调用的,那么线程A初始化函数的资源就无法对应线程B中的核心功能,此外还有核心功能函数间的数据传递,这样的DLL就不是线程安全的,必然导致错误。这是一个优点也是一个缺点。但如果你要保持函数的线程安全,那么静态变量是不能用的,因为静态变量是全局的,是属于进程的,也就是属于进程内线程共享的。

2023-10-10 00:09:16 407 1

原创 C语言多线程

由于函数pthread_create接收的传输参数必须为void*,而且只有一个,故当需要传递多个参数时,需要用到结构体。当线程完成工作后,若无需继续存在,则会调用pthread_exit函数。也就是说,这个函数可以显式地退出一个线程。的参数是一个空指针,这个空指针直接指向了用于循环的。如果线程成功创建,函数返回0,否则说明创建失败。下面做一个简单的示例,通过调用多线程来打印数字。的取值刚好发生变化,有时尚未发生变化。输出的值不同,是因为我们传入。在C语言中创建线程方式如下。为线程运行函数起始地址;

2023-10-10 00:08:37 48 1

原创 C语言创建多线程

(3)通信机制方面,进程间的数据空间相互独立,彼此通信要以专门的通信方式进行,且必须经过操作系统。(1)进程都有独立的地址空间,创建新进程要耗费时间为期分配系统资源,而线程共享进程的地址空间,所以创建线程花费的时间要少得多。线程创建成功时,pthread_create函数返回0,新创建的线程开始运行第3个参数所指向的函数,原来的线程继续运行。(2)系统调度方面,由于进程地址空间独立而线程共享地址空间,所以线程间的切换速度要远远快过进程间的切换速度。(1)线程ID:每个线程都由一个唯一的线程号。

2023-10-10 00:07:46 117 1

原创 23、JAVA进阶——日期操作类

作者简介:热爱国学的Java后端开发者,修心和技术同步精进。????个人信条:不迁怒,不贰过。小知识,大智慧。????本文内容:JAVA进阶——日期操作类更多内容点击??

2023-10-09 23:13:52 26

原创 Java面试--队列和栈

栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性。队列则不同,它基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影响数据结构,速度要快的多。1、栈的插入和删除操作只允许在表的尾端进行(在栈中成为“栈顶”),满足“FIFO:First In Last Out”;队列只允许在表尾插入数据元素,在表头删除数据元素,满足“First In First Out”

2023-10-09 22:53:55 25

原创 java面试必看书单

3.《大型分布式网站架构设计与实践》 4 .《布式服务框架原理与实践》1.《OpenStack设计与实现》 2.《docker入门与实践》3.《Java并发编程艺术》 4.《Effective Java》1.《Java编程思想》 2.《Java核心技术卷一.二》1.《深入理解JVM虚拟机》 2.《Java并发编程实战》5.《Java性能调优指南》 6.《 Netty权威指南》1.《TCP/IP卷一》 2.《计算机网络:自顶向下》1.《算法导论》 2.《数据结构与算法(Java版)》

2023-09-15 18:30:47 35 1

原创 Java面试中常被问到的几大技术难题

大家在平常面试java的过程中都会遇到哪些难题呢?还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?今天小编为你整理Java面试中会被问到的几个技术难题。

2023-09-15 18:07:36 224 1

空空如也

空空如也

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

TA关注的人

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