Java 学习历程
记录我学习 Java 的过程
对数函数
擅长word、excel、ppt、wind等软件的安装与卸载,精通PE、PS、PB、DCF、PEG等单词的拼写,熟悉Windows、Linux、Mac、Android、IOS、WP8等系统的开关机。
展开
-
Java 抽象类与接口的区别
在 Java 中,抽象类类似模板,是对事物的高度抽象(包括类整体的属性和行为);而接口是对类的行为的抽象,更像是一种行为规范。一、抽象类 抽象类使用 abstract 来修饰。抽象类不能被实例化,只能是子类的超类,但可以有默认的方法实现。同时,抽象类可以用于创建继承层级里子类的模板。public abstract class Test { }二、接口 若某类实现了某接口,那么它就继承了其抽象方法。接口类似一种协议,本身不做任何事。...原创 2021-12-02 18:09:41 · 489 阅读 · 0 评论 -
Java 中 instanceof 运算符的使用场景
Instanceof 运算符的含义 Java 中的 instanceof 运算符可以指出对象是否是特定类的一个实例。在具体的语句中,instanceof 左边是对象,右边是类。若该对象是右边类或子类所创建的,则返回 true ,否则返回 false。需要注意的是,instanceof 运算符左边的对象实例不可以是基础数据类型;null 与任何值进行运算均返回 false。 例如下列代码段中,a 是接口 Test1 的实例对象引用指向子类 Test2,类 Test2 ...原创 2021-11-27 21:31:13 · 479 阅读 · 0 评论 -
Java 重载与覆盖
多态是指一个程序中同名但不同方法共存的情况。方法同名是因为它们最终实现的功能和目的相同或相似,但由于完成同一个功能时可能遇到不同的具体情况,所以需要定义含不同内容的方法。在 Java 中,多态的机制有重载和覆盖。一、重载 在类中定义了多个同名但不同参数的成员方法时,这些方法称为重载。但在 Java 中,同名同参但不同类型返回值的方法不是重载,无法通过编译。class Test{ public int Fun(){ // 函数体 } ...原创 2021-11-27 16:12:21 · 1152 阅读 · 0 评论 -
Java 中的组合
一、组合概念的引入 相比面向过程的程序,面向对象的程序具有具有“高聚合,低耦合”的特点。这一技术是依靠封装与组合技术的综合运用来实现的。封装利用了访问控制符来实现,而组合是通过对象内部的属性引用来实现的。二、代码举例 在下列代码段中,引入 fp 就将 A 对象与 FighterPlane 对象组合了起来。A 对象和 FighterPlane 对象在内存中是两个对象,但由于 A 中拥有 FighterPlane 对象的引用,就可以把 A 对象看成是由 FighterPlan...原创 2021-11-27 15:36:52 · 1444 阅读 · 0 评论 -
Java 访问控制修饰符简介
对于面向对象的程序,封装是其最有代表性的特点。要体现封装,就要灵活掌握访问控制权限的设置。在 Java 中,访问控制修饰符可以用于修饰类、类的域变量或类的成员方法。修饰符及其效果如下表所示:一、public 公有访问修饰符 声明为 public 的东西能够被任何类所访问。若相互访问的 public 类分布在不同的包中,则需导入相应 public 类所在的包。类中所有的 public 方法和变量都能被继承和使用。我们平时主函数总是写为“public static voi...原创 2021-11-27 15:16:41 · 572 阅读 · 0 评论 -
Java 数组元素为基本类型和引用类型时的区别
1、若声明的数组是基本数据类型的数组,那么数组中的各个元素都是基本数据类型而不是对象。例如:int[] str = new int[100];在基本数据类型被创建时,计算机会为其在栈上划分存储空间,将数值直接存储于栈内。2、若声明的是引用类型的数组,数组的各元素都是对象。例如:Object[] str = new Object[100];引用数据类型在被创建时,首先会在栈上为其引用(句柄)分配一块内存;但对象具体的信息都存储在堆内存上。栈上面的引用指向堆中对象的地址。...原创 2021-11-25 17:38:07 · 482 阅读 · 0 评论 -
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 · 580 阅读 · 0 评论 -
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 · 408 阅读 · 0 评论 -
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 · 474 阅读 · 0 评论 -
Java 对象与对象引用简介
一、类与对象 对象是对客观事务的抽象,而类是对象的抽象。对象是类的实例,而类是对象的模板。类犹如一个制造设计图纸,可以由它制造出多个产品(对象);如果我们改装其中一个产品,并不会对其他产品造成影响。但如果我们修改“图纸”,就会对新制造出的产品产生影响。 类和对象都有域(属性;数据成员)和方法(操作;成员方法)。域是事物静态特征的抽象;方法是事物动态特征的抽象。二、对象引用举例1、创建对象:new FighterPlane(); // 对象分配在堆heap上2...原创 2021-11-15 18:49:08 · 396 阅读 · 0 评论 -
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 · 1260 阅读 · 0 评论 -
Java 中 & 与 && 运算符的区别
一、& 运算符1、位运算符 & 位运算符 & 是对二进制数进行的运算,“&” 意为 “位与” 运算。根据真值表。当且仅当二者都为 1 时,位与运算的结果才为 1;否则都为 0。例如 x=11010110,y=01011001,则 x&y 的值为 01010000。2、逻辑运算符 & 逻辑运算符 & 意为“与”。在执行 x&y 时,运算符左右两边的表达式 x 和 y 会首先被执行,随后再对结果进行与运算...原创 2021-11-15 13:16:05 · 678 阅读 · 0 评论 -
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 · 4724 阅读 · 0 评论 -
Java 自动装箱与自动拆箱简介
一、自动装箱与拆箱简介 Java 中将原始的类型值转换为对应对象的过程称为“装箱”;反之则称为“拆箱”。如果装箱和拆箱的过程是自动进行的,而非认为转换,就称为“自动装箱”和“自动拆箱”。 原始类型和对应的包装类可以参考下列表格:Java 基本类型的包装类简介https://blog.csdn.net/m0_52798884/article/details/121088546?spm=1001.2014.3001.5501 假设我们有一个方法,接受一个对象类...原创 2021-11-15 12:43:14 · 80 阅读 · 0 评论 -
Java 基本类型的包装类简介
基本数据类型对应的包装类 基本数据类型不是类,但 Java提供了与基本数据类型对应的包装类。如下表所示:基本数据类型 对应的包装类 int Integer char Character double Double float Float long Long short Short byte Byte 下面以 int和 Integer为例,举例说明他们之...原创 2021-11-01 21:28:13 · 123 阅读 · 0 评论 -
Java 整型溢出简介
整型数据类型简介 在 Java中,一个 int型变量占 32字节,能表示的数据范围为 -2³¹~2³¹-1之间的整数,即十进制中 -2147483648 至 2147483647之间的整数。但在可能出现溢出时,编译器通常是不会报错的。这就需要我们对溢出有初步了解,从而减少代码中的错误。发生溢出举例 在有的编译器中,如果直接对一个整型变量赋值一个绝对值超越其表示范围的值时会报错。此类错误也最容易被发现。 而有时,是计算结果导致溢出,这时编译...原创 2021-11-01 20:08:02 · 1120 阅读 · 1 评论 -
Java 数据类型简介
数据类型概括 Java 的两大类数据类型可以划分为基本类型和复合类型。其中,基本数据类型包括整数类型、浮点类型、字符类型和布尔类型;符合数据类型包括类、接口和数组。接下来,就对其中的基本类型作简单介绍:Java 基本类型布尔类型 布尔型的常量取值只能取 true 或 false。不同于 C++ 中非 0 值也可作为“true”的规定,Java 中的布尔值不对应于任何整数值。/** 布尔型变量举例 */boolean flag = true;字符类型 ...原创 2021-09-29 20:43:11 · 98 阅读 · 0 评论 -
JDK、JRE、JVM 的联系与区别
JDK 简介JRE 简介JVM 简介原创 2021-09-25 10:57:55 · 108 阅读 · 0 评论 -
Java 实现跨平台的原理
计算机平台 计算机平台通常分为用户使用的应用平台和开发人员使用的技术平台或业务平台。而Java跨平台的“平台”更多是指操作系统和CPU构成的整体,有时也仅指操作系统。Java 跨平台原理 不同于C++等编译型语言,Java拥有独特的解决策略:首先将源文件编译为扩展名为“.class”的字节码文件。该二进制代码文件与操作系统的机器指令是无关的,必须由解释执行系统将其翻译为所在操作系统的机器码才能运行。同时,Java数据类型在任何机器上都是一致的,它不支持...原创 2021-09-25 10:20:19 · 88 阅读 · 0 评论 -
Java 语言的特点:与 C、C++、Python 的不同
Java 语言的特点与 C 的不同与 C++ 的不同与 Python的不同原创 2021-09-22 20:47:28 · 260 阅读 · 0 评论 -
编译型语言与解释型语言的区别
高级语言与机器指令 我们平时写的 C++、Java 等语言都是高级语言。高级语言是由机器语言到汇编语言再到高级语言一步步发展而来的。高级语言又有面向过程和面向对象的区分。但无论我们用怎样的语言来开发程序,计算机中最终执行的都是其对应的机器指令。 而高级语言转化为机器指令的过程又有差异。因此,常见的程序设计语言通常分为编译型语言和解释型语言。编译型语言与解释型语言的区别 程序设计语言和机器语言之间的转换,如同不同母语的人进行交流。代码要被“翻译”为机器指令后...原创 2021-09-22 20:20:19 · 185 阅读 · 0 评论 -
我过去学习编程语言的方法、经验和教训
一、学习方法 人们常说:“学语言并不是学语法。” 当然,这里的“语言”指的是形形色色的编程语言,而不是平时说的“语言”。但正如学英语不是背单词,学中文不是记汉字一样。编程语言归根结底也只是一种对算法的描述。同样的算法可以用不同的编程语言来实现。因此,弄懂代码背后的思想远比记住各种语法要重要得多。 对于 Python 浩如烟海的库函数或是 Windows 不计其数的 API ...... 妄想背下所有的函数更是不切实际。图灵奖获奖者 N.Wirth 曾说过:“算...原创 2021-09-22 19:52:24 · 123 阅读 · 0 评论