![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java提高篇
sy没有撤退可言
大人,时代变了
展开
-
JAVA中的反射机制
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、反射的概念 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。反射就是把java类中的各种成分映射成一个个的Java对象。 例如: 一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。 (其实:一个类中这些成员方法、构造方法、在加入类中都原创 2020-08-12 15:57:23 · 142 阅读 · 0 评论 -
JAVA异常处理机制(一)
首先通过一道牛客网的JAVA题引入: 下面让我们回顾一下相关知识。 一、JAVA异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。 Java异常类层次结构图: 在 Java 中,所有的异常都有一个共同的祖先 Throwable原创 2020-08-09 16:08:19 · 213 阅读 · 1 评论 -
JAVA集合框架之——HashMap
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。 一、定义 HashMap实现了Map接口,继承AbstractMap。其中Map接口定义了键映射到值的规则,而AbstractMap类提供 Map 接口的骨干实现,以最大限度地减少原创 2020-08-08 19:56:17 · 147 阅读 · 0 评论 -
原码、反码、补码的总结和理解
原码、反码、补码 结束了上一篇各种进制的转换,我们来谈谈另一个话题:原码、反码、补码。 我们已经知道计算机中,所有数据最终都是使用二进制数表达。 我们也已经学会如何将一个10进制数如何转换为二进制数。 不过,我们仍然没有学习一个负数如何用二进制表达。 比如,假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。 现在想知道,-5在计算机原创 2020-08-05 13:08:36 · 217 阅读 · 1 评论 -
进制的转换
例题引入 首先我们由牛客网上一道Java专项练习题引入: 那我们先来看一下八进制的13如何转十进制: 八进制的14转为十进制: 八进制的204转为十进制: 所以可得: 11 x12=132 由此可知该题选A。 那么正确的做法应该是怎么样的呢? 首先我们可以假设这个式子现在是x进制 对A选项来说,我们可以得出如下的公式: 最后解得x=8或者x=-1(不符合题意直接去掉)即我们计算出该条式子采用的是八进制。 下面让我们来系统学习一下各机制之间是如何转换的。 1.十进制与二进制之间的相互转换 (1)十进原创 2020-08-05 10:12:20 · 462 阅读 · 1 评论 -
Java类加载机制的理解
最近在刷牛客上的Java笔试题遇到过不少关于类加载的题目,发现完全就像一个未知领域一样,下面就让我们来一起看看类加载到底是个什么东西。 一、什么是类的加载 在介绍类的加载机制之前,先来看看,类的加载机制在整个java程序运行期间处于一个什么环节,下面使用一张图来表示: 从上图可以看,java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。今天我们要讨论的就是这个环节。有了这个印象之后我们再来看类的加载的概念: 其实可以一句话来原创 2020-08-01 10:15:50 · 212 阅读 · 1 评论 -
Java——抽象类与接口
抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 一、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。比如new Animal(),我们都知道这个是产生一个动物Animal对象,但是这个Animal具体长原创 2020-07-21 19:23:09 · 148 阅读 · 0 评论 -
Java集合的迭代——Iterator
迭代对于我们搞Java的来说绝对不陌生。我们常常使用JDK提供的迭代接口进行Java集合的迭代。 迭代其实我们可以简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类,它是一个很典型的设计模式。Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 在没有迭代器时我们都是这么进行处理的。如下: 对于数组我们是使用下标来进行处理的: 对于ArrayList是这么处理的: 对于这两种方式,我们总是都事先知道集合的内原创 2020-07-19 17:29:57 · 922 阅读 · 0 评论