自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (9)
  • 收藏
  • 关注

原创 HashMap&ConcurrentHashMap源码探究

目录HashMap&ConcurrentHashMap源码探究一、JDK1.7 HashMap1、初始化(伪初始化) 2、put(真初始化)二、JDK1.7ConcurrentHashMap三、JDK1.8 HashMap四、JDK1.8ConcurrentHashMapHashMap&ConcurrentHashMap源码探究一、JDK1.7 HashMap1、初始化(伪初始化) 不传参数,默认table大小为16,加载因子为0...

2020-11-25 11:37:01 465 1

转载 简述为何要根据Java的“反射”特性编程

Java的反射特性一般结合注解和配置文件(如:XML)来使用,这也是大部分框架(Spring等)支持两种配置方式的原因。如果是注解方式:当服务端启动时,Spring框架会去扫描指定目录下的类,通过反射看类有没有Service注解,如果类上有 Service注解,会提前初始化(new)这个类。初始化好所有类以后,再去查找所有属性,看属性有没有Autowired注解,有的话,会给这个属性注入值(反射赋

2017-11-30 11:27:27 226

原创 JAVA性能优化(笔记篇)

一、编程优化1、字符串优化String字符串是开发中使用最频繁,也是最容易忽略的性能委托。高效使用字符串可以提升系统整体性能String 类被 final 关键字修饰了,而且变量 char 数组也被 final 修饰了。我们知道类被 final 修饰代表该类不可继承,而 char[]被 final+private 修饰,代表了 String 对象不可被更改。Java 实现的这个特性叫作 String 对象的不可变性,即 String 对象一旦创建成功,就不能再对它进行改变。这样做的好处是:第

2020-10-29 19:43:24 166

原创 字节码一:Class文件的结构、魔数与版本号

一、Class文件的结构学过java都知道,java是跨平台的,“一次编译,到处运行”是java诞生之时就有的口号。原因就在于“字节码”。各个不同平台的虚拟机和所有平台都统一的使用字节码这种格式存储,就是构成平台无关性的基石。另外要说的一点是Class文件并不是说只有java程序会生成,也就是说java虚拟机并不是指只有java语言才能运行。只要是在经过编译后生成符号虚拟机规范的Class文件,都可以在java虚拟机中运行!如果JRuby,Groovy等(反正我也没用过)。至于什么是符合虚拟机规

2020-09-23 23:43:47 452

原创 类加载十:来写一个自定义类加载器

十、来写一个自定义类加载器在写代码之前,先看一下类加载loadClass的源码:Class<?> clazz = loader1.loadClass("com.lxl.jvm.MyTest01");还是调用自己的loadClass,第二个参数resolve :If <tt>true</tt> then resolve the class public Class<?> loadClass(String name) throws Clas

2020-09-22 20:47:02 269

原创 类加载九:数组的类是jvm虚拟机在运行中动态创建的

九、数组的类是jvm虚拟机在运行中动态创建的,代码如下:public class MyTest15 { public static void main(String[] args) throws IOException { String[] strings = new String[2]; System.out.println(strings.getClass().getClassLoader());//这里输出为null是因为根类加载器 MyTest15[] mytest15s

2020-09-22 20:05:45 210

原创 类加载八:类加载器的双亲委派模型

八、类加载器的双亲委派模型。代码如下:public class MyTest14 { public static void main(String[] args) throws IOException { ClassLoader classLoader = Thread.currentThread().getContextClassLoader();//获取当前线程上下文类加载器 String resourceName = "com/lxl/jvm/Mytest12.class";

2020-09-22 11:43:33 92

原创 类加载七:调用ClassLoader类的loadClass方法加载一个类,并不是对类的主动使用

七、调用ClassLoader类的loadClass方法加载一个类,并不是对类的主动使用。代码如下:public class MyTest12 { public static void main(String[] args) throws ClassNotFoundException { ClassLoader loader = ClassLoader.getSystemClassLoader(); Class<?> clazz = loader.loadClass("com.

2020-09-22 11:06:32 1818

原创 类加载六:通过子类调用父类的静态变量或者静态方法,那么表示为对父类的主动使用,而不是子类的主动使用

上一篇:类加载五:初始化子类时会先初始化其父类六、通过子类调用父类的静态变量或者静态方法,那么表示为对父类的主动使用,而不是子类的主动使用。代码如下public class MyTest11 { public static void main(String[] args) { System.out.println(MyChild11.a); MyChild11.success(); }}class MyParent11 { public static int a = 5;

2020-09-22 11:03:13 2148

原创 类加载五:初始化子类时会先初始化其父类

五、初始化子类时会先初始化其父类。代码如下public class MyTest10 { public static void main(String[] args) { System.out.println(MyChild10.b); }}class MyParent10 { public static int a = 5; static{ System.out.println("MyParent10 loading"); } }class MyChild10

2020-08-06 19:38:09 1380

原创 类加载四:类在初始化时,初始化执行顺序为代码顺序

四、类在初始化时,初始化执行顺序为代码顺序。代码如下:public class Mytest06 { public static void main(String[] args) { //Singleton singleton = Singleton.getSingleton(); System.out.println("counter1:" + Singleton.counter1); System.out.println("counter2:" + Singleton.counter

2020-08-06 19:18:57 254

原创 类加载三:数组实例,其类型是由jvm在运行期动态生成,动态生成的类型,其父类型就是Object

三、数组实例,其类型是由jvm在运行期动态生成,动态生成的类型,其父类型就是Object。代码如下public class MyTest04 { public static void main(String[] args) { //MyParent04 myParent04 = new MyParent04(); MyParent04[] myParent04s = new MyParent04[1]; MyParent04[][] myParent04s1 = new MyParen

2020-08-06 17:22:17 223

原创 类加载二:常量的值并非编译期间可以确定的,则不会放入常量池,引用常量会导致类的初始化

二、常量的值并非编译期间可以确定的,则不会放入常量池,引用常量会导致类的初始化。代码如下:public class MyTest03 { public static void main(String[] args) { System.out.println(MyParent03.str); }}class MyParent03 { public static final String str = UUID.randomUUID().toString(); static {

2020-08-06 17:17:57 294

原创 类加载一:引用常量池中的常量,不会导致类的初始化

一、引用常量池中的常量,不会导致类的初始化。代码如下:public class MyTest02 { public static void main(String[] args) { System.out.println(MyParent02.m);//MyParent02.str 编辑阶段存入到MyTest02的常量池中。不会初始化MyParent02 }}class MyParent02 { public static final String str = "hello wor

2020-08-06 17:14:06 548 2

原创 重拾算法-01、JAVA有序数组封装(包含二分法查询,插入,删除)

package com.lxl.array.pojo;/** * 有序数组对象封装 * @author xiaole * */public class OrdArray { private int[] a; private int nElems;// 数据实际长度 public OrdArray(int a) { this.a = new int[a]; this.nElems = 0; } public int size() { return nElems.

2020-06-14 11:52:03 145

原创 java虚拟机学习笔记(第二部分-自动内存管理机制 第二章-java内存区域与内存溢出异常)精简版

第二部分 自动内存管理机制第二章 java内存区域与内存溢出异常2.2 运行时数据区域1、程序计数器①较小的内存空间,可以看做是当前线程锁执行的字节码的行号指示器。②java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间来实现的。一个处理器(内核)在任何一个确定的时刻都只会执行一条线程中的指令。③为了在线程切换后能恢复原有的执行位置。每条线程都需要一个独立的程序计数器,各线程之间...

2020-01-09 17:45:06 146

转载 .class和.getClass()的区别

最明显的区别就是.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。不过要谈到两者的区别,还要从Java反射说起。Java反射学习所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态

2017-11-30 18:16:02 3959

转载 熟悉JAVA反射后,来偷懒做些事情字符串处理的事情

举个简单的例子吧,假设我们想把一个对象的所有属性值存到数据库里,通常会用到insert into XXX (field1,field2) values (v001,v002)像这种语句,格式都一个样,唯一的区别就是XXX表和表的字段与值的不同。但是针对不同的表,总要重复写这条语句,然后一条一条复制粘贴表里的所有字段,再一条一条复制粘贴所有的字段值,要是表多而且字段多的话

2017-11-30 11:37:59 234

原创 错误:Mixed Content: The page at ‘https://XXX’ was loaded over HTTPS, but requested an insecure........

在使用tomcat+nginx时。Nginx使用https,tomcat使用http。使用iframe之类框架,在重定向时会出现以上问题导致页面加载不出来。这是因为Tomcat不能知道Nginx发来的是http还是https。让tomcat知道nginx发来的是http还是https。默认情况下,nginx得到的https的访问会以http的方式发给负载的tomcat。一、如果让t

2017-09-05 10:06:14 95587 1

MTK线刷驱动,解压后使用线刷驱动\mtk刷机驱动-自动安装执行InstallDriver.exe即可

MTK通用线刷驱动,使用线刷驱动\mtk刷机驱动-自动安装执行InstallDriver.exe即可。xp,w7,w8,w10,w11都可用

2022-07-22

16进制编辑器Hex Editor

用来查看class文件等,也可以看其他文件的16进制 用来查看class文件等,也可以看其他文件的16进制 用来查看class文件等,也可以看其他文件的16进制 用来查看class文件等,也可以看其他文件的16进制

2020-09-23

filebeat-7.6.0-windows-x86_64.msi

filebeat7.6 win版,也有linux版本大家可以选择下载。linux版本有7.5.1和7.6两个版本。所需积分都不多,两三分吧

2020-03-03

filebeat-7.5.1-linux-x86_64.tar.gz

filebeat-7.5.1-linux-x86_64.tar.gz 外网下载速度极其的慢,自己下好了,分享给大家。另外也有7.6版本的windows与linux等会也分享出来

2020-03-03

RabbitMQ实战 高效部署分布式消息队列 PDF下载

RabbitMQ实战 高效部署分布式消息队列 高清完整版下载PDF下载

2018-11-24

x2m转m4a工具,具体作用不解释

打开软件选择下方按钮,“x2mdec”选择文件夹位置,然后美滋滋。文件名乱码问题该软件不能解决。另有方法

2018-11-23

ubuntu myeclipse10 svn最新插件

ubuntu myeclipse10 svn最新插件,安装方法在压缩包内。

2016-03-28

Struts2uploadify3.1

uploadify3.1与Struts2配合使用。代码运行完美无错,upload因为版本问题,开发者的方法总是运行不起来,这个与Struts2结合的可以成功运行。

2016-03-09

空空如也

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

TA关注的人

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