每天学Java

134 篇文章
29 人订阅

全部文章

每天学Java

彻底搞懂ArrayList

同样是空的数组对象,和EMPTY_ELEMENTDATA区别在于,无参构造函数的空数组会用DEFAULTCAPACITY_EMPTY_ELEMENTDATA赋值...

6620
每天学Java

参数注解所引发的思考

在刚接触Spring MVC的时候,个人认为类似@Param注解的作用是用来匹配参数,像 Spring MVC的Controller层的方法是通过反射来实现的,...

5220
每天学Java

ArrayList并发写出现Null值

在我看百度看到的所有答案中,关于并发写出现Null值,几乎都是将原因归咎到add方法中的size++上,这里我个人认为这种回答应该是错误的,出现null值的原因...

9750
每天学Java

非Spring项目管理Quartz

在Spring项目中我们可能并不会过于关注Quartz,因为一些常见的问题(包含上面提到的注入)Spring已经帮我们处理好,如果你在非Spring项目中,集成...

6320
每天学Java

非Spring项目如何注入Mapper

下面mappers标签下的sql/testMapper.xml同样是在resource目录下,这里不支持通配符,Spring配置支持通配符是因为使用Ant通配符...

5920
每天学Java

类加载器之URLClassLoader

通过源码我们可以发现AppClassLoader和ExtClassLoader都是Launcher的静态内部类,继承自URLClassLoader。

5920
每天学Java

Java底层-JMX

引言部分摘自百度百科,实际上JMX是java5开始提供的对java应用进行监控的一套接口,或者我们也可以像理解JUC包一样理解JMX,把它当成一个框架。JMX这...

9140
每天学Java

Java底层-本地接口(JNI)

为什么会有本地接口的概念呢?我们在之前的文章说过Java语言不是面向硬件的,它无法直接调用操作系统API操控硬件,Java和硬件的交互正常都是通过JVM提供的A...

5510
每天学Java

Java底层-GC子系统

在HotSpot虚拟机中,三大子系统核心基本都是为运行时数据区服务,类加载子系统负责将字节码文件加载到运行时数据区, 执行引擎将执行线程中虚拟机栈的栈帧存储的指...

3410
每天学Java

Java底层-执行引擎

先回忆一下前面几节内容:一个.java文件经Javac编译器编译为.class文件(字节码文件), 当我们使用java命令执行该class文件时(HotSpot...

8140
每天学Java

Java底层-运行时数据区

在前面关于HotSpot组成中提到,运行时数据区就类似一个工厂,是Java程序运行所在的内存区域,这个区域被JVM所管理,按照虚拟机规范的规定将其划分为:方法区...

6810
每天学Java

Java底层-HotSpot

在前面几节我们聊到,Javac编译器将java文件编译为class文件后,由JVM将字节码转为与机器适配的机器码进行执行, 这里我们说的JVM实际上是JVM实例...

10120
每天学Java

Java底层-类加载子系统(二)

其中初始化是类加载的最后一步,使用和卸载不属于类加载的过程、此外在这些动作中, 加载阶段是唯一一个用户可以通过类加载器参与的阶段(非数组类的加载), 后续的其余...

5710
每天学Java

Java底层-类加载子系统(一)

不知道大家对于答案是否存在疑问,如果存在疑问不妨继续看下去, 上一节我们提到,当我们创建JVM实例时,我们需要指定一个要执行的主类,虚拟机会先初始化这个主类, ...

8620
每天学Java

Java底层-Javac编译器

当我们执行这个命令后,就会得到一个class文件,这一步其实就是编译,在前面一节我们提及到Java不同于C/C++,它首先需要将Java文件编译成class文件...

14120
每天学Java

模拟Javac命令

首先javac命令在JDK的/bin目录下,其实质可以认为是一个脚本,在Mac系统中javac是一个可执行的 Unix文件,这里我们自己简单制作一个Unix可执...

7830
每天学Java

Java底层-揭开JVM的面纱

在计算机世界里,程序执行的实质是通过高低电位来触发电子元件的(数字电路的知识), 而高低电位可以认为是我们所说的二进制编码,所以最开始的编程其实就是写0、1组合...

7210
每天学Java

Java常用业务代码-线程篇

join类似于同步,当A线程中调用了B线程的join()方法时,表示只有当B线程执行完毕时,A线程才能继续执行(如下代码), 但是B线程必须已经调用start(...

9730
每天学Java

委派者模式的使用

在线客服项目算是告一段落了,从结果来看是没有达到自己一开始设想,因为一开始想好的设计,没能完全去实现。于是在平衡反思和甩锅的心态后,抛出原因:能力有限,时间有限...

7920
每天学Java

Spark读写MySQL数据

执行的过程中,出现了很多次的jar冲突,我这边和Hadoop-common 以及 hadoop-dfs有依赖冲突,具体的根据自己实际情况去除

13820

扫码关注云+社区

领取腾讯云代金券