晚晴小筑

游客是你,风景是我,无法避免,让你经过。

Java 命令学习

在 JDK 的 bin 目彔下,包含了java的相关命令及其他实用工具。 jps:查看本机的Java中进程信息。 jstack:打印线程的栈信息,制作线程Dump。 jmap:打印内存映射,制作堆Dump。 jstat:性能监控工具。 jhat:内存分析工具。 jconsole:简易的...

2018-04-26 09:41:24

阅读数 63

评论数 0

为什么存储密码字符数组比字符串更合适?

记得这是 《java核心技术》这本书中的一句话,当时读到时也是各种疑惑。 String 的存在在很大程度上就是取代字符数组char[] ,为何又推荐密码使用字符数组保存? 我们知道,字符数组和字符串都可以用于存储文本数据。 任何与字符串相关的问题一定可以从字符串的属性里面找到线索,...

2018-04-25 22:31:44

阅读数 321

评论数 0

Thread.join 解析

/** * Waits at most {@code millis} milliseconds for this thread...

2018-04-24 20:54:18

阅读数 261

评论数 0

小议 Java final 关键字

昨日面试美团,被问到 final 关键字,总觉得可以再进行总结一下了。 因为你所掌握的现有知识又会再次颠覆你原来的理解。 final 用于属性 语义:被初始化后不能被更改 class Main { private final int x; } 以上代码会报错:x 没有被初...

2018-04-20 10:41:41

阅读数 336

评论数 2

我眼中的 HTTP

HTTP 在我眼中有两个很重要的特点: 基于 请求(request) 和 响应(response) 无状态 这种简单性是其优点,同时也是其缺点。 基于请求和响应 一次请求对应一次响应,没有请求就没有响应。 可以看到:通信只能由客户端发起。服务器被动响应。 为了实现服务器主动向客...

2018-04-18 10:11:07

阅读数 121

评论数 0

浅谈 Java 中的 SPI 机制

面向接口编程 面向接口编程就是先把客户的业务逻辑先提取出来,作为接口,业务具体实现通过该接口的实现类来完成。 当客户需求变化时,只需编写该业务逻辑的新的实现类,不需要改写现有代码,减少对系统的影响。 其遵循的思想是:对扩展开放,对修改关闭。在使用面向接口的编程过程中,将具体逻辑与实现分开,减...

2018-04-15 22:43:52

阅读数 287

评论数 4

Servlet 源码解析

Servlet 继承层次 Servlet 工作原理 Web Client(如nginx)向 Servlet 容器(如Tomcat)发出Http请求; Servlet 容器接收 Web Client 的请求; Servlet 容器创建一个 HttpRequest 对象,将 Web ...

2018-04-14 16:17:34

阅读数 474

评论数 0

IntelliJ如何与Tomcat完成项目部署

CATALINA_BASE 与 CATALINA_HOME 的区别: CATALINA_HOME 是 Tomcat 的安装目录,CATALINA_BASE 是 Tomcat 的工作目录。 如果我们想要运行多个 Tomcat 实例,但是不想安装多个 Tomcat 软件副本。那么我们可以配置多个工...

2018-04-12 12:44:59

阅读数 205

评论数 0

Object.java 简介

Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of t...

2018-04-09 19:43:26

阅读数 130

评论数 0

Java 中的锁

Java 中对象的锁其实主要就是通过对象头的Mark Word进行表示的。 对于 HotSpot 虚拟机就是 \hotspot\src\share\vm\oops\markOop.hpp Mark Word 不是一个对象,只是一个字长的数据。在32为机器上,Mark Word 为32位,...

2018-04-02 18:48:26

阅读数 356

评论数 0

Java 中创建线程的方式

继承 Thread 类 定义 Thread 类的子类,并重写该类的run()方法,该run()方法的方法体就代表了该线程要完成的任务。因此把run()方法称为执行体。本质上讲,run() 就是我们自定义的回调函数,既然是回调函数,我们直接调用它就没有任何意义了~ 然后创建 Thread 子类的...

2018-04-01 15:32:59

阅读数 118

评论数 0

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