自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 坚持学习,早日月入30k

相关知识

2023-02-20 22:49:00 141

原创 MySQL调优

MySQL学习

2022-11-17 23:24:16 285

原创 C语言入门之分支和循环

C语言入门----分支循环

2022-09-20 00:18:47 290

原创 C语言入门

C语言入门

2022-09-09 00:12:33 689

原创 JVM层GC调优

1. JVM的内存结构Matespace:Class、Package、Method、Field、字节码、常量池、符号引用CSS:32位指针的Class,使用-XX:+UseCompressedClassPointers启用;CodeCache:JIT编译后的本地(native)代码、JNI使用的C代码1.1 运行时数据区1.1.1 方法区        与Java堆一样,是各个线程共享的内存区域,它用于存储已

2022-04-07 22:22:23 1109

原创 Nginx性能监控与调优

1. Nginx安装(以Ubuntu为主)1.1 ubuntu官方文档sudo apt updatesudo apt install nginx 1.2 centos官方文档cat /etc/yum.repos.d/nginx.repo#修改源[root]name=nginx repobaseurl=http://nginx.org/packages/centos/7/$branch/gpgcheck=0enabled=11.3 配置文件详解/ect/nginx/nginx

2022-04-04 21:50:12 3413

原创 Tomcat性能监控与调优

1. Tomcat远程debugJDWP协议1.1修改tomcat配置打开 Tomcat下./bin/startup.sh将最后一行修改为exec "$PRGDIR"/"$EXECUTABLE" jdpa start "$@"增加jpda修改 ./bin/catalina.shif [ "$1" = "jpda" ] ; then if [ -z "$JPDA_TRANSPORT" ]; then JPDA_TRANSPORT="dt_socket" fi if

2022-04-01 23:12:37 951

原创 【基于Btrace的监控调试】

Btrace简介(Docker可选择阿里arthas)建议使用JDK8        Btrace可以动态地向目标应用程序的字节码注入追踪代码。        JavaComplierApi、JVMTI、Instrumentation+ASMBtrace安装入门BtraceBtrace_V2.2.2  &n

2022-03-30 17:05:37 347

原创 【基于JVisualVM的可视化监控】

监视本地Java进程jdk9及以后没有visualvm工具 visualvm下载 visualvm插件下载点击install安装监控本地Tomcat监控远程Tomcat监控普通的JAVA进程

2022-03-28 22:32:10 392

原创 【基于JDK命令行工具的监控】

1. JVM 的参数类型1.1 标准参数-help-server -client-version -showversion-cp -classpath1.2 x参数非标准化参数:在各个JVM的版本中可能会变。-Xint:解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式,JVM自己来决定是否编译成本地代码1.3 xx参数非标准转化参数相对不稳定主要用于JVM调优和DebugBoolean类型格式: -XX:[±] <

2022-03-22 20:15:11 5578

原创 【笔记】架构整洁之道

SRP:单⼀职责原则。        任何⼀个软件模块都应该只对某⼀类⾏为者负责。        该设计原则是基于康威定律(Conway’s Law)[1]的⼀个推论——⼀个软件系统的最佳结构⾼度依赖于开发这个系统的组织的内部结构。这样,每个软件模块都有且只有⼀个需要被改变的理由。OCP:开闭原则。   &

2022-03-21 23:36:39 4587 3

原创 【笔记】代码整洁之道

        有太多时候,我们一旦写出能工作的代码,就转移到下一个问题上,而没有下足功夫调整代码,让后来者易于阅读。记住,下一位读代码的人最有可能是你自己。        所以,多少尊重一下你的手艺吧。花一点点实践在每个函数和类上。选用较好的名称,将大函数切分为小函数,时时照拂自己创建的东西。用心是最珍贵的资源。...

2022-03-21 22:51:26 1654

原创 关于String类

我们说String类是不可变的,因为该类使用了final修饰,但是StringBuilder类也是使用了final修饰,那为什么说StringBuilder是可变的?public final class String implements java.io.Serializable, Comparable<String>, CharSequence { @Stable private final byte[] value;}public final class St

