自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Java 抽象类与接口的区别

在 Java 中,抽象类类似模板,是对事物的高度抽象(包括类整体的属性和行为);而接口是对类的行为的抽象,更像是一种行为规范。一、抽象类 抽象类使用 abstract 来修饰。抽象类不能被实例化,只能是子类的超类,但可以有默认的方法实现。同时,抽象类可以用于创建继承层级里子类的模板。public abstract class Test { }二、接口 若某类实现了某接口,那么它就继承了其抽象方法。接口类似一种协议,本身不做任何事。...

2021-12-02 18:09:41 477

原创 Java 中 instanceof 运算符的使用场景

Instanceof 运算符的含义 Java 中的 instanceof 运算符可以指出对象是否是特定类的一个实例。在具体的语句中,instanceof 左边是对象,右边是类。若该对象是右边类或子类所创建的,则返回 true ,否则返回 false。需要注意的是,instanceof 运算符左边的对象实例不可以是基础数据类型;null 与任何值进行运算均返回 false。 例如下列代码段中,a 是接口 Test1 的实例对象引用指向子类 Test2,类 Test2 ...

2021-11-27 21:31:13 466

原创 Java 重载与覆盖

多态是指一个程序中同名但不同方法共存的情况。方法同名是因为它们最终实现的功能和目的相同或相似,但由于完成同一个功能时可能遇到不同的具体情况,所以需要定义含不同内容的方法。在 Java 中,多态的机制有重载和覆盖。一、重载 在类中定义了多个同名但不同参数的成员方法时,这些方法称为重载。但在 Java 中,同名同参但不同类型返回值的方法不是重载,无法通过编译。class Test{ public int Fun(){ // 函数体 } ...

2021-11-27 16:12:21 1137

原创 Java 中的组合

一、组合概念的引入 相比面向过程的程序,面向对象的程序具有具有“高聚合,低耦合”的特点。这一技术是依靠封装与组合技术的综合运用来实现的。封装利用了访问控制符来实现,而组合是通过对象内部的属性引用来实现的。二、代码举例 在下列代码段中,引入 fp 就将 A 对象与 FighterPlane 对象组合了起来。A 对象和 FighterPlane 对象在内存中是两个对象,但由于 A 中拥有 FighterPlane 对象的引用,就可以把 A 对象看成是由 FighterPlan...

2021-11-27 15:36:52 1434

原创 Java 访问控制修饰符简介

对于面向对象的程序,封装是其最有代表性的特点。要体现封装,就要灵活掌握访问控制权限的设置。在 Java 中,访问控制修饰符可以用于修饰类、类的域变量或类的成员方法。修饰符及其效果如下表所示:一、public 公有访问修饰符 声明为 public 的东西能够被任何类所访问。若相互访问的 public 类分布在不同的包中,则需导入相应 public 类所在的包。类中所有的 public 方法和变量都能被继承和使用。我们平时主函数总是写为“public static voi...

2021-11-27 15:16:41 564

原创 Java 数组元素为基本类型和引用类型时的区别

1、若声明的数组是基本数据类型的数组,那么数组中的各个元素都是基本数据类型而不是对象。例如:int[] str = new int[100];在基本数据类型被创建时,计算机会为其在栈上划分存储空间,将数值直接存储于栈内。2、若声明的是引用类型的数组,数组的各元素都是对象。例如:Object[] str = new Object[100];引用数据类型在被创建时,首先会在栈上为其引用(句柄)分配一块内存;但对象具体的信息都存储在堆内存上。栈上面的引用指向堆中对象的地址。...

2021-11-25 17:38:07 475

原创 Java 中 final 修饰符的作用

一、fianl 修饰的类 用 final 修饰的类,不允许被继承,也不会再有子类。试考虑下列代码段:final class Test{}class FinalTest extends Test{} 编译器会抛出如下错误类型:The type FinalTestcannot subclass the final class ,告诉我们“FinalTest这个类无法继承 final 修饰的类”。二、final 修饰的方法 final 不能用于修...

2021-11-25 16:19:04 567

原创 Java 对象初始化顺序

java 对象的初始化并不是一蹴而就的。其中可能包括构造方法、、成员变量初始化、静态变量初始化、静态语句块、实例语句块等步骤。在对象进行初始化时,这些步骤的执行顺序就是 Java 对象的初始化顺序。试考虑下列代码:public class Test { static { System.out.println("静态语句块"); } static Inner in = new Inner("静态变量"); Inner in1 = new In...

2021-11-24 21:10:39 387

原创 Java 对象作为参数传递的特点

一、例题引入1、考虑下列代码段StringBuffer WZN = new StringBuffer("test ");System.out.println("WZN is"+ WZN.toString());Change(WZN);System.out.println("WZN is"+ WZN.toString());// 其中Change函数如下:public static void Change(StringBuffer str){ str.append("1");}

2021-11-23 21:53:19 459

原创 Java 对象与对象引用简介

一、类与对象 对象是对客观事务的抽象,而类是对象的抽象。对象是类的实例,而类是对象的模板。类犹如一个制造设计图纸,可以由它制造出多个产品(对象);如果我们改装其中一个产品,并不会对其他产品造成影响。但如果我们修改“图纸”,就会对新制造出的产品产生影响。 类和对象都有域(属性;数据成员)和方法(操作;成员方法)。域是事物静态特征的抽象;方法是事物动态特征的抽象。二、对象引用举例1、创建对象:new FighterPlane(); // 对象分配在堆heap上2...

2021-11-15 18:49:08 388

原创 Java 跳转语句

一、break 语句 break 语句有带标号和不带标号两种形式:break;break lab; 其中 break 是关键字,lab 是用户定义的标号。break 语句在 switch 结构中可以强行退出 switch 结构;在 for 循环中可以退出一层循环。如果想要退出多重循环,则必须使用带标号的 switch 语句。/** break语句跳出多重循环 */lab:for(int i=0;i<10;i++){ for(int j=0...

2021-11-15 13:31:33 1244

原创 Java 中 & 与 && 运算符的区别

一、& 运算符1、位运算符 & 位运算符 & 是对二进制数进行的运算,“&” 意为 “位与” 运算。根据真值表。当且仅当二者都为 1 时,位与运算的结果才为 1;否则都为 0。例如 x=11010110,y=01011001,则 x&y 的值为 01010000。2、逻辑运算符 & 逻辑运算符 & 意为“与”。在执行 x&y 时,运算符左右两边的表达式 x 和 y 会首先被执行,随后再对结果进行与运算...

2021-11-15 13:16:05 654

原创 Java 中 int 与 Integer 的区别

1、int 是 Java 中的一种基本数据类型,而 Integer 是 int 的包装类。2、int 和 Integer 都有默认值,但并不相同。int 的默认值是 0,但 Integer 的默值是 null。3、int 不经过实例化就可以直接使用,但 Integer 必须先实例化才能使用。4、int 直接存储数据值,而 Integer 是对象的引用。我们 new 一个 Integer 时,实际生成的是一个指向此对象的指针。因此,两个通过 “Integer xxx= new Integer().

2021-11-15 12:59:39 4698

原创 Java 自动装箱与自动拆箱简介

一、自动装箱与拆箱简介 Java 中将原始的类型值转换为对应对象的过程称为“装箱”;反之则称为“拆箱”。如果装箱和拆箱的过程是自动进行的,而非认为转换,就称为“自动装箱”和“自动拆箱”。 原始类型和对应的包装类可以参考下列表格:Java 基本类型的包装类简介https://blog.csdn.net/m0_52798884/article/details/121088546?spm=1001.2014.3001.5501 假设我们有一个方法,接受一个对象类...

2021-11-15 12:43:14 71

原创 Java 基本类型的包装类简介

基本数据类型对应的包装类 基本数据类型不是类,但 Java提供了与基本数据类型对应的包装类。如下表所示:基本数据类型 对应的包装类 int Integer char Character double Double float Float long Long short Short byte Byte 下面以 int和 Integer为例,举例说明他们之...

2021-11-01 21:28:13 115

原创 CCF-CSP 201812-2 小明放学 三目运算符实现所有判断 C++

题目链接计算机软件能力认证考试系统http://118.190.20.162/view.page?gpid=T81题目分析 本题和上题类似,需要计算小明经过各个路口等待红灯和黄灯的时间。由于红绿灯的变化是具有周期性的,本题可用总时间除以周期后的余数来进行判断。而这些判断可以仅通过三目运算符来完成。完整代码如下:#include<iostream>using namespace std;int main(int argc,char* argv[]){ ...

2021-11-01 20:41:22 286

原创 Java 整型溢出简介

整型数据类型简介 在 Java中,一个 int型变量占 32字节,能表示的数据范围为 -2³¹~2³¹-1之间的整数,即十进制中 -2147483648 至 2147483647之间的整数。但在可能出现溢出时,编译器通常是不会报错的。这就需要我们对溢出有初步了解,从而减少代码中的错误。发生溢出举例 在有的编译器中,如果直接对一个整型变量赋值一个绝对值超越其表示范围的值时会报错。此类错误也最容易被发现。 而有时,是计算结果导致溢出,这时编译...

2021-11-01 20:08:02 1074 1

原创 Java 数据类型简介

数据类型概括 Java 的两大类数据类型可以划分为基本类型和复合类型。其中,基本数据类型包括整数类型、浮点类型、字符类型和布尔类型;符合数据类型包括类、接口和数组。接下来,就对其中的基本类型作简单介绍:Java 基本类型布尔类型 布尔型的常量取值只能取 true 或 false。不同于 C++ 中非 0 值也可作为“true”的规定,Java 中的布尔值不对应于任何整数值。/** 布尔型变量举例 */boolean flag = true;字符类型 ...

2021-09-29 20:43:11 89

原创 CCF 202012-1 期末预测之安全指数

题目链接计算机软件能力认证考试系统http://118.190.20.162/view.page?gpid=T123题目分析 本题首先对各项权重与分数进行乘积,再将各项的积进行求和,即可获得想要阈值。唯一需要注意的地方,就是题目中要求使用的 ReLU 函数,需要将负值变为 0。代码实现#include<iostream>using namespace std;int main(int argc,char* argv[]){ int n; ...

2021-09-25 11:16:53 75

原创 JDK、JRE、JVM 的联系与区别

JDK 简介JRE 简介JVM 简介

2021-09-25 10:57:55 102

原创 Java 实现跨平台的原理

计算机平台 计算机平台通常分为用户使用的应用平台和开发人员使用的技术平台或业务平台。而Java跨平台的“平台”更多是指操作系统和CPU构成的整体,有时也仅指操作系统。Java 跨平台原理 不同于C++等编译型语言,Java拥有独特的解决策略:首先将源文件编译为扩展名为“.class”的字节码文件。该二进制代码文件与操作系统的机器指令是无关的,必须由解释执行系统将其翻译为所在操作系统的机器码才能运行。同时,Java数据类型在任何机器上都是一致的,它不支持...

2021-09-25 10:20:19 76

原创 CCF 202104-2 临域均值

题目链接计算机软件能力认证考试系统http://118.190.20.162/view.page?gpid=T127题目分析 该题和上一题有一定的联系(【点此查看上一题解析】),但情况更加复杂。在上一题中,只需遍历一次数组便可以得到结果,每次只需处理一个元素。而在本题中,对于每一个元素都需要处理其范围内的一个小矩阵。若使用暴力法求解,虽然能得到正确的结果;但时间复杂度较高,超过了要求的时间。因此优化如下: 以 r=3 时为例,对于非边角的像素点。每一个像素点都需要计算...

2021-09-22 22:22:27 213

原创 CCF 202104-1 灰度直方图

题目链接计算机软件能力认证考试系统http://118.190.20.162/view.page?gpid=T128题目分析 图像的直方图在生活中很常见,在拍摄时可以辅助我们判断曝光是否合理。打开图像处理工具,选取“曲线”功能,就能看到制定颜色的直方图。 该题可以用一个二维数组存储矩阵,数组中每个元素的值表示对应像素的灰度。再用一个一维数组存储对应的直方图,该数组一开始应当把每个元素初始化为 0 。遍历整个数组时,将每一个元素的灰度加到直方图中对应位置,便...

2021-09-22 21:54:52 426

原创 Java 语言的特点:与 C、C++、Python 的不同

Java 语言的特点与 C 的不同与 C++ 的不同与 Python的不同

2021-09-22 20:47:28 243

原创 编译型语言与解释型语言的区别

高级语言与机器指令 我们平时写的 C++、Java 等语言都是高级语言。高级语言是由机器语言到汇编语言再到高级语言一步步发展而来的。高级语言又有面向过程和面向对象的区分。但无论我们用怎样的语言来开发程序,计算机中最终执行的都是其对应的机器指令。 而高级语言转化为机器指令的过程又有差异。因此,常见的程序设计语言通常分为编译型语言和解释型语言。编译型语言与解释型语言的区别 程序设计语言和机器语言之间的转换,如同不同母语的人进行交流。代码要被“翻译”为机器指令后...

2021-09-22 20:20:19 177

原创 我过去学习编程语言的方法、经验和教训

一、学习方法 人们常说:“学语言并不是学语法。” 当然,这里的“语言”指的是形形色色的编程语言,而不是平时说的“语言”。但正如学英语不是背单词,学中文不是记汉字一样。编程语言归根结底也只是一种对算法的描述。同样的算法可以用不同的编程语言来实现。因此,弄懂代码背后的思想远比记住各种语法要重要得多。 对于 Python 浩如烟海的库函数或是 Windows 不计其数的 API ...... 妄想背下所有的函数更是不切实际。图灵奖获奖者 N.Wirth 曾说过:“算...

2021-09-22 19:52:24 113

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除