Java基础
文章平均质量分 74
勤奋猫
这个作者很懒,什么都没留下…
展开
-
Java基础(15)——注解
常用注解Java注解从Java1.5开始引入,注解就是代码中的特殊标记,告诉类要如何运作。注解的典型应用是:通过反射技术获得类中的注解,来决定如何运行类。注解可以标记在类、属性、方法、变量等,并且一个地方可以同时标记多个注解。先从一个简单的注解开始说起。class SuperClass { public void test() {}}class SubClass extends SuperClass{ @Override public void test() {}}原创 2021-04-13 14:13:30 · 409 阅读 · 0 评论 -
Java基础(13)——反射
反射,简单来说就是在运行时获取类及类的信息。我们手动编写的.java文件,经过java编译器编译后,生成对应的同名.class文件,其中同名的.class文件里面保存有java文件中的所有信息,包括有类名、方法、字段等,只不过是以字节码的形式保存。当程序中第一次使用该类时,JVM会通过全限定名查找.class文件,加载到内存中,然后根据此文件创建对应的Class对象,注意,不是这个类的实例对象。Class类在Java中用来表示运行时类型信息的对应类就是Class类,Class类是一个是实实在在的类,原创 2021-04-06 14:05:46 · 83 阅读 · 0 评论 -
Java基础(14)——AutoCloseable作用
AutoCloseable用于自动执行资源关闭操作,jdk7添加,位于java.lang包中。实现了AutoCloseable接口的类的实例对象,可以由try语句自动执行资源释放的过程。AutoCloseable接口中只有close()方法,实现了这个接口的类重写close方法,自行决定释放哪些资源,当try语句结束时,会自动调用close方法。Closeable接口继承了AutoCloseable,具有同样的功能。public interface AutoCloseable { void cl原创 2021-03-31 21:31:43 · 1620 阅读 · 0 评论 -
Java基础(12)——泛型
泛型,可以理解为参数化类型。对于参数,我们比较熟悉的是形参和实参。方法定义时,用的是形参,在调用方法时,实际传的数值或对象叫实参。参数化类型,可以理解为,在定义类或者方法时,将用到的类型参数化(类型形参),不传具体的类型,只是在使用时,才将具体的类型传进来(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。比较常见的用法是容器类,例如list,set,map。作用当不使用泛型,可能会在运行时产生转换异常。// 当不限定List中存储的原创 2021-03-23 21:12:04 · 197 阅读 · 0 评论 -
Java基础(10)——Java中的基本类型及其包装类
基本数据类型Java中有8种基本数据类型,分别是boolean,byte,char,short,int,long,float,double。类型长度默认值包装类boolean–falseBooleanbyte8位,1字节0Bytechar16位,2字节‘\u0000’(0)Charactershort16位,2字节0Shortint32位,4字节0Integerlong64位,8字节0LLongfloat3原创 2021-03-11 21:45:39 · 83 阅读 · 2 评论 -
Java基础(09)——==与equals的区别
equals()与==在Object中完全一致,下面是Object中equals()中的源码。public boolean equals(Object obj) { return (this == obj);}可以看到,equals方法直接返回自身==传入对象的结果。“==”,两边是基本类型的话,比较的是数值,引用类型的话比较的是两个对象的内存地址,即它俩是否是同一个对象。Java中,所有的类都直接或者间接继承Object类,若是不重写equals方法,那么会与Object保持一致。但原创 2021-03-11 19:35:51 · 69 阅读 · 0 评论 -
Java基础(08)——static关键字的五个作用
static主要有以下五个作用:静态变量静态方法静态代码块静态内部类静态导包下面一一介绍。静态变量static修饰变量,使其成为静态变量。我们通常将static修饰的变量成为类变量,这主要是相对于属于对象的普通变量来说的,静态变量可以直接通过类名.变量使用。当然静态变量也是可以通过对象获取的,但是阿里巴巴Java开发手册建议直接通过类名访问,减少解析与内存成本。public class StaticClass { public static String staticStr;原创 2021-03-10 21:43:41 · 189 阅读 · 0 评论 -
Java基础(07)——内部类
Java基础(08)——内部类内部类,顾名思义:将一个类定义在另一个类里。下列就是一个内部类的简单定义。public class Outer { private String outStr = "outer string"; public class Inner { private String inStr = "inner string"; }}编译后的.class文件如图所示,外部类与内部类会成为两个文件,其中内部类的名称为Outer$Inner.c原创 2021-03-04 15:31:46 · 272 阅读 · 1 评论 -
Java基础(06)——final关键字的作用
#final分别可以修饰类、方法、变量、方法参数。被final修饰的类不能被继承被final修饰的方法不能被重写被final修饰的变量不能被修改被final修饰的方法参数在方法内不能被修改类和方法被final修饰没啥好说的;被final修饰的基本类型的值不能被修改,被final修饰的引用类型的引用不能被修改,但是引用本身指向的内容是可以修改的;被final修饰的方法参数,在方法内,基本类型的值不能被修改,引用类型的引用不能被修改,引用本身指向的内容可以被修改。final修饰变量尝试修改fi原创 2021-03-01 14:15:19 · 167 阅读 · 0 评论 -
Java基础(05)——类加载顺序
单个类加载顺序InitOrderClass:public class InitOrderClass { static { System.out.println("初始化静态代码块"); } static int staticNum = initStaticNum(); { System.out.println("初始化非静态代码块"); } public int num = initNum(); public s原创 2021-02-25 20:48:27 · 153 阅读 · 0 评论 -
Java基础(04)——重写(Override)与重载(Overload)
重写(Override)与重载(Overload)重写(Override)重写:子类对父类中允许子类访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写。重写的好处在于,子类可以根据自己的需要,重新定义此方法在自己内部的实现逻辑。重写规则参数列表与被重写的方法的参数列表必须完全相同子类中,想要重写的方法与父类中方法的参数列表不是完全相同,那就相当于在子类中重载了一个新的方法,与重写无关,子类中会有两个同名方法,只是参数不同。返回类型与被重写方法的返回类型可以原创 2021-01-24 21:02:34 · 184 阅读 · 0 评论 -
Java基础(03)——面向对象
面向对象(Object Oriented)面向对象主要有四个特性:抽象,封装,继承,多态。抽象**抽象可以理解为将现实事物简化、概括,方便人们理解,进而转化为代码的过程。**比如地图就是对现实地理情况的抽象。软件开发解决的是现实问题,但是需要对信息进行提炼抽象,抓住问题的本质与重要的属性,从而能够更好更快地解决问题。抽象包括两个方面:过程抽象与数据抽象。过程抽象,是指将一个系统按照功能分为若干个子系统,进行"自顶向下""逐步求精"的程序设计。数据抽象,以数据为中心,把数据类型和施加在对该类型对原创 2021-01-24 17:55:09 · 51 阅读 · 0 评论 -
Java基础(02)——为什么要同时重写equals()与hashCode()
大家都知道重写equals()方法后,需要重写hashCode(),至于为什么却不一定清楚。经过学习,发现原因可以用简短的几句话解释。只重写equals()方法,而不重写hashCode(),会违反hashCode的通用约定,造成与预期不一致的情况发生,所以基于散列的集合都会出现这个问题。比如两个对象用equals比较,结果相等,但是同样作为key插入HashMap,却可以插入两次,与预期不一致。解析Object的方法首先看一下Object的equals()方法public boolean原创 2020-12-04 00:39:33 · 117 阅读 · 0 评论 -
Java基础(01)——int与Integer比较
作为Java初学者,int与Integer的比较之前一直有地方不清楚,花了点时间研究一下,现在基本明白了,记录如下,以备查阅。示例 int A1 = 127; int A2 = 127; System.out.println("int与int比较127:A1==A2 "+ (A1==A2)); int A3 = 128; int A4 = 128; System.out.println("int与int比较128:A原创 2020-12-03 00:13:02 · 185 阅读 · 0 评论