2022-03-13 10:47:23 80

原创 【多线程】并发死锁问题与企业级解决方案

1. 死锁是什么?有什么危害1.1 什么是死锁发生在并发种互不相让:当两个(或更多)线程(或进程)相互持有对方所需要的资源,又不主动释放,导致所有人都无法继续前进,导致程序陷入无尽的阻塞,这就是死锁。如果多个线程之间的依赖关系是环形,存在环路的锁的依赖关系,那么也可能发生死锁。1.2 死锁的影响死锁的影响在不同系统中是不一样的,这取决于系统对死锁的处理能力数据库中:检测并放弃事务JVM中:无法自动处理1.3 几率不高但危害大不一定发生,但是遵守墨菲定律西方的

2022-03-12 23:27:42 717

原创 【Java并发底层原理精讲】JAVA内存模型-底层原理

1. 到底什么叫"底层原理"?本章研究的内容是什么?1.1 重要性Java 面试的必考知识点。只有学会了这一章的内容,才能说你真正懂了并发。1.2 从JAVA代码到CPU指令1.最开始,我们编写的Java代码,是*.java文件2.在编译( javac命令)后,从刚才的*.java文件会变出一个新的Java字节码文件( *.class)3.JVM会执行刚才生成的字节码文件( *.class ) , 并把字节码文件转化为机器指令4.机器指令可以直接在CPU上运行,也就是最终的

2022-02-20 17:13:05 359

原创 【Java并发底层原理精讲】线程的核心

面试问题总结我们是否需要给线程设置为守护线程 ?run方法是否可以抛出异常?如果抛出异常, 线程的状态会怎么样?线程中如何处理某个未处理异常?什么是多线程的上下文切换?用suspend()和resume()来阻塞线程可以吗 ?为什么 ?wait/notify、sleep异同 (方法属于哪个对象?线程状态怎么切换?)在join期间,线程处于哪种线程状态?守护线程和普通线程的区别为什么线程通信的方法wait(), notify()和notifyAll()被定

2022-02-20 16:14:39 278

原创 关于synchronized

什么是synchronized?JVM会自动通过使用monitor来加锁和解锁,保证了同时只有一个线程可以执行指令代码,从而保证线程安全,具有可重入和不可中断的性质。Synchronized的作用能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发的安全效果。Synchronized的两个用法:对象锁:包括方法锁(默认锁对象为this当前实例对象)和同步代码块锁(自己指定锁对象)类锁:指synchronized修饰静态的方法或指定锁为Class对象。MONITOR状态:正

2022-02-19 23:17:47 184

原创 【多线程】追寻并发的崇高理想-线程安全【工作常用】

常见问题1. 一共有哪几类线程安全问题?2. 哪些场景需要额外注意线程安全问题?3. 什么是多线程的上下文切换?线程安全什么是线程安全?《Java Concurrency In Practice》的作者Brian Goetz对“线程安全”有一个比较恰当的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的”。这句话的意思是:不管业务中.

2022-01-04 23:40:52 2259

原创 【多线程】线程异常知多少?

