Java语言
文章平均质量分 55
重学Java打牢基础,形形色色的教程和资料,都不如自己的烂笔头记得好
AllardZhao
学习的练习生,晓康。Python和Go语言追随者,喜欢学一些新技术,关注新技术发展动态。不断前进拥抱变化,永远确定的就是不确定。
展开
-
SpringBoot框架介绍和使用
1、SpringBoot基础介绍SpringBoot官网:Spring Boot(1)使用SpringBoot开发第一个接口首先在AutoTest下创建一个Module,Name为SpringDemo,然后在pom.xml文件中引入Springboot依赖,内容如下:# AutoTest项目中pom.xml添加内容<parent> <groupId>org.springframework.boot</groupId&g...原创 2022-04-23 00:04:44 · 195 阅读 · 0 评论 -
Java三种内部类介绍
1、内部类在Java程序中,通常情况下,会把不同的类组织在不同的包下面,对于一个包下面的类来说,它们是在同一层次,没有父子关系。还有一种类,它被定义在另一个类的内部,所以称为内部类(Nested Class)。Java的内部类分为好几种,通常情况用得不多,但也需要了解它们是如何使用的。(1)内部类(Inner Class)如果一个类定义在另一个类的内部,这个类就是Inner class。class Outer { ...原创 2022-04-23 00:04:33 · 694 阅读 · 0 评论 -
Java中常见作用域
1、权限修饰符在Java中,经常看到public、protected、private这些修饰符,这些修饰符可以用来限定访问作用域。(1)public定义为public的类(class)、接口(interface)可以被其它任何类访问。定义为public的字段(field)、方法(method)可以被其它类访问,前提是首先有访问class的权限。(2)private定义为private的字段(field)、方法(metho...原创 2022-04-23 00:04:21 · 742 阅读 · 0 评论 -
Java包和导入
1、包定义及包名注意事项在Java中,使用package来解决class命名冲突。Java定义了一种命名空间,称之为包(package),一个类总是属于某个包,类名只是一个简写,真正的完整类名是"包名.类名"。在定义class的时候,需要在第一行声明这个class属于哪个包,如:package OOP; // 申明报名为OOPpublic class Person { ... ... } (1)在Java虚拟机执行的时......原创 2022-04-23 00:04:09 · 3670 阅读 · 1 评论 -
Java静态字段和静态方法
1、静态字段在一个class中定义的字段,称之为实例字段。实例字段的特点是,每个实例都有独立的字段,每个实例的同名字段互不影响。还有一种字段是用static修饰的字段,称为静态字段(static field)。实例字段在每个实例中都有自己的一个独立"空间",但静态字段只有一个共享"空间",所有实例都会共享该字段。结论:静态字段属于所有实例"共享"的字段,实际上是属于class的字段。class Person { /...原创 2022-04-23 00:03:53 · 1840 阅读 · 0 评论 -
Java接口和接口继承
1、接口在抽象类中,抽象方法本质上是定义接口规范,即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。如果一个抽象类没有字段,所有方法全部都是抽象方法,就可以把该抽象类改写为接口(interface)。在Java中使用interface可以声明一个接口:// 抽象类Personabstract class Person { public abstract void run(); public abstract St...原创 2022-04-22 15:52:21 · 8572 阅读 · 1 评论 -
Java抽象方法和抽象类
1、抽象方法如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆盖它,那么,可以把父类的方法声明为抽象方法。class Person { // 定义抽象方法 public abstract void run();}把一个方法声明为abstract,表示它是一个抽象方法,本身没有实现任何方法语句。因为这个抽象方法本身是无法执行的,所以Person类无法被实例化。并且编译器会报错无法编译Person类,因为它包含抽...原创 2022-04-22 15:44:09 · 20514 阅读 · 0 评论 -
Java覆写和多态
1、覆写在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为覆盖(Override)。在Person类中定义了run()方法,在子类Student中,覆盖这个run()方法。class Person { public void run() { System.out.println("Person.run"); }}class Student extends Person { /* ...原创 2022-04-22 15:39:54 · 445 阅读 · 0 评论 -
Java继承和组合区别
class Book { protected String name; public String getName() {...} public void setName(String name) {...}}class Student extends Book { // 这个继承从逻辑上讲,这是不合理 protected int score;}Student不应该从Book继承,而应该从Person继承,因为Student是Person的...原创 2022-04-22 15:18:05 · 184 阅读 · 0 评论 -
Java阻断继承和向上向下转型
1、阻断继承从Java15开始,允许使用sealed修饰符,并通过permits明确写出能够从该class继承的子类名称。这种sealed类主要用于一些框架,防止继承被滥用。sealed类在Java15中目前是预览状态,要启用它,必须使用参数"--enable-preview"和"--source 15"。注:sealed [siːld] adj.封闭的,密封的。permits [pəˈmɪts] n.许可。// Shape类是一个sealed类,它只允许指定的...原创 2022-04-22 15:15:53 · 477 阅读 · 0 评论 -
Java继承和继承树
1、继承继承是面向对象编程中非常强大的一种机制,它首先可以复用代码。class Person { public String name; public int age; public String getName() { ... } public void setName(String name) { ... } public int getAge() { ... } public void setAge(int age) ...原创 2022-04-22 15:08:13 · 993 阅读 · 0 评论 -
Java方法重载
在一个类中,可以定义多个方法,如果有一系列方法,它们的功能都是类似,只有参数有所不同,那么,可以把这一组方法名做成同名方法,这种方法名相同,但各自的参数不同,称为方法重载(overload)。重载方法是指多个方法的方法名相同,但各自的参数不同。class Hello { public void hello() { // 无参数 System.out.println("Hello, world!"); } ...原创 2022-04-22 14:55:12 · 149 阅读 · 0 评论 -
Java构造方法
1、自定义构造方法创建实例的时候,经常需要同时初始化这个实例的字段,这时就需要构造方法。class Person { private String name; private int age; public Person(String name, int age) { // 定义构造方法 this.name = name; thsiage = age; } public Stri...原创 2022-04-22 14:53:22 · 3993 阅读 · 0 评论 -
Java方法的参数(二)
4、参数(1)方法参数方法可以包含0个或任意参数,方法参数用于接收传递给方法的变量值。调用方法时,必须严格按照参数的定义一一传递。class Person { ... public void setNameAndAge(String name, int age) { ... }}Person ming = new Person();ming.setNameAndAge("Xiao Ming"); //...原创 2022-04-22 14:45:50 · 381 阅读 · 0 评论 -
Java方法定义(一)
1、方法应用场景一个class可以包含多个field,但是直接把field用public暴露给外部可能会破坏封装性。class Person { public String name; public int age;}Person ming = new Person();ming.name = "Xiao Ming";ming.age = -99; // 设置age为负数,显然不合理直接操作field,容易造成逻辑混乱,为了避免外...原创 2022-04-22 14:40:41 · 353 阅读 · 0 评论 -
Java面向对象基础
Java是一种面向对象的编程语言。面向对象编程(Object-Oriented Programming),简称OOP。1、什么是面向对象编程?和面向对象编程不同的,是面向过程编程。面向过程编程,是把模型分解成一步一步的过程。因此,面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。面向对象的基本概念:类、实例、方法面向对象的实现方式:...原创 2022-04-21 22:12:46 · 140 阅读 · 0 评论 -
Java命令行参数
Java程序的入口是main方法,而mian方法可以接受一个命令行参数,它是一个String[]数组。命令行参数由JVM接收用户输入并传给main方法:# Test27_main.javapublic class Test27_main { public static void main(String[] args) { for (String arg: args) { if ("-version".equals(arg)) {...原创 2022-04-21 22:08:41 · 1144 阅读 · 1 评论 -
Java多维数组
1、二维数组二维数组就是数组的数组,定义一个二维数组:注:dimension n.维度,范围int[][] ns = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};System.out.println(ns.length); // 输出结果:3int[] arr0 = ns[0];System.out.println(Arrays.toString(arr0)); // 输出结...原创 2022-04-21 22:07:15 · 1175 阅读 · 0 评论 -
Java数组遍历和排序操作
1、遍历数组(1)方式一:for循环通过for循环就可以遍历数组,因为数组的每个元素都可以通过索引来访问,因此使用标准的for循环可以完成一个数组的遍历。int[] ns = {1, 4, 9, 16, 25};for(int i=0; i<ns.length; i++) { int n = ns[i]; System.out.println(n);}数组的索引范围为0~ns.length-1,当 i=ns.length 时就会报超...原创 2022-04-20 23:50:32 · 3190 阅读 · 0 评论 -
Java的break和continue
无论是while循环还是for循环,有两个特别的语句可以使用,就是break语句和continue语句。break跳出当前循环,continue结束本次循环。1、beark语句在循环过程中,可以使用break语句跳出当前循环。int sum = 0;for (int i=0;;i++) { sum = sum + i; if (i == 100) { break; // 跳出当前循环 }}Syste...原创 2022-04-20 23:44:49 · 588 阅读 · 0 评论 -
Java的for和for-each循环
1、for循环for循环的功能非常强大,它使用计数器实现循环。for循环会先初始化计数器,然后,在每次循环前检测循环条件,在每次循环后更新计数器。计数器变量通常命名为i。for循环通过计数器可以实现复杂循环。用for循环实现求1到100的和:int sum = 0;for (int i=1; i<=100; i++) { sum = sum + i;}System.out.println(sum); // 输出结果:50...原创 2022-04-20 23:41:26 · 629 阅读 · 0 评论 -
Java的while和do-while循环
循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环。1、while循环while条件循环基本用法:while (条件表达式){ // 循环语句}// while循环可能一次都不执行// 继续执行后续代码while循环在每次循环开始前,首先判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果false,那就直接跳到while循环的末尾,继续往下执行。...原创 2022-04-20 23:36:33 · 1729 阅读 · 0 评论 -
Java多重选择switch
除了if语句外,还有一种条件判断,是根据某个表达式的结果,分别去执行不同的分支。1、switch多重选择switch语句根据switch(表达式)计算结果,跳转到匹配的case结果,然后继续执行后续语句,直到遇到break结束执行。switch case语句语法格式:switch(expression){ case value1 : // 语句1 break; case value2 : ...原创 2022-04-20 23:32:28 · 1069 阅读 · 0 评论 -
Java的if判断语句
在Java程序中,如果要根据条件来决定是否执行某一段代码,就需要if语句。1、if 判断(1)if 语句的基本语法:if(条件){ // 条件满足的执行}根据 if 的计算结果是true还是false,JVM决定是否执行 if语句块,即{}花括号包含的所有语句。注:if语句块可以包含多条语句。当if语句块只有一行语句时,可以省略花括号{},但是省略花括号并不总是一个好主意,不推荐忽略花括号的写法。(2)if 语句加上 e...原创 2022-04-20 10:29:55 · 14638 阅读 · 0 评论 -
Java的输入和格式化输出
1、输出我们总是使用System.out.println() 来向屏幕输出一些内容,println全称为"print line"表示并换行。如果输出不想换行可以使用print()。System.out.print("A, ");System.out.print("B, ");System.out.print("C.");System.out.println();System.out.println("End");// 输出结果:A, B, C.End2、格式化输...原创 2022-04-20 10:24:39 · 1986 阅读 · 0 评论 -
Java数组类型
1、数组的应用场景如果有一组类型相同变量,如:5位同学的成绩// 5位同学的成绩int n1 = 68;int n2 = 79;int n3 = 91;int n4 = 85;int n5 = 62;但其实没必要定义5个int变量,可以使用数组来表示"一组"int类型,如下:// 5位同学的成绩int[] ns = new int[5];ns[0] = 68;ns[1] = 79;ns[2] = 91;ns[3] = 85;ns[4]...原创 2022-04-19 22:58:31 · 1329 阅读 · 0 评论 -
Java字符和字符串
在Java中,字符和字符串是两种不同的类型。1、字符类型字符类型char是基本数据类型,它是character的缩写,一个char保存一个Unicode字符,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。char c1 = 'A';char c2 = '中';System.out.println(c1); // 输出结果:ASystem.out.println(c2); // 输出结果:中int c1a = 'A';int...原创 2022-04-19 22:53:50 · 1979 阅读 · 0 评论 -
Java浮点数运算和布尔运算
1、浮点数运算浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。在计算机中,浮点数虽然表示的范围 大,但是浮点数常常无法精确表示。由于浮点数存在运算误差,所以比较两个浮点数是否相等常常会出现错误的结果。比较两个浮点数通常比较它们的差的绝对值是否小于一个特定值。浮点数在内存的表示方法和整数比更加复杂。如果参与运算的两个数其中一个是整型,那么整型可以自动提升到浮点型。...原创 2022-04-19 20:06:23 · 672 阅读 · 0 评论 -
Java整数运算
1、四则运算加 +、减 -、乘 *、除(求商) /、求余 %int x = 12345 / 67;System.out.println(x); // 求商,输出结果:184int y = 12345 % 67;System.out.println(y); // 求余,输出结果:172、溢出需要特别注意,整数由于存在范围限制,如果计算结果超出范围就会产生溢出,而溢出不会出错,却会得到一个奇怪的结果。// 结果超出范围产生溢出int x ...原创 2022-04-19 19:58:32 · 1015 阅读 · 0 评论 -
Java变量和数据类型
变量分为两种:基本类型的变量和引用类型的变量1、基本类型的变量(1)不写初始值,就相当于给它指定了默认值,默认值总是0。// 定义了一个整型int类型的变量,名称为x,初始值为1int x = 100;(2)变量的一个重要特点是可以重新赋值。int x = 100;System.out.println(x);x = 200;System.out.println(x);(3)变量不但可以重新赋值,还可以赋值给其它变量int x = 100;int y......原创 2022-04-18 23:24:59 · 221 阅读 · 0 评论 -
Java程序基础结构和注释
1、Java程序基本结构/*** 可以用来自动创建文档的注释* @author zhaopengkang**/public class Hello { public static void main(String[] args) { // 向屏幕输出文本: System.out.println("Hello, World"); /* * 多行注释开始 * 注释内容 * 注释结束 */ }} // class定义结束Ja...原创 2022-04-18 23:17:39 · 100 阅读 · 0 评论