自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高并发程序设计

Thread.start 执行后,调用本地方法,本地方法创建线程后再调用程序的run方法,是调用 Runnable#run 还是 Trhead#run?答:我认为是调用Thread#run。

2021-10-12 09:29:09 155

原创 【07】虚拟机类加载机制

概述在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态

2021-08-14 16:04:48 173

原创 【02】java 内存

1. 运行时数据区域1.1.程序计数器 作用 记录当前线程所执行到的字节码的行号。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 意义 JVM的多线程是通过线程轮流切换并分配处理器来实现的,对于我们来说的并行事实上一个处理器也只会执行一条线程中的指令。所以,为了保证各线程指令的安全顺利执行,每条线程都有独立的私有的程序计数器。 存储内容 当线程中执行的是一个Java方法时,程序计数器中记录的是正在执行的线程的虚拟机字节码指令的地址。

2021-08-12 09:48:13 162

原创 07.Spring Ioc 依赖来源

概述依赖查找来源内建依赖查找bean的定义、注册时机AnnotationConfigUtilsAnnotationConfigUtils中会定义一些内建的 annotation相关的处理器包括:ConfigurationClassPostProcessorAutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessorPersistenceAnnotationBeanPostProcessor:JPA相关

2021-06-06 21:55:32 130

原创 依赖查找VS依赖注入

依赖查找:通过API去主动查找。spring中的依赖查找、JNDI也是依赖查找依赖注入:容器自动注入依赖对比

2021-05-17 19:16:19 285

原创 股票基金中常用的指标

文章目录市盈率(PE)市盈率(PE)

2021-02-21 19:42:45 636

原创 公司上市那些事

#公司上市那些事公司上市之前,由专门机构评估公司的净资产。假如净资产为:1000W,则股本数为1000W股,总股本为1000W,票面加个为1元。

2021-02-21 19:10:23 153

原创 归并排序

