自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java-异常(Exception)处理及常见异常

很多事件并非总是按照人们自己设计意愿顺利发展的,经常出现这样那样的异常情况。例如: 你计划周末郊游,计划从家里出发→到达目的→游泳→烧烤→回家。但天有不测风云,当你准备烧烤时候突然天降大雨,只能终止郊游提前回家。“天降大雨”是一种异常情况,你的计划应该考虑到这样的情况,并且应该有处理这种异常的预案。计算机程序的编写也需要考虑处理这些异常情况。异常(exception)是在运行程序时产生的一种异常情况,已经成为了衡量一门语言是否成熟的标准之一。目前的主流编程语言,如 C++、c#、Ruby 和 Python

2022-04-23 14:10:28 498

原创 java-Lambda表达式的使用

在《Java Lambda表达式》和《Java Lambda表达式的3种简写方式》一节中我们了解了 Java Lambda 的概念并可以在匿名类的场合使用 Lambda 语法进行简单替换。本节主要介绍在 Java 中如何使用 Lambda 表达式。作为参数使用Lambda表达式Lambda 表达式一种常见的用途就是作为参数传递给方法,这需要声明参数的类型声明为函数式接口类型。示例代码如下:public static void main(String[] args) { int n1 =

2022-04-23 10:40:03 527

原创 java-lambda

Lambda 表达式(Lambda expression)是一个匿名函数,基于数学中的λ演算得名,也可称为闭包(Closure)。现在很多语言都支持 Lambda 表达式,如 C++、C#、Java、 Python 和 JavaScript 等。Lambda 表达式是推动 Java 8 发布的重要新特性,它允许把函数作为一个方法的参数(函数作为参数传递进方法中),下面通过例 1 来理解 Lambda 表达式的概念。先定义一个计算数值的接口,代码如下。// 可计算接口public interface

2022-04-21 23:11:40 182

原创 java-Effectively final

Java 中局部内部类和匿名内部类访问的局部变量必须由 final 修饰,以保证内部类和外部类的数据一致性。但从 Java 8 开始,我们可以不加 final 修饰符,由系统默认添加,当然这在 Java 8 以前的版本是不允许的。Java 将这个功能称为 Effectively final 功能。编写同样的代码,分别在 Java 7 和 Java 8 下运行,代码如下:public class Test { public static void main(String[] args) {

2022-04-19 09:18:24 230

原创 java-匿名类

匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类。其语法形式如下:new <类或接口>() { // 类的主体};这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。使用匿名类可使代码更加简洁、紧凑,模块化程度更高。匿名类有两种实现方式: 1. 继承一个类,重写其方法。 2. 实现一个接口(可以是多个),实现其方法。下面通过代码来说明。public class Out { void show()

2022-04-19 08:30:55 1464 1

原创 java-接口

抽象类是从多个类中抽象出来的模板,如果将这种抽象进行的更彻底,则可以提炼出一种更加特殊的“抽象类”——接口(Interface)。接口是 Java 中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成。定义接口Java 接口的定义方式与类基本相同,不过接口定义使用的关键字是 interface,接口定义的语法格式如下:[public] interface interface_name [extends interface1_name[, in

2022-04-16 09:27:29 290

原创 java-抽象

Java 语言提供了两种类,分别为具体类和抽象类。前面学习接触的类都是具体类。这一节介绍一下抽象类。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类称为抽象类。在 Java 中抽象类的语法格式如下:<abstract>class<class_name> { <abstract><type><method_name>(par

2022-04-14 18:10:27 102

原创 java-多态

多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。对面向对象来说,多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性。Java 实现多态有 3 个必要条件:继承、重写和向上转型。只

2022-04-10 00:21:28 153

原创 Java-方法重写

在子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法,只是方法体中的实现不同,以实现不同于父类的功能,这种方式被称为方法重写(override),又称为方法覆盖。当父类中的方法无法满足子类需求或子类具有特有功能的时候,需要方法重写。子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。在重写方法时,需要遵循下面的规则:参数列表必须完全与被重写的方法参数列表相同。返回的类型必须与被重写的方法的返回类型相同(Ja

2022-04-09 23:43:30 503

原创 java-对象类型转换

Java 语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。Java 中引用类型之间的类型转换(前提是两个类是父子关系)主要有两种,分别是向上转型(upcasting)和向下转型(downcasting)。1)向上转型父类引用指向子类对象为向上转型,语法格式如下:fatherClass obj = new sonClass();其中,fatherClass 是父类名称或接口名称,obj 是创建的对象,sonClass 是子类名称。向上转型就是把子类对象直接赋给父类

2022-04-07 23:04:26 440

原创 java-super

由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。super 关键字的功能:在子类的构造方法中显式的调用父类构造方法访问父类的成员方法和变量。super 关键字可以在子类的构造方法中显式地调用父类的构造方法,基本格式如下:super(parameter-list);其中,parameter-list 指定了父类构造方法中的所有参数。super( ) 必须是在子类构造方法的方法体的第一行。声明父类

2022-04-06 16:46:12 183

原创 java-继承

教师和学生都属于人,他们具有共同的属性:姓名、年龄、性别和身份证号,而学生还具有学号和所学专业两个属性,教师还具有教龄和所教专业两个属性。下面编写 Java 程序代码,使教师(Teacher)类和学生(Student)类都继承于人(People)类,具体的实现步骤如下。创建人类 People,并定义 name、age、sex、sn 属性public class People { public String name; // 姓名 public int age; // 年龄

2022-04-05 12:35:24 5152 1

原创 java-类的封装

下面以一个员工类的封装为例介绍封装过程。一个员工的主要属性有姓名、年龄、联系电话和家庭住址。假设员工类为 Employee,示例如下:public class Employee { private String name; // 姓名 private int age; // 年龄 private String phone; // 联系电话 private String address; // 家庭住址 public String getName() {

2022-03-30 22:27:39 616

原创 java-递归

字 N 的阶乘是 1 到 N 之间所有整数的乘积。例如 3 的阶乘就是 1×2×3。下面的程序使用递归来计算数字的阶乘。public class Factorial { int fact(int n) { int result; if (n == 1) { return 1; } result = fact(n - 1) * n; return result;

2022-03-29 15:54:51 503

原创 java-自定义包

创建一个名为 com.dao 的包。向 com.dao 包中添加一个 Student 类在这里插入代码片,该类包含一个返回 String 类型数组的GetAll() 方法。Student 类代码如下:package com.dao;public class Student { public static String[] GetAll() { String[] namelist = {"李潘","邓国良","任玲玲","许月月","欧阳娜","赵晓慧"}; .

2022-03-29 15:18:48 678 1

原创 java-package

为了解决上述问题,Java 引入了包(package)机制,提供了类的多层命名空间。用于解决类的命名冲突、类文件管理等问题。包的 3 个作用如下:区分相同名称的类。 能够较好地管理大量的类。 控制访问范围。Java 中使用 package 语句定义包,package 语句应该放在源文件的第一行。在每个源文件中只能有一个包定义语句,并且 package 语句适用于所有类型(类、接口、枚举和注释)的文件。定义包语法格式如下:package 包名;Java 包的命名规则如下:包名全部由小写

2022-03-21 22:48:57 731

原创 java-析构方法

在 Java 的 Object 类中还提供了一个 protected 类型的 finalize() 方法,因此任何 Java 类都可以覆盖这个方法,在这个方法中进行释放对象所占有的相关资源的操作。对象的 finalize() 方法具有如下特点:垃圾回收器是否会执行该方法以及何时执行该方法,都是不确定的。finalize() 方法有可能使用对象复活,使对象恢复到可触及状态。垃圾回收器在执行 finalize() 方法时,如果出现异常,垃圾回收器不会报告异常,程序继续正常运行。纯文本复制pro

2022-03-21 22:02:16 491

原创 java-查询个人信息

个员工都会有自己的档案,主管可以查看在职员工的档案。使用 Java 创建一个员工实体类,然后通过构造方法创建一个名为“王洁”的员工,最后打印出员工档案信息。示例步骤如下。public class Person { private String name; // 姓名 private int age; // 年龄 private String sex; // 性别 private String birthday; // 出生日期 private

2022-03-20 10:04:42 1240

原创 java-可变函数

声明可变参数的语法格式如下:methodName({paramList},paramType…paramName)其中,methodName 表示方法名称;paramList 表示方法的固定参数列表;paramType 表示可变参数的类型;… 是声明可变参数的标识;paramName 表示可变参数名称。每次参加考试的人数是不固定的,但是每次考试完之后都需要打印出本次考试的总人数以及参加考试的学生名单。下面编写程序,使用方法的可变参数实现该功能,具体的代码如下:public class St

2022-03-13 22:34:01 232 1

原创 java-final

final 修饰符使用总结final 修饰类中的变量 表示该变量一旦被初始化便不可改变,这里不可改变的意思对基本类型变量来说是其值不可变,而对对象引用类型变量来说其引用不可再变。其初始化可以在两个地方:一是其定义处,也就是说在final变量定义时直接给其赋值;二是在构造方法中。这两个地方只能选其一,要么在定义时给值,要么在构造方法中给值,不能同时既在定义时赋值,又在构造方法中赋予另外的值。final 修饰类中的方法 说明这种方法提供的功能已经满足当前要求,不需要进行扩展,并且也不允许任何从此类

2022-03-12 10:25:10 64

原创 java-创建学生类

Java创建一个学生类创建一个表示学生的实体类 Student,其中有学生姓名、性别和年龄信息。要求使用属性来表示学生信息,最终编写测试代码。首先定义一个名为 Student 的类,代码如下:public class Student { // 学生类}在类中通过属性定义学生、性别和年龄,代码如下:纯文本复制public class Student { public String Name; // 学生姓名 public int Age; // 学生

2022-03-05 00:08:35 9792

原创 java-小题

Java 中初始化数组有以下 3 种方式。使用 new 指定数组大小后进行初始化使用 new 指定数组元素的值直接指定数组元素的值// 使用 new 指定数组大小后进行初始化int[] number = new int[5];number[0] = 1;number[1] = 2;number[2] = 3;number[3] = 5;number[4] = 8;// 使用 new 指定数组元素的值(2种方式)int[] number = new int[] { 1, 2, 3,.

2022-03-03 13:34:13 116

原创 java-arrays工具类

Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。1)int binarySearch(type[] a, type key)使用二分法查询 key 元素值在 a 数组中出现的索引,如果 a 数组不包含 key 元素值,则返回负数。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。2)int binarySea

2022-02-10 11:31:52 218

原创 java-初始化数组

Java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。能不能只分配内存空间,不赋初始值呢?不行,一旦为数组的每个数组元素分配了内存空间,每个内存空间里存储的内容就是该数组元素的值,即使这个内存空间存储的内容为空,这个空也是一个值(null)。不管以哪种方式来初始化数组,只要为数组元素分配了内存空间,数组元素就具有了初始值。初始值的获得有两种形式,一种由系统自动分配,另一种由程序员指定。数组在初始化数组的同时,可以指定数组的大小,也可以

2022-01-30 16:26:57 5986

原创 java-拆箱和装箱

在了解包装类后,下面介绍包装类的装箱与拆箱的概念。其实这两个概念本身并不难理解,基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。手动实例化一个包装类称为手动拆箱装箱。Java 1.5 版本之前必须手动拆箱装箱,之后可以自动拆箱装箱.也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行装箱及拆箱操作.不用在进行手工操作,为开发者提供了更多的方便。pub

2022-01-29 01:25:59 739

原创 java-小程序

在该程序中,分别使用 Date 类的无参数构造方法创建了两个 Date 对象。在创建完第一个 Date 对象后,使用 Thread.sleep() 方法让程序休眠 60 秒,然后再创建第二个 Date 对象.这样第二个 Date 对象所表示的时间将会在第一个 Date 对象所表示时间之后.因此“date2.before(date1)”条件表达式不成立,从而执行 else 块中的代码.表示事情已经发生过。运行该程序,执行结果如下所示。import java.util.Date;import ja

2022-01-29 00:59:17 359

原创 java-生成随机数

在 Java 中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。Random 类位于 java.util 包中,该类常用的有如下两个构造方法。Random():

2022-01-29 00:46:28 621

原创 java-math基础

2022-01-28 21:07:34 233

原创 java-字符串的替换

在 Java 中,String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll()replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下:字符串.replace(String oldChar, String newChar)其中,oldChar 表示被替换的字符串;newChar 表示用于替换的字符串。replace() 方法会将字符串中所有 oldChar 替换成 newChar。pub

2022-01-26 02:29:55 1874

原创 java-截取字符

public static void main(String[] args) { // 定义存储新闻标题的数组 String[] news = new String[] { "如何快速掌握Java", "听老王剖析Java中的运算符", "学习Java的十大忠告", "你所不知道的java网络编程技巧大全", "Java面试题大全" }; String title = "************* 新闻列表 *************"; .

2022-01-26 02:08:33 90

原创 java-提取英文子字符串

substring(int beginIndex) 形式此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。substring(int beginIndex) 形式此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。substring(int beginIndex,int endIndex) 形式此方法中的 beginIndex 表示截取的起始索引,截.

2022-01-26 01:49:15 490

原创 java-去除字母的前后空格

trim() 方法的语法形式如下:字符串名.trim()public static void main(String[] args)//不能去除中间字符空格 { String str = " hell o "; System.out.println(str); // 输出 7 System.out.println(str.trim()); // 输出 5 }...

2022-01-26 01:34:49 302

原创 java-字符大小转换

Java字符串大小写转换(toLowerCase()和toUpperCase())String 类的 toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响。..toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响。public static void main(String[] args) { String en = "The Day You Went Away"; // 定义原始字符串 Sys

2022-01-26 01:19:31 903

原创 java-concat用法

使用 concat() 方法在 Java 中,String 类的 concat() 方法实现了将一个字符串连接到另一个字符串的后面。concat() 方法语法格式如下:字符串 1.concat(字符串 2);执行结果是字符串 2 被连接到字符串 1 后面,形成新的字符串。例 2如 concat() 方法的语法所示,concat() 方法一次只能连接两个字符串,如果需要连接多个字符串,需要调用多次 concat() 方法。下面创建一个实例代码来演示如何使用 concat() 方法连接多个字

2022-01-26 01:00:57 7023

原创 编写一个 Java 程序,统计某超市上半年的总销售量,要求由用户输入每月的销量。使用 for 循环的实现代码如下。

public static void main(String[] args) { int sum = 0; int num = 0; Scanner sc = new Scanner(System.in); for (int i = 1; i <= 6; i++) { System.out.println("请输入第" + i + " 个月的销售数量:"); num = sc.nextInt(); sum +=

2022-01-23 22:48:32 1274

原创 java-输入输出

Java中输入一般是通过Scanner类来实现的:Java中基本输入类型输入:Scanner scanner=new Scanner(System.in);byte型scanner.NextByte()byte n1=scanner.nextByte();short型scanner.NextShort();short n2=scanner.nextShort();int型scanner.NextInt();int n3=scanner.nextInt();

2022-01-23 22:48:21 250

原创 数据结构-bf

#include <iostream>#include <fstream>#include <cstring>using namespace std;#define error 0#define ok 1int bf(string s, string t, int pos){ int i = pos; int j = 0; int lens = s.length(); int lent = t.length(); while (i <= l

2021-12-12 16:38:02 432 1

原创 数据结构-链队列

#include <iostream>#include <fstream>using namespace std;#define ok 1#define error 0typedef struct qnode { char data; struct qnode *next;} qnode, *queen;typedef struct { queen front;//队头指针 queen reer;//队尾指针} linkqueen;//初始化in

2021-12-12 13:30:37 644

原创 洛谷-翻硬币

如题所说,如果看得懂真的比较简单。其实只要从左往右扫,如果这个硬币与下个硬币状态不同,就说明要翻一次。最后还得判断最后一个是不是0,如果是0还要再翻一次,因为题目说要全部正面朝上,就是全部为1,最后一位为0就说明翻完后全是0,还要再翻一次。#include<iostream>#include<cstdio>using namespace std;int main(){ string s;//要翻转的硬币串。 cin>>s; int sum=0;//计数.

2021-12-11 11:05:18 269

原创 数据结构-循环队列

在顺序队列中,当队尾指针已经到数组的上界,不能再有入队操作,但其实数组中还有空位置,这就叫做“假溢出”,解决假溢出的途径---- 采用循环队列。 #include <iostream>#include <fstream>using namespace std;#define max 100#define ok 1#define error 0typedef struct { int *base; int front; int rear;} squeel;.

2021-12-11 10:44:19 291

空空如也

空空如也

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

TA关注的人

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