java
文章平均质量分 90
安迪爸爸
老骥伏枥,志在千里。烈士暮年,壮心不已
展开
-
java通过字节数组查看真实内容
前言当我们打开debug模式时,经常能看到变量里有这么一坨。看着一脸懵逼,我们知道这是byte数组,java在通信时,都会将内容转换为二进制流来传输,二进制流在debug模式里最直观的体现就是byte数组。最小单位就是byte。今天我们不通过程序去转换内容,而是通过计算器去算出真实的内容,主要目的还是理解存储的意义。实验字符串定义一个字符串变量a="123",然后通过getBytes方法转换为字节数组。代码如下:转换后的字节输入如下:可以看到字节数组长度为3,每.原创 2021-07-28 13:25:17 · 1920 阅读 · 0 评论 -
【二】做一个秒杀系统【tomcat的并发】
前言第一篇文章介绍了高并发减库存的方法,接下来,我们分析下,自己服务器的并发到底能达到多少。搜索相关资料发现,很多都是一个固定的数量。显然不准确,今天就撸起袖子大干一场。构建一个服务想要测试就先准备一个tomcat秒杀服务,话不多说,直接通过springboot来快速构建一个服务。通过idea自动构建springboot的web工程,初始化完毕后,新建SecKillControll...原创 2020-02-18 16:02:39 · 652 阅读 · 0 评论 -
【一】做一个秒杀系统【高并发减库存】
前言疫情期间,闲来无事,空闲时间利用起来,秒杀系统走起。秒杀业务流程要做秒杀系统,先弄明白具体业务流程。用户点击秒杀按钮、跳转到订单页面、填写好订单信息后(地址、数量等信息)、点击提交订单按钮、生成订单。以上就是一个成功下单的基本流程。这里我们不关心前端的控制,只实现java后台。所以直接从用户点击提交按钮开始。概括为:用户点击提交订单按钮向后台发送请求。请求内容包括秒杀i...原创 2020-02-17 21:29:50 · 1450 阅读 · 1 评论 -
AQS源码分析
前言最近非常着迷阅读源码,周末闲来无事,又把AQS【AbstractQueuedSynchronizer】过了一遍。网上有很多这方面的文章,为什么还要自己去写呢?一是为了加深记忆,二是为了方便日后查看,三是锻炼归纳总结的能力。有缘的读者可以大致看一下。或许有些帮助。对于初学者来说可能并不熟悉AQS,它是java.util.concurrent包下的工具类,日常开发中,很少有人去使用它,...原创 2020-01-11 22:01:09 · 222 阅读 · 0 评论 -
String、new String()的知识点梳理
前言String str="1"和new String("1")的区别,其实是个老生常谈的问题,理解起来也挺简单,但是许多人还是很模糊。今天跟新人交流时发现他们对这块的认识也存在偏差,遂在这里系统整理一下String的相关问题。在叙述问题先,我们要先明白赋值和引用。因为这点对我们理解下边的代码很重要,不然很容易晕。参考这篇文章:https://blog.csdn.net/yz930618/...原创 2019-05-12 14:58:34 · 1464 阅读 · 0 评论 -
使用5个线程计算数组之和
前言之前写过多线程累加计数,原理跟本篇类似,传送门累加计数比计算数组之和逻辑稍微简单一点,如果对于这块不熟悉的,可以先看下累加计数。基本思想已经在之前那篇文章里写过了,这里就直接贴代码了。这里分别通过自己创建线程来实现功能,还有通过线程池来实现功能。思想都差不多。只是代码写法略有不同。仅供参考。代码一:五个线程交替累加计算数组之和,这种方法其实不如单线程直接累加快,因为交替...原创 2019-05-08 11:13:38 · 3098 阅读 · 0 评论 -
安卓设计模式-原型模式
安卓设计模式-原型模式android java 设计模式 clone定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 定义太恶心,看不懂。。说白了就是对象的克隆。创建步骤那我们就回顾下如何克隆对象(深拷贝)。先定义一个实体类Animal实现clonable接口重写clone方法这三点是必须做的,如果不实现clonable接口,重写clone方法调用是会报异常的。代码实现那么首先创...原创 2018-03-29 14:00:55 · 147 阅读 · 0 评论 -
常用的设计模式-单例模式
常见的单例模式:饿汉式、懒汉式、双重校验(加强懒汉式)、静态内部类、枚举饿汉式:public class Singleton { private static Singleton singleton=new Singleton(); private Singleton(){ } public static Singleton newInstance(){ return si...原创 2018-03-27 17:31:43 · 264 阅读 · 0 评论 -
读《深入理解java虚拟机》笔记
最近花了两天时间看了下《深入理解java虚拟机》。现对觉得重点的内容做一个小结。一、运行时数据区域:方法区、堆、程序计数器、虚拟区栈、本地方法栈。如图(图片来源于网络): 1.程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器。字节码解释器就是通过改变该原创 2018-01-11 11:12:15 · 195 阅读 · 0 评论