public static void main(String[] args) { int[] a = {11,8,3,9,7,1,2,5}; int n = a.length; mergeSort(a,0,n-1,n); System.out.println(Arrays.toString(a)); } /** * 归并排序 * 1.递归公式: * mergeSort(p......

2021-02-16 13:47:04 85

原创 ArrayList源码分析

前言继承结构构造方法ArrayList构造方法有三个,代码比较简单,不多赘述。ArrayList内部使用Object[]数组来维护元素,所以构造方法初始化时,也即需要构造一个数组。根据传入参数的不同,会创建一个空数组,或有初始值的数组。代码块Java/*** Constructs an empty list with the specified initial capacity.** @param initialCapacity the initial capacity of th

2021-01-22 15:32:13 85

原创 【深入理解Java虚拟机】【13】线程安全与锁优化

...

2019-09-16 14:57:36 55

原创 【深入理解Java虚拟机】【11】晚期(运行期)优化

[TOC]概述在部分商用虚拟机(Sun Hotspot、IBM J9)中,Java 程序最初是通过解释器解释执行的,当虚拟机发现有个方法或代码块运行特别频繁时,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,虚拟机会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器被称为即时编译器(Just In Time Co...

2019-09-12 11:00:59 64

原创 【深入理解Java虚拟机】【12】Java内存模型与线程

[TOC]Java内存模型Java内存模型(JMM Java Memory Model):屏蔽掉各种硬件和操作系统的内存访问差异,以实现Java程序在各个平台下都能达到一致的内存访问效果。(在此之前,C/C++直接使用物理硬件和操作系统的内存模型,会由于不同平台上内存模型的差异,导致程序在以套平台上并发完全正常,到另一平台上并发访问经常出错。)经过长时间...

2019-09-12 01:59:46 79

原创 【深入理解Java虚拟机】【09】类加载及执行子系统的案例与实战

[TOC]Tomcat:正统的类加载器架构主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere或其他笔者没有列举 的服务器,都实现了自己定义的类加载器(一般都不止一个)。因为一个功能健全的Web服 务器,要解决如下几个问题:部署在同一个服务器上的两个Web应用程序所使用的Java类库可以实现相互隔离。这是 ...

2019-09-10 05:54:10 71

原创 【深入理解Java虚拟机】【10】早期(编译期)优化

[TOC]概述在 Java 里有三类比较有代表性的编译器:前端编译器:把 .java 源码文件,转化成字节码的 .class 文件。比如 Sun 的 javac,Eclipse JDT 中的增量式编译器(ECJ)。JIT 即时编译器:把字节码转变成机器码,比如 Hotspot VM 的 C1、C2 编译器。AOT 编译器:直接把 .java...

2019-09-10 01:33:38 93

原创 【深入理解Java虚拟机】【08】虚拟机字节码执行引擎

[TOC]概述执行引擎是 Java 虚拟机最核心的组成部分之一。虚拟机是相对于物理机的概念,物理机的执行引擎是直接建立在硬件、处理器、指令集和操作系统层面上的,而虚拟机的执行引擎是由自己实现的,因此可以执行指定指令集,而且能够执行那些不被硬件直接支持的指令集格式。在 Java 虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行...

2019-09-06 13:34:40 115

原创 【深入理解Java虚拟机】【07】虚拟机类加载机制

[TOC]概述在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完...

2019-08-30 09:05:37 107

原创 【深入理解Java虚拟机】【06】类文件结构

[TOC]无关性的基石代码编译的结果从本地机器码编程字节码,是存储格式发展的一小步,却是编程语言发展的一大步。Java 在诞生之初,曾经有一个著名的口号“一次编译,到处运行”,这句话充分表达了软件开发人员对冲破平台界限的渴求。各种不同平台的虚拟机都统一使用的存储格式 —— 字节码,是构成平台无关性的基石。虚拟机的另外一种特性是语言无关性,目前已经出现了一大...

2019-08-29 06:34:10 201

原创 java算法中使用的ASN编码格式

前言java中的算法实现,不论是生成密钥、生成签名都会对结果进行编码,而编码方式则是ASN.1格式java.security.Key这个接口是java中算法密钥接口,定义了所有算法密钥的最顶层设计。其中getFormat()接口返回这个密钥的编码方式。getEncoded()接口返回编码后的密钥值。其中密钥的编码格式是什么?其注释中也有相关说明/*...

2019-08-19 12:29:34 914

原创 记一次NAT和nginx转发导致的请求404的问题

首先介绍下专线专线互联IP专线互联IP即设备IP,设备IP大部分是运营商分配的,是一个IP段设备:可能是网关、网桥、路由器、交换机之类的在网络链路中的设备目标IP设备在收到TCP数据包之后,查看目标IP,根据目标IP来决定将请求转发到内部的哪台机器网络运维人员可以在设备上做配置,将对方访问的目标IP与转发到的IP做好映射等。NAT过程NAT转换是...

2019-08-15 08:48:23 1082

原创 书单

门后的秘密软技能-代码之外的生存指南 ...

2019-08-10 04:38:38 55

原创 ASN.1 DER BER CER PEM X509都是什么

ASN.1ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。是定义抽象数据类型形式的标准,是用于描述数据表示、传输、编码的记法。ASN.1只包含信息结构,不处理具体业务数据,它不是一个编程语言。ASN.1包含数据类型定义、数据描述的语法、编码规则等BER、DER就是其中的一种编码规则,而DER是BER编码的一个...

2019-08-07 11:40:39 916

原创 class类文件访问标志

Class访问标志作用class的访问标志(access_flag),位置在常量池之后,长度为2字节。这个标志主要用于识别一些类或者接口层次的访问信息,主要包括:这个Class是类还是接口;是否定义为public类型;是否定义abstract类型;如果是类的话是否被声明为final;以上只是举的几个例子,具体的标志位以及标志的含义如下:组成...

2019-08-06 20:00:01 119

原创 JVM疑问收集

如何查看对象的年龄如何动态实时修改jvm参数(修改)逻辑CPU是什么意思安全点的设置规则安全区域的划分规则对象头中存储的内容、内容的格式定义不同状态下对象的对象头的格式是什么如何查看一个对象的对象头信息什么样的数据才会进入常量池istore 将值从操作数栈存储到局部变量表:怎么知道存储到哪个局部变量?isto...

2019-08-06 06:08:07 34

原创 【深入理解Java虚拟机】【04】jdk命令行工具

[TOC]jdk命令行工具0.概览名称作用jpsJVM Process Status Tool,显示系统中所有的Hotspot虚拟机进程jstatJVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据jinfoConfiguration info for java,显示...

2019-07-15 01:23:51 159

原创 ASCII码对照表

Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)缩写/字符解释0000 00000000x00NUL(null)空字符0000 00010110x01SOH(start of headline)标题开始0000 00100220x02STX (start of text)正文开...

2019-07-11 12:55:11 266

原创 编码格式

总述编码格式编码范围描述说明ASCII0x00-0x7F单字节编码https://baike.baidu.com/item/ASCII/309296?fr=aladdinISO 8859-10x00-0xFF单字节编码,向下兼容ASCII,0x00-0x7F是与ASCII一样的https://baike.baidu.co...

2019-07-11 05:00:43 147

原创 String、ASCII、Byte

下面讨论的一些问题,共同的前提是String字符串中的内容是ASCII码表示范围内的符号。什么是String?字面意思:字符串。其实内部使用char数组存储什么是ASCII码ASCII是美国信息交换标准代码,是现在通用的单字节编码系统,使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符,全称是American Standard Co...

2019-07-11 04:56:18 725

原创 填充方式

1.概述在分组加密算法中(例如AES),我们首先要将原文进行分组,然后每个分组进行加密,然后组装密文。其中有一步是分组2.PKCS#5PKCS5Padding以DES加密算法为例模式采用DES/CBC/NOPadding、DES/CBC/PKCS5PaddingDES/CBC/NOPadding模式NOPadding仅支持8的倍数字节数的输入...

2019-07-08 20:51:47 90

原创 DES加密

参考资料https://blog.csdn.net/qq_27570955/article/details/52442092https://blog.csdn.net/android_jiangjun/article/details/79654940https://blog.csdn.net/gc_gongchao/column/info/18763...

2019-07-04 00:20:10 41

原创 java 中的四种引用

强引用软引用弱引用虚引用 ...

2019-06-23 04:27:50 37

原创 设计原则

Single Responsibility Principle  : 单一职责原则Liskov Substitution Principle : 里氏替换原则Dependence Inversion Principle :依赖倒置原则Interface Segregation Principle : 接口隔离原则Law of Demeter  ...

2019-06-22 10:28:46 42

原创 JVM参数

选项的分类Hotspot JVM提供以下三大类选项:标准选项:这类选项的功能是很稳定的,在后续版本中也不太会发生变化。运行java或者java -help可以看到所有的标准选项。所有的标准选项都是以-开头,比如-version, -server等。X选项:比如-Xms。这类选项都是以-X开头,可能由于这个原因它们被称为X选项。运行java -X命令可以看...

2019-06-14 21:48:19 49

原创 【深入理解Java虚拟机】【03】垃圾收集和内存分配

[TOC]对象是否可回收判断方法引用计数算法(主流虚拟机未采用)实现思想在对象中添加引用计数器,引用它时,计数器加 1,对它的引用失效,计数器减 1。计数器为 0 的对象就是不可能再被引用的问题无法解决对象之间循环引用的问题可达性分析算法实现思想从 GC Roots 对象作为起始点,向下搜索,当一个对象到 GC Roots 没有...

2019-06-14 20:27:17 60

原创 zxing

zxing 相关网站https://zxing.github.io/zxing/apidocs/https://zxing.github.io/zxing/代码示例import com.google.zxing.*;import com.google.zxing.client.j2se.BufferedImageLuminanceSource;impor...

2019-06-04 06:18:01 70

原创 工作模式和填充

1.AES 工作模式与填充方式算法/模式/填充 16字节加密后数据长度 不满16字节加密后长度AES/CBC/NoPadding 16 不支持AES/CBC/P...

2019-06-03 16:49:02 92

原创 【深入理解Java虚拟机】【02】java 内存

[TOC]1. 运行时数据区域1.1.程序计数器作用记录当前线程所执行到的字节码的行号。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。意义JVM的多线程是通过线程轮流切换并分配处理器来实现的,对于我们来说的并行事实上一个处理器也只会执行一条线程中的指令。所以,为了保证各线程指令的安全顺利执行,每条线程都有...

2019-05-26 04:04:04 61

原创 【深入理解Java虚拟机】【01】走进 java

[TOC]1. JCP 是什么百度百科:https://baike.baidu.com/item/jcp/2679009官方网站:https://jcp.orgJCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。Java技术和JCP两者的原创者都是SUN计算机公司。然而...

2019-05-26 01:06:50 55

原创 etcp-account 分层

代码分层 (横向功能 & 纵向业务)横向: 需要提取协议层和标准流程层, 制定标准请求响应, 避免协议转换侵入到业务逻辑代码中纵向: 业务流程需要聚合, 避免 xxxService 调用下游一大批 xxxDao 完成一个事情的情况总的思路就是是:总结、抽象出纵向请求的过程中需要横向扩展的点,发展成独立的一层,总体思想还是聚合、解耦。例如:将业务...

2019-05-25 01:05:46 52

原创 《靠谱》

1.沟通四步先说结论,后讲原因列举数据,支撑结论具体实例,生动理解重申结论,加强印象2.逻辑树法则将一个大问题拆分成各个小问题,有点类似于 OKR例如:公司要提高盈利能力,可以细分为:增加收入、节省成本,增加收入与节省成本又可以继续向下拆分。3.云-雨-伞法则云:是现状雨:是通过云推测未来可能出现的状况伞:是针对状况作出的对策大部分人...

2019-05-23 11:32:35 48

原创 从服务器上传/下载文件

从服务器下载文件本地执行:nc -l 9999 >> 文件名.txt服务器执行:cat 文件名 | nc 服务器地址 9999向服务器上传文件服务器执行:nc -l 9999 >> 文件名.txt本地执行:cat 文件名 | nc 服务器地址 9999 ...

2019-05-22 20:39:48 43

空空如也

空空如也

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

TA关注的人

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