![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
方木丶
重剑无锋,大巧不工
展开
-
Java类加载过程图解
朋友给我发了一道有意思的题目,如下为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。这就扯到基础理解上了,就是Java是如何加载一个类的呢?上图是我绘制的整个Java类加载过程。首先是编译期,将Java源文件也就是敲好的代码通过编译,转换成.class文件,也就是字节码文件(byte),然后经过传输传...原创 2018-08-22 16:52:36 · 12698 阅读 · 5 评论 -
反射实例:ORM搭建
反射机制是Java给开发者留下的后门之一,让开发者可以通过API去动态获得被封装的属性和方法,很多框架的功能都是基于反射实现的,像Hibernate、Mybatis、Spring(这个是真的多)。今天就手写一个ORM最基础的实现,也就是Java对象和数据库表之间的映射。项目使用SpringBoot搭建,其实用什么都一样,只不过SpringBoot本身配置都写好了,创建也快,习惯了= =po...原创 2018-09-12 20:27:09 · 397 阅读 · 0 评论 -
Java线程池总结
线程是个吃资源大户,如果没有很好地管理线程,容易造成许多问题,所以线程池应运而生 为什么要使用线程池 1. 降低系统资源损耗,线程的创建、运行、销毁都需要消耗系统资源,通过线程池可以达到线程的复用,避免无用的消耗2. 提高响应速度,任务到达时可以直接使用线程,不需要再等待线程的创建3. 提高线程的可管理性 线程池执行逻辑 逻辑顺序:核心线程——>阻塞队列——&...原创 2018-10-16 20:08:36 · 278 阅读 · 0 评论 -
Mac实现多个版本的JDK环境切换
最近维护老项目需要用到jdk7,恰逢又换了mac,所以记录下mac中切换不同版本jdk的操作,步骤如下打开terminal,输入 open .bash_profile 打开文件,没有的话就使用vi命令创建一个 配置jdk环境# JDK1.7export JAVA_7_HOME='/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/...原创 2018-10-24 08:28:34 · 6357 阅读 · 1 评论 -
实现发送Http请求的两种方法
最近开发微信公众号平台时,需要使用到HTTP请求发送的方法,所以撸了两种出来,属于工具类的范畴,也可以直接使用RestTemplate,简单粗暴,上手极快 使用原生HttpURLConnection public class HttpClientTest { /** * Get请求 * @param httpUrl * @return *...原创 2018-12-20 11:53:06 · 10706 阅读 · 0 评论