1.常见问题1.1 Java异常体系图1.2 实际工作中,如何全局处理异常?为什么要全局处理?不处理行不行?1.3 run方法是否可以抛出异常?如果抛出异常,线程的状态会怎么样?run()方法不可以向上抛出异常,只可以自己捕获,抛出异常后,线程停止运行,进入终止状态。2. 线程的未捕获异常UncaughtException应该如何处理?2.1 为什么需要UncaughtExceptionHandler?主线程可以轻松发现异常,子线程却不行/** * 描述:单线程,抛出处理,有异常堆

2022-01-02 20:27:03 771

原创 【多线程】一网打尽线程属性

1. 考考你什么时候我们需要设置守护线程?我们应该如何应用线程优先级来帮助程序运行?有哪些禁忌?不同的操作系统如何处理优先级问题?2. 线程各属性纵览属性名称用途编号(ID)每个线程都有自己的ID,用于标识不同的线程名称(Name)让用户或程序员在开发、调试或运行过程中,更容易区分每个不同的线程、定位问题等是否是守护线程(isDaemon)true代表该线程是【守护线程】,false代表线程是非守护线程,也就是【用户线程】优先级(Priority)

2021-12-29 23:06:22 168

原创 【多线程】Thread和Object类中的重要方法详解

1.常见面试问题1.1 为什么线程通信的方法wait()、notify()、和notifyAll()被定义在Object里面?而sleep定义在Thread类里?1.2 用3种方式实现生产者模式1.3 Java SE8和Java1.8和JDK8是什么关系,是同一个东西吗?1.4 join、sleep和wait期间线程的状态分别是什么?为什么?2. 方法概览类方法名简介Threadsleep相关本表格的“相关”,指的是重载方法,也就是方法名相同,但是参数不同,例如slee

2021-12-19 13:10:01 556

原创 【多线程】图解线程生命周期

1. 线程有哪6种状态?New:新建,已经创建尚未启动,未执行start()Runnable:可运行的,调用start()方法之后BlockedWaitingTimed WaitingTerminated2. 每个状态是什么含义?3. 状态间的转换图示4. 阻塞状态是什么?5. 常见面试问题...

2021-12-15 23:59:25 634

原创 JAVA异常处理机制

Error和RuntimeException统称为非受检查异常UncheckedException。Exception分为RuntimeException和非RuntimeException。

2021-12-13 21:02:40 174

原创 【多线程】线程停止中断之实践

启停原则1.讲解原理原理介绍:使用interrupt来通知,而不是强制停止。2.最佳实践:如何正确停止线程通常线程会在什么情况下停止普通情况run方法的代码执行完成出现异常,并且方法中没有捕获正确的停止方法interrupt通常情况下如何停止线程可能被阻塞如果线程在每次迭代后都阻塞正确停止带来的好处3.停止线程的错误方法4.重要函数的源码解析5.常见面试问题...

2021-12-09 23:14:34 526

原创 【多线程】开启多线程的启动世界

启动线程正确和错误的方式1.start()和run()的比较 //调用run方法 Runnable runnable = () -> { System.out.println("thread name is " + Thread.currentThread().getName() + ",thread id=" + Thread.currentThread().getId()); }; runnable.run();

2021-12-08 23:02:16 73

原创 学习编程知识的优质路径及了解技术领域的最新动态

学习编程知识的优质路径宏观上并不是靠工作年限,有的人工作了五年技术还只是只懂皮毛。有强大的责任心,不放过任何bug,找到原因并去解决,这就是提高。主动:永远不会觉得自己的时间多余,重构、优化、学习、总结等。敢于承担:虽然这个技术难题以前没碰到过,但是在一定的了解调研后,敢于承担技术难题,让工作充满挑战,这一次此攻克难关的过程中,进步是飞速的。关心产品,关心业务,而不只是写代码。微观上系统性的学习。看经典书籍(指外国人写的经典的中国译本,比如Java并发编程实战、自顶向下计算机网

2021-12-06 23:09:17 75

原创 【多线程】实现多线程的正确姿势

关于网上Java多线程实现的方式Oracle的官方文档两种There are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread.The other way to create a thread is to decla

2021-12-04 23:38:47 377

原创 Kafka核心API-Producer生产者

Producer发送模式同步发送异步发送异步回调发送

2021-11-28 23:43:42 1402

原创 DB2数据库报错

第一日第二日 12:00 (迪士尼乐园)[https://m.dianping.com/shopshare/FnOgs3bUNIlFUYys?msource=Appshare2021&utm_source=shop_share]第三日

2021-11-23 08:20:29 1898

原创 Kafka客户端操作

AdminClient APIJava DocAPI作用AdminClientAdminClient客户端对象NewTopic创建TopicCraeteTopicsResult创建Topic的返回结果ListTopicsResult查询Topic列表ListTopicsOptions查询Topic列表及选项DescribeTopicsResult查询TopicsDescribeConfigsResult查询Topics配置项

2021-11-18 22:02:20 553

原创 使用Selenium实现报销发票

做什么公司内部出租车发票报销脚本,仅供本公司人员使用,但是可以为想编写自动化脚本的人提供参考。需要了解哪些技术PythonSelenium爬虫Html/Js开发中遇到了哪些问题?修改句柄(避免因为新打开标签而获取不到元素);随机生成Html id无法定位;Session未及时生效,导致调用接口获取数据失败;页面渲染缓慢导致定位元素失败;浏览器驱动版本和浏览器版本不一致。目的避免重复报销动作,节约时间。Giteeehummingbird入口类hummingbir

2021-08-01 00:18:57 190

原创 Mysql8安装相关问题

Ubuntu 安装 MySQL 8.0+MySql错误 1251 - Client does not support authentication protocol requested by server 解决方案这个问题可能是在安装过程中选择[加密方式]时,选择Use Strong Password Encryption(RECOMMENDED)导致的,应该选Retain MySQL 5.x Compatibility。...

2021-04-17 16:29:04 306

原创 Kafka流处理平台

课程安排Kafka概念解析Kafka结构设计Kafka场景与应用Kafka高级特性2-1 什么是KafkaKafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用Scala 语言编写,目前是 Apache 的开源项目。面向数据流的生产、转换、存储、消费为一体的流处理平台。流平台有三个关键特性:是发布和订阅数据的流,类似于消息队列。是数据流存储的平台,并且具备容错。当数据产生时对数据做处理。Kafka作用于什么?(数据传输)

2021-02-24 22:05:47 482

原创 SpringBoot2.0不容错过的新特性 WebFlux响应式编程【第6章】webflux客户端声明式restclient框架开发讲解

6-1 框架效果介绍

2021-01-22 00:28:06 264 1

原创 SpringBoot2.0不容错过的新特性 WebFlux响应式编程【第4章】reactive stream 响应式流

4-1 初识Reactive Stream概念JDK9引入的一套标准,是一套基于发布订阅者模式数据处理的规范。FLOW API。背压backpress发布者和订阅者之间的互动,调节数据流量的作用,

2021-01-15 00:21:40 749

原创 SpringBoot2.0不容错过的新特性 WebFlux响应式编程【第3章】Stream流编程

3-1 Stream流编程-概念Stream是一个高级迭代器,不是数据结构,不是集合,不会存放数据,它关注的是怎么把数据高效的处理。外部迭代和内部迭代外部迭代:for 、whileint [] nums = {3,7,4}; int sum = 0;//外部迭代for (int num : nums) { sum += num;}System.out.println("sum = " +sum);内部迭代int intStream = IntStr

2021-01-11 00:11:13 411 2

原创 Java工具

Java反编译查看工具jclasslib bytecode viewer下载链接

2021-01-09 13:26:20 105

原创 【一】SpringBoot2.0不容错过的新特性 WebFlux响应式编程

响应式编程异步非阻塞支持非常高的吞吐量(用少量资源处理更多请求)函数式编程

2021-01-05 21:31:55 190

原创 【转发】 对于Arraylist 的一些疑问

是否保证线程安全?ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全。底层数据结构区别?Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构。插入和删除是否受元素位置的影响?ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。 比如:执行add(E e)方法的时候, ArrayList 会默认在将指定的元素追加到此列表的末尾,这种情况时间复杂度就是O(1)。但是如果要在指定位置

2020-11-26 22:11:43 358

原创 【转】对于HashMap的一些疑问

HashMap的结构数组的寻址快,但是数据的插入与删除速度不行。 链表的插入与删除速度快,但是寻址速度不行。 那有没有一种两者兼具的数据结构,答案肯定是有的,那就是hash表。 HashMap 就是根据 数组+链表的方式组成了hash表:对于HashMap的一些疑问一、HashMap的resize过程是什么样的?HashMap在put的时候会先检查当前数组的length,如果插入新的值的时候使得length > 0.75f * size(f 为加载因子,可以在创建hashMap时指定)的话

2020-11-26 22:10:22 129

空空如也

空空如也

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

TA关注的人

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