Java基础
一只老风铃
欣于所遇,暂得于己,快然自足。
展开
-
Java基础知识 异常
Java异常类关系图所有类 都以Throwable为顶层父类分为2大类——错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。——异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。 进一步将异常分为2大类:非检查异常 检查异常 ...原创 2019-02-18 11:47:47 · 250 阅读 · 0 评论 -
Java基础 List中元素的遍历删除
遍历删除List中元素时,有时会出现意想不到得错误——使用普通for循环删除元素 public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 5; i++) ...原创 2019-03-27 09:27:09 · 3334 阅读 · 0 评论 -
深入JVM Java内存模型
Java虚拟机规范试图定义一种Java内存模型来屏蔽掉各种硬件操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致性的内存访问效果。而相对而言,C C++是直接使用物理硬件和操作系统的内存模型,因此在不同的平台上存在差异,可能导致程序在不同平台执行效果不同,存在耦合的弊端定义Java内存模型需要考虑得当,必须足够严谨,才能让Java的并发内存访问不出错,但是,也必须足够宽松,使...原创 2019-03-13 17:47:19 · 289 阅读 · 0 评论 -
深入JVM 硬件的效率与一致性
让计算机并发执行若干个运算任务与更充分利用计算机的效能之间的因果关系,看似顺理成章,实际它们之间关系远远没有想象的简单,其中一个重要的复杂性来源于绝大多数的运算任务不可能单靠 处理器计算完成,那么处理器与内存的交互,如读取运算数据,存储运算结果,类似的IO操作是很难消除的(无法仅仅依靠寄存器完成所有计算任务)由于计算机的存储设备与处理器之间的速度代沟,所以现代计算机系统不得不加入一层读写速度尽...原创 2019-03-13 17:29:21 · 286 阅读 · 0 评论 -
深入JVM 继承与静态域
static方法不能被子类重写覆盖,在子类中定义了和父类完全相同的static方法,则父类的static方法被隐藏Son.staticmethod()或new Son().staticmethod()都是调用的子类的static方法 Father.staticmethod()或者Father f = new Son(); f.staticmethod()调用的都是父类的static方法例子...原创 2019-03-16 10:38:07 · 260 阅读 · 0 评论 -
Java基础 Instanceof 关键字
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。案例演示:class GrandFather{ public void test() { }}class Father extends GrandFather{ public v...原创 2019-03-07 12:09:48 · 143 阅读 · 0 评论 -
深入JVM 语法糖-自动装箱、遍历循环
自动装箱,自动拆箱,遍历循环(Foreach)是程序设计过程中使用最多的语法糖案例:自动装箱,拆箱,遍历循环public class ForeachTest { public static void main(String[] args) { List<Integer> list=Arrays.asList(1,2,3,4); int sum=0; for...原创 2019-03-09 10:38:06 · 227 阅读 · 0 评论 -
深入JVM 语法糖-泛型
语法糖是程序语言提供给程序设计人员的用于提高开发效率,降低错误的设计。可以看作是编译器实现的小把戏,这些小把戏背后可能会使的效率提升,其中Java语言中最著名的是泛型泛型是JDK1.5的一项新增特性,它的本质的参数化类型的应用,也就是说所操作类型被指定为一个参数。这种参数类型可以用在类,接口和方法的创建中,分别是泛型类,泛型接口,泛型方法泛型思想早在C++语言的模板中就开始出现,在早版本的...原创 2019-03-09 10:20:21 · 262 阅读 · 0 评论 -
深入JVM 平台无关性与语言无关性
——通常所指的代码编译是一个从程序翻译成机器所能识别的二进制机器码的过程。然而越来越多的程序语言选择了与具体操作系统和机器指令集无关,平台中立的格式作为程序编译的存储格式——与平台无关的构想最终实现在操作系统的应用层上,所谓不同平台的虚拟机都可以载入和执行同一种平台无关的字节码,从而实现一次编写,到处运行的目的字节码(bytecode)是构成平台无关性的基石,Java虚拟机载入并执行统一的...原创 2019-02-24 15:18:23 · 1304 阅读 · 0 评论 -
Java ArrayList的删除
假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。执行下面的方法numQuest(),最终的输出结果是什么?publicvoidnumQuest(){ intk=0; Integerzero=newInteger(0); while(k<nums.size()){ ...原创 2019-09-08 15:40:52 · 1902 阅读 · 0 评论