jvm之栈、堆 Java 编程技术

jvm之栈、堆

1. Java Virtual Machine ​ 人群当中,一位叫java的小伙子正向周围一众人群细数着自己取得的荣耀与辉煌。就在此时,c老头和c++老头缓步走来,看着被众人围住的java,c老头感叹地对着身旁的c++说道:“原以为你就可以挑起我的梁子一直走下去的。” ​ c++笑着回应道:“江山代有才人出,这世界以后总会是90后甚至00后的天下!” 察觉到c和c++的java连忙走...
阅读全文
Java入门基础学习,成为一个Java程序员的必备知识 Java 编程技术

Java入门基础学习,成为一个Java程序员的必备知识

引言 众所周知,Java是一种面向对象的编程语言。您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码。 数据类型 Java 有 2 种数据类型,一种是基本数据类型,一种是引用类型。 基本数据类型用于存储简单类型的数据,比如说,int、long、byte、short 用于存储整数,float、double 用于存储浮点数,...
阅读全文
「JAVA」线程生命周期分阶段详解,哲学家们深感死锁难解 Java 编程技术

「JAVA」线程生命周期分阶段详解,哲学家们深感死锁难解

每个事物都有其 生命周期 ,也就是事物 从出生开始 到 最终消亡 这中间的整个过程;在其整个生命周期的历程中,会有不同阶段,每个阶段对应着一种状态,比如:人的一生会经历从婴幼儿、青少年、青壮年、中老年到最终死亡,离开这人世间,这是人一生的状态;同样的,线程作为一种事物,也有生命周期,在其生命周期中也存在着不同的状态,不同的状态之间还会有互相转换。 在上文中,我们提到了 线程通...
阅读全文
微服务架构详解 编程技术 软件架构

微服务架构详解

本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。 要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。 ...
阅读全文
Java 程序员的退路是什么? Java 编程技术

Java 程序员的退路是什么?

最近看到 有人 问了一个扎心的问题: 下面跟着一条更扎心的评论: 吃 Java 这碗饭的,未来无非就这几个发展路径,一个是深耕技术,往架构师方向努力;第二个是往管理方向发展,这对你的综合能力要求比较高;还有一个不错的路径,就是转去做大数据。 前两个路径,如果你比较优秀,就当我没说,如果你觉得自己还不是那么优秀,那第三个方向能更快的帮你涨薪,毕竟大数据开发的缺口还是...
阅读全文
光一个微服务架构,就把面试官吹晕了 编程技术 软件架构

光一个微服务架构,就把面试官吹晕了

几年前,小皮和朋友创业做网上超市,小皮负责程序开发,那时候客流量不大,程序需求都很简单,小皮左手右手一个慢动作,就把网站做好了。随着电商节活动营销,业务量增加,快速地根据业务变化建设了系统,但在这种紧迫情况下做出的妥协式决策,随之而来的是陷入推翻、重建的循环中。 是时候祭出真正的技术了,最终微服务架构应运而生。它使整个系统的分工更加明确,责任更加清晰,每个人专心负责为其他人提供更好的服务。跳出...
阅读全文
使用 Javassist 在运行时重新加载类「替换原方法输出不一样的结果」| 字节码编程 · Javassist 03 Java 编程技术

使用 Javassist 在运行时重新加载类「替换原方法输出不一样的结果」| 字节码编程 · Javassist 03

作者:小傅哥 博客: https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 通过前面两篇 javassist 的基本内容,大体介绍了;类池( ClassPool )、类( CtClass )、属性( CtField )、方法( CtMethod ),的使用方式,并通过创建不同类型的入参出参方法,基本可以掌握如何使用这样的代码结构进行字...
阅读全文
字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》 Java 编程技术

字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》

2020年04月22日 阅读 6 字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》 作者:小傅哥 博客: bugstack.cn ❝ 沉淀、分享、成长,让自己和他人都能有所收获! ❞ 一、前言 通过前面两篇 javassist 的基本内容,...
阅读全文
Java并发多线程高频面试题 Java 编程技术

Java并发多线程高频面试题

并发知识不管在学习、面试还是工作过程中都非常非常重要,看完本文相信绝对能助你一臂之力。 1、线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程。每个进程都有自己的内存空间,可执行代码和唯一进程标识符(PID)。 每条线程并行执行不同的任务。不同的进程使用不同的内存空间(线程自己的堆栈),而所有的线程共享一片相同的内存空间(进程主内存)。别把它和栈内存搞混,每个线程都拥...
阅读全文
这是我见过最通俗易懂的微服务架构改造解读 编程技术 软件架构

这是我见过最通俗易懂的微服务架构改造解读

作者介绍 古霜卡比, 7年开发和架构经验。喜欢探索新事物、造轮子与瞎折腾。认为与其追逐日新月异的技术,不如研究底层的基础理论。目前专注于微服务相关技术、程序语言理论以及运筹学的应用。 本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。 本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。 要理解微服务,首先要先理解不...
阅读全文
写给小白看的入门级 Java 基本语法 Java 编程技术

写给小白看的入门级 Java 基本语法

之前写的一篇我去阅读量非常不错,但有一句留言深深地刺痛了我: 培训班学习半年,工作半年,我现在都看不懂你这篇文章,甚至看不下去,对于我来说有点深。 从表面上看,这句话有点讽刺我的文章写得不够通俗易懂的意味,但我心胸一直如大海一般开阔,你了解的。所以,我回他,“你还不如把培训费给我,哈哈。”怎么样,你也能体会到我的幽默,以及无情吧?当然了,是时候写一篇文章(也许是一个系列哦)照顾一下顾小...
阅读全文
左手隔离,右手分层 —— 秒杀系统的思考方式与设计思路 编程技术 软件架构

左手隔离,右手分层 —— 秒杀系统的思考方式与设计思路

大家好,我是崔皓。 很高兴有这样一个机会和大家认识。我在IT行业从事软件开发工作十余年了,足迹涵盖企业服务,互联网,企业数字化转型等。工作之余热爱阅读和学习,希望能和大家成为朋友。 今天要给大家分享的是“如何设计秒杀系统”。 秒杀场景的特征 隔离的设计思路 分层设计思路 讲解思路是,提出秒杀场景的特征,也就是理解什么是秒杀。然后介绍在秒杀系统设计的底线,有了底线才能保证进可...
阅读全文
Loading...