一: 虚拟机 内存图解Java 程序运行与虚拟机之上,运行时需要内存空间。虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理。虚拟机管理内存数据区域划分如下图:数据区域分类:方法区: (Method Area)虚拟机栈 : (VM Stack)本地方法栈 : (Native Method Stack)堆: (Heap)程序计数器: ( ......
233
0
0
2023-06-03
目录1.创建Spring Boot项目2.返回结果的封装3.后端接口实现3.1 创建实体类3.2 创建dao层3.3 创建Controller层4.前端部分5.验证在一个完整的项目中,如果每一个控制器的方法都返回不同的结果,那么对项目的维护和扩展都会很麻烦;并且现在主流的开发模式时前后端分离的模式,如果后端返回各式各样的结果,那么在前后端联调时会非常的麻烦, ......
404
0
0
2023-06-03
文章目录前言1.logstash直接配置在logback:2.经典应用日志级别划分、日期、大小分割等3.异步配置及使用4.总结前言Logback是一个开源的日志组件,SpringBoot中现在内置的也是logback日志框架,可以看出来它的地位,本篇文章主要就是介绍logback的上产使用配置等,以及一些比较重要的解决方案,本文中的文件直接就可以上生产使用。 ......
271
0
0
2023-06-02
前因今天晚上喝了几两65°的红星二锅头,坐在沙发上回想了下我这苦逼的程序员人生,从程序员到高级工程师的成长过程。想了想主题,今天就写篇《关于架构师那些事》的文章吧。总结所有架构师都不是自带光环,都是是从程序员->工程师,然后跟对一个好的领导或者好的项目开始学习框架,然后结合现有的知识一步一步磨炼成就了现在架构师的光环,从来就没有一步登天的人才,都是从埋 ......
346
0
0
2023-06-02
框架/引擎/库Akihabara – 一组库、工具和预设,用于在 Javascript 中创建像素化独立风格的 8/16 位时代游戏。 Allegro 5 – 制作 2D 游戏(图形、声音等)的 C++ 库。 ammo.js – 使用 Emscripten 将子弹 物理引擎 直接移植到 java Script。 Atomic Engine – 具有 2D ......
399
0
0
2023-06-02
文章目录什么是分布式 ID 为什么需要分布式 ID 分布式 ID 需要满足的条件 常用分布式 ID 生成方案 方案一:使用 UUID 生成 IDUUID 什么是UUID 的结构组成 Java 中使用 UUID 工具生成 IDUUID 作为分布式 ID 的优缺点 方案二:使用数据库单机自增生成 ID单机数据库是如何生成 ID数据库实现 ID 递增生成的过程 ......
252
0
0
2023-06-02
1 内部类Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。 内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。 内部类的使用规则: (1)声明内部类如同在类中声明方法或变量一样,一个类把内部类看作是自己的成员。 (2)外嵌类的类体中可以用内部类声明的对象,作为外嵌类的成员 ......
263
0
0
2023-06-02
概述 我知道很多公司和个人还在用 Java8,我们不妨梳理下当下的情况 目前 Java 最新的 GA(General-Availability) Release 版本是 JDK 18.0.2.1 Java 17 LTS 是 最新长期支持版本。根据 Oracle 免费条款 JDK 18 和 JDK 17 可在生产环境中免费使用,至少在 202 ......
231
0
0
2023-06-02
秒杀方案: 1:拦截秒杀的高配刷新操作 解决方案:对秒杀商品页面独立设计,减少动态内容,页面内容静态化,用户请求不需要经过应用服务。 2:减库存操作 在应用端增加 redis 库存,通过redis分布式锁方式,库存的扣减和回滚在redis中处理,提高性能,当高并发的时候我们可以通过分片思想,将一个 sku 的库存分成N片,redis分布式锁 ......
242
0
0
2023-06-02
线程池 线程池是什么?简单来说, 线程 池是指提前创建若干个线程,当有任务需要处理时,线程池里的线程就会处理任务,处理完成后的线程并不会被销毁,而是继续等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以,当某个业务需要频繁进行线程的创建和销毁时,就可以考虑使用线程池来提高系统的性能啦。线程池可以做什么?借由《 Java 并发编程的艺术》,使用线程池能 ......
237
0
0
2023-06-02
目录1.彩虹表什么是彩虹表2.解决方案3.实现代码总结MD5 是 Message Digest Algorithm 的缩写,译为信息摘要算法,它是 Java 语言中使用很广泛的一种加密算法。MD5 可以将任意字符串,通过不可逆的字符串变换算法,生成一个唯一的 MD5 信息摘要,这个信息摘要也就是我们通常所说的 MD5 字符串。那么问题来了,MD5 加密安全吗 ......
256
0
0
2023-06-02
Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。代码复用。增强代码的可靠性和灵活性。增加代码的可理解性。面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。封装封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变 ......
337
0
0
2023-06-02
前言首先, synchronized 是什么?我们需要明确的给个定义—— 同步锁 ,没错,它就是把 锁 。 可以用来干嘛?锁,当然当然是用于 线程 间的同步,以及保护 临界区 内的资源。我们知道,锁是个非常笼统的概念,像生活中有指纹锁、密码锁等等多个种类,那 synchronized 代表的锁具体是把什么锁呢? 答案是—— Java 内 ......
251
0
0
2023-06-02
1 基本概括 2 主要介绍 2.1 用 RandomAccess 实现一个断点下载的功能 多线程下载,即是一个文件能过多个线程进行下载;而断点续传说的是当一个文件下载到一半时突然由于某个原因下载中断了,比如突然电脑关机了,那么当再开机时已经下载到一半的文件不需要重头开始,而是接着下载;其原理很简单:首先,下载中断时记住上一个时点下载的位置,然后接着这个位置继 ......
237
0
0
2023-06-02
Java 反序列化漏洞的危害不仅在于普通小工具所能带来的命令执行,还在于使用链构建的单向代码链所能实现的有限能力,因为Java应用程序场景和小工具大多构建单向代码执行。然而,在大多数情况下,比如需要echo和注入内存shell,我们实际上非常需要直接运行整个类或者运行一个上下文相关的多行代码来进行动态执行。它经常要求反序列化使用一个链来与另一个能够动态执行代 ......
266
0
0
2023-06-02