前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存区,可以有效的...
同事:你能跟我聊聊class文件么?
1.前言 在《JAVA代码编译流程是怎样的?》一文中已经聊过了Java源码经过编译器的一系列转换最终生成标准的Class文件的过程,我们用一张图来简单地回顾一下: Java为了实现“一次编写,到处运行”的跨平台特性,选取了Class文件这一...
JAVA代码编译流程是怎样的?
前言 写了这么多年的代码,对于java代码运行的全流程你心里有清晰的脉络吗? 大家会不会跟我最开始一样,觉得在IDE里点一下RUN按钮,我们写的代码就直接直接跑起来了吧? 俗话说的好,你觉得生活静好,其实只是因为有人在为你负重前行,编译器和...
面试官:详细说说你对序列化的理解
凡事都要问为什么,在讲解序列化概念和原理前,我们先来了解一下为什么需要序列化。 为什么要序列化? 如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个角度来感受一下什么是序列化。 都玩过游戏么?玩过的同学应该知道游戏里有一个叫...
Java基础面试16问
说说进程和线程的区别? 进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率。 由于进程是资源分配和调度的基本单位,因为进程的创建、销毁、切换产生大量的时间和空间的开销,进程的数量不能...
方法重载
在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法。例如,在Hello类中,定义多个hello()方法: class Hello { public void he...
构造方法
创建实例的时候,我们经常需要同时初始化这个实例的字段,例如: Person ming = new Person(); ming.setName("小明"); ming.setAge(12); 初始化对象实例需要3行代码,...
方法
一个class可以包含多个field,例如,我们给Person类就定义了两个field: class Person { public String name; public int age; } 但是,直接把field用public暴露给外...
面向对象基础
面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。 现实世界中,我们定义了“人”这种抽象概念,而具体的人则是“小明”、“小红”、“小军”等一个个具体的人。所以,“人”可以定义为一个类(class),而具体的人则是...
面向对象编程
Java是一种面向对象的编程语言。面向对象编程,英文是Object-Oriented Programming,简称OOP。 那什么是面向对象编程? 和面向对象编程不同的,是面向过程编程。面向过程编程,是把模型分解成一步一步的过程。比如,老板...
命令行参数
Java程序的入口是main方法,而main方法可以接受一个命令行参数,它是一个String[]数组。 这个命令行参数由JVM接收用户输入并传给main方法: public class Main { public static void m...