
Java基础
文章平均质量分 92
NYfor2017
如有问题或疑问,请发邮件到897095558@qq.com
展开
-
Java基础:枚举的用法与原理
在学习过程中,我们也只是在定义常量的时候,会意识到枚举的存在,而定义常量其实可以在类中实现,这时就会感觉枚举有点鸡肋。但在实际项目开发的过程中,枚举因相当迷人的特性而受到越来越多的关注。本文将按以下小节点来,一一介绍枚举:枚举的实现枚举的用法枚举的原理枚举与单例(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)1. 枚举的实现枚举是JDK1.5之后的特性,在此之前一般是在类中对常量进行定义。那么为什么需要枚举呢?举个栗子:使用静态变量定义四季假如我们需要使用四个变量来代表“春原创 2020-05-12 10:00:34 · 1185 阅读 · 1 评论 -
【Java关键字】理解final关键字
前言我们在了解final关键字之前,可以先从它的字面意思去理解,有道翻译查询如下:也就是说,final的中文意思就是最终的、不可改变的。在Java中,final关键字表达的也是这样的意思。final关键字修饰变量、方法和类,不管修饰什么,其本意都是指“它是无法更改的”。本文将介绍final关键字:final关键字修饰变量final关键字修饰方法参数final关键字修饰方法final...原创 2020-04-17 13:44:24 · 458 阅读 · 0 评论 -
【Java关键字】理解instanceof关键字
前言前文对static关键字进行了介绍,读者可以知道static关键字是一个可以控制成员变量、成员方法以及代码块的加载顺序和作用范围。我们在平时看源码的时候会时不时看到instanceof关键字,Java开发者对它的第一印象就是:instanceof是用于测试一个对象是否是另一个类的实例。本文主要对instanceof关键字进行介绍:了解instanceofinstanceof作用的类型...原创 2020-04-15 16:31:32 · 1841 阅读 · 0 评论 -
【Java关键字】理解static关键字
前言关于Java关键字,笔者打算有些结合具体Java基础一起写,如transient关键字就写在你真的有好好了解过序列化吗:Java序列化实现的原理里面了,有些就单独拿出来介绍,如static、final等。本文主要对static关键字进行介绍:static修饰成员变量static修饰成员方法static静态块static静态导包static静态内部类(若文章有不正之处,或难以理...原创 2020-04-14 17:36:09 · 434 阅读 · 0 评论 -
你真的有好好了解过序列化吗:Java序列化实现的原理
前言在开发过程中经常会对实体进行序列化,但其实我们只是在“只知其然,不知其所以然”的状态,很多时候会有这些问题:什么是序列化和反序列化?为什么要序列化?怎么实现序列化?序列化的原理是什么呢?序列化时应注意什么?如果你也有这些疑问,不妨看看本文?(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)什么是序列化和反序列化?Java序列化是指把Java对象转换为字节序列的...原创 2020-03-17 17:46:37 · 651 阅读 · 0 评论 -
关于String的这9个问题,值得一看
前言Java中String的应用无处不在,无论是算法题还是面试题,String都独占一方,甚至是无数面试者心中难以名状的痛。本文着重对String(若无特地说明,默认是JDK 1.8版本)常见的问题来进行介绍:字符串的不可变性JDK 1.6和JDK 1.7中substring的原理及区别replaceFirst、replaceAll、replace区别String对“+”的“重载”字...原创 2020-03-15 14:03:08 · 799 阅读 · 2 评论 -
Java的基本数据类型、拆装箱(深入版)
前言本文主要总结了Java的八种基本数据类型以及它们在虚拟机中的标记,还会对:“什么是浮点型?什么是单精度和双精度?为什么不能用浮点型表示金额?”这些问题进行解释。在Java中已经提供基本数据类型,为什么还要提供包装类型?Integer的缓存机制是什么样的?(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)八种基本数据类型、包装类Java基本数据类型如下:类型值域...原创 2020-03-11 17:17:39 · 727 阅读 · 0 评论 -
Java的访问级别(深入版)
前言本文会对Java的四种访问级别进行总结,以及解释访问权限在类加载的哪一步实施。(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)四种访问级别Java中有四种访问级别,分别是private、protected、缺省和public,它们之间的访问级别区别如下表所示:ModifierClassPackageSubclassWorldpublicYY...原创 2020-03-11 15:06:43 · 696 阅读 · 0 评论 -
Java的成员变量、局部变量(深入版)
前言在《Java的构造函数与默认构造函数(深入版)》介绍Java对象初始化过程时,提到了实例变量。本文介绍Java中包括实例变量在内的几种变量,以及它们的作用域。(咳,本文结语有一个小总结哦~)(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)变量初学Java时,我们一般会将变量分为成员变量和局部变量,类中方法外的变量是成员变量,类中方法内的变量是局部变量。举个栗子:publi...原创 2020-03-09 17:56:01 · 762 阅读 · 0 评论 -
Java的构造函数与默认构造函数(深入版)
前言我们知道在创建对象的时候,一般会通过构造函数来进行初始化。在Java的继承(深入版)有介绍到类加载过程中的验证阶段,会检查这个类的父类数据,但为什么要怎么做?构造函数在类初始化和实例化的过程中发挥什么作用?(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)构造函数与默认构造函数构造函数构造函数,主要是用来在创建对象时初始化对象,一般会跟new运算符一起使用,给对象成员变量赋...原创 2020-03-07 22:39:11 · 10088 阅读 · 1 评论 -
Java的多态(深入版)
前言面向对象的三大特性:封装、继承、多态。在这三个特性中,如果没有封装和继承,也不会有多态。那么多态实现的途径和必要条件是什么呢?以及多态中的重写和重载在JVM中的表现是怎么样?(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)多态多态是同一个行为具有多个不同表现形式或形态的能力。举个栗子,一只鸡可以做成白切鸡、豉油鸡、吊烧鸡、茶油鸡、盐焗鸡、葱油鸡、手撕鸡、清蒸鸡、叫花...原创 2020-03-06 21:14:51 · 8352 阅读 · 18 评论 -
Java的继承(深入版)
前言前文我们了解了面向对象的三大特征:封装、继承、多态。那么在Java中是如何展现继承的特性呢?对于子类继承于父类时,又有什么限制呢?在此解答这些问题之后,我们再了解下类的加载过程,加深对继承的了解。(若文章有不正之处,或难以理解的地方,请多多谅解,欢迎指正)引入继承假如我们有两个类:生物类、猫类。生物类:class Animal{ private String name; p...原创 2020-03-05 20:52:49 · 665 阅读 · 0 评论 -
“Java有值传递和引用传递”为什么错了?
前言初学Java的时候,老师在课堂上说“Java有值传递和引用传递”,但网上“Java只有值传递”的呼声很高。本人在查找资料的过程中,在这两个说法之间反复横跳。经过本人的整理后,其实还真的是Java只有值传递。什么是值传递?什么是引用传递?首先,我们先明确一下值传递和引用传递的定义(来自维基百科)。值传递When a parameter is passed by value, the...原创 2020-03-04 18:16:12 · 795 阅读 · 0 评论 -
不来了解下JVM支持的语言有哪些?
前言与上文我们知道,JVM作为一个可以将Class文件转换成机器码的平台,只要安装了虚拟机,就可以在上面运行字节码。同样,只要其他原因在编译过程中生成了字节码,那么照样可以通过JVM在不同平台上运行,这就实现了跨平台能力了。目前,可以直接在JVM上运行的语言除了Java之外有很多,本文主要介绍九种。正如平时我们了解一个语言时通常会先学这个语言里最经典的一句话——【我爱你】。本文将每种语言通过...原创 2020-03-03 15:21:13 · 6328 阅读 · 0 评论 -
Java的平台无关性是怎么实现的?
前言在接触Java的时候,经常能听到Java的特点之一就是:“一次编译,到处运行(Write Once, Run Anywhere)”。这种特点对于Java来说,有什么好处呢?Java又是怎么支持这一特性呢?本文简单对这个特点简单介绍一下。什么是平台无关性?平台无关性,就是在一种语言在计算机运行时,不受其平台的约束。换句话说,源码不做任何修改就可以在多个平台上运行。平台无关性有什么好处...原创 2020-03-01 17:19:59 · 4363 阅读 · 0 评论 -
面向对象的三大基本特征和五大基本原则
前言前文提到,面向对象的三个特征:封装、继承、多态。那么面向对象是怎么体现这三个特征呢?关于五大基本原则,个人找资料的时候看得头都大了,对新手(如我)来说还是比较有理解难度的,本篇用较为简单的表述来帮助理解,想先看进阶版(完全版)的可以先移步:牢记面向对象五个基本原则面向对象的三大基本特征1. 封装封装,就是将客观事物抽象为逻辑实体,实体的属性和功能相结合,形成一个有机的整体。并对实体的...原创 2020-02-29 22:57:55 · 2350 阅读 · 0 评论 -
面向对象与面向过程
前言如果你总是对面向对象和面向过程傻傻分不清,这篇博客尽量会用通俗的方式来讲解。面向过程与面向对象的区别面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。面向过程思想偏向于我们做一件事的流程,首先做什么,其...原创 2020-02-29 00:01:47 · 601 阅读 · 0 评论