自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java使用POI进行Excel表格的导入导出

POI为“Poor Obfuscation Implementation”的首字母缩写。Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。一般对Excel表格进行操作。pom文件导入poi所需要的依赖 <dependencies> <dependency> <groupId>org.apache.poi</groupId> <art

2021-06-30 21:57:13 219

原创 SQL部分语句

SQL语句数据库操作查看所有数据库-- show databases查看当前使用的数据库—select database()创建数据库—create databases 数据库名 差染色体=utf8;删除数据库—drop datebase 数据库名使用数据库—use database 数据库名查看数据库中所有表—show tables表的操作查看表结构—desc 表名创建表的语法—create table table_name(字段名 数据类型可选约束条件)creatr

2020-12-29 22:57:43 128

原创 OOP七大原则

1.开闭原则对扩展开放,对修改关闭。当需求发生变化时,在不修改软件实体源代码的情况下,可以进行功能扩展,使其满足新需求。2.里氏替换原则继承必须确保超类所拥有的性质在子类中仍然成立。通俗来讲就是,子类可以扩展父类的功能,但不能改变父类原有的功能,即不可以重写父类的方法。如果通过重写父类方法扩展新功能,写起来可能会很简单,但这会使整个继承体系的可复用性变得很差,特别是运用多态比较频繁时,程序很有可能会运行错误。典型案例,“正方形不是长方形”,“鸵鸟不是鸟”。3.依赖倒置原则要面向接口编程,不

2020-12-22 22:36:00 688 1

原创 方法引用,方法引用为什么可以使用?

本篇内容方法引用备注:使用方法引用优化Lambda表达式,1.对象必须是已经存在的method2.成员方法也是已经存在的printString所以就可以适用对象名来引用成员方法在测试类中,定义一个静态方法,静态方法传递一个函数式接口Printable,函数式接口当中定义了唯一一个抽象方法print,这个print方法接收一个字符串参数,目的就是为了打印接收的字符串参数,通常我们可以使用Lambda表达式实现以上需求。但是经过我们观察,对字符串进行控制台打印输出的查找方案,明明已经有了现成的执行方

2020-12-22 22:33:58 280

原创 Stream流

今日内容StreamStream流 JDK 1.8引入的新特性。用于解决已有集合类库既有的一些弊端。依赖于Lambda 表达式传统从集合中获取需要的元素代码如下: public class Demo01Stream { public static void main(String[] args) { // 构建一个集合 List<String> list = new ArrayList<St

2020-12-21 22:35:42 80

原创 函数式接口,Stream流

本章内容文件上传优化函数式接口自定义函数接口函数式编程常用的函数式接口文件上传优化文件名称需要优化服务器端在保存文件的时候,名字如果固定,最终会导致服务器硬盘只会保留一个文件,对上传的文件名称需要进行优化。//文件名称的优化System.currentTimeMills() + new Random().nextInt(100000)+".jpg" //或者是其他服务器端接收文件的优化服务器端接收一个文件之后就关闭了,之后的其他客户端无法继续上传文件,我们使用循环进行改

2020-12-19 22:06:33 99 1

原创 递归

递归概述递归:指的是当前方法调用自己的一种现象递归的分类:递归分为两类:直接递归和间接递归直接递归:称为方法自身调用自己的情况间接递归:方法A调用了方法B,方法B调用了方法C,方法C反过来又调用了方法A注意事项:递归一定要有边界条件(条件限定),保证递归可以停下来,否则可能会栈溢出在递归当中虽然有限定条件,但是递归的次数也不能太多,否则也会发生栈溢出现象构造方法禁止递归文件搜索获取C:\Users\Administrator\Desktop\Hello目录中所

2020-12-17 22:49:14 110

原创 IO流、字节流、字符流、异常处理

今日内容IO流字节流字符流异常处理Properties学习目标能够说出IO流的分类和功能能够使用字节输出流写出数据到文件能够使用字节输入流读取数据到程序当中能够理解读取数据read方法的原理能够使用字节流完成文件的复制能够使用FileWriter写数据到文件中能够说出FileWriter中刷新和关闭方法的区别能够使用FileWriter写数据的常用方法能够使用FileWriter实现数据的追加和换行能够使用FileReader读取数据能够使用FileReader读取数

2020-12-16 08:47:59 189

原创 函数式编程思想、Lambda表达式

函数式编程思想函数式编程思想强调的是做什么,而不是以什么样的方式来做,忽略了面向对象的复杂语法,只要能够获取到结果,谁去做的,怎么做的,都不重要,重要的是结果,不重视过程。冗余的Runnable代码public class DemoRunnable{ public static void main(String []args){ //匿名内部类的方式 new Thread(new Runnable(){ @Override public void

2020-12-12 21:11:44 77

原创 线程同步,线程状态、线程池

本章内容线程同步线程状态同步方法使用synchronized修饰的方法就叫做同步方法。保证A线程执行该方法的时候,其他线程只能在方法外面等待。格式public synchronized void method(){ // 可能会产生线程安全的代码 }备注:同步锁是谁?对于非static方法,同步锁就是this对于static方法,我们使用当前方法所在类的字节码对象(类名.class)当同步锁Lock锁'java.util.concurrent.Locks.L

2020-12-11 23:19:07 70

原创 异常和线程

本章内容异常线程异常异常的概念​ 异常:不正常,有毛病。程序当中的异常指的是出现的不正常的情况,会导致JVM的非正常停止。在java等面向对象的编程中,异常本身就是一个类。产生异常就是创建异常对象,并且抛出了一个异常对象。JAVA处理异常的方式很粗暴,直接中断处理。备注:指的并不是语法错误,如果语法错误,编译无法通过,不会产生字节码文件,根本不会在JVM中运行异常体系异常机制其实是帮助我们找到程序中出现的问题,异常的根类是java.lang.Throwable。它的下面有两

2020-12-11 22:59:27 170 1

原创 等待唤醒机制

本章内容线程通信为什么处理线程之间的通信如何保证线程间通信有效的利用资源什么是等待唤醒机制等待唤醒中的方法线程间通信概念:多个线程在处理同一个资源的时候,处理的的动作(线程的任务)却不相同。比如说:线程A用来生产娃哈哈,线程B用来消费娃哈哈,这时娃哈哈就可以理解成同一资源,线程A和线程B处理的动作不一样,一个是生产,一个是消费,那么线程A和线程B之间就存在线程通信问题。为什么要处理线程之间的通信?多个线程并发执行,在默认情况下,CPU是随机切换线程的,当我们需要多个线程共同完成一

2020-12-11 22:46:08 113

原创 等待唤醒机制经典案例----生产者与消费者

包子铺(生产者类)包子铺 线程类;继承Thread类设置线程任务 生产包子true 有包子包子铺调用wait方法进入等待状态false 没有包子增加难度:交替生产两种包子i%2==0 1包子铺生产包子修改包子状态 true唤醒吃货线程去吃包子注意:包子铺线程和吃货线程关系是—>通信,互斥必须使用同步技术保证两个线程只能有一个线程在执行锁对象必须保证唯一,可以使用包子作为对象包子铺和吃货线程的类需要把包子对象作为参

2020-12-11 21:55:19 104

原创 多线程

今日内容多线程并发与并行并发:指的是两个或多个事件在 同一时间段内发生 交替执行并行:指的是两个或多个事件在 同一时刻发生 同时执行线程与进程进程: 是指一个内存中运行的应用程序,每一个进程都有一个独立的内存空间,一个应用程序可以同时运行多个线程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序就是一个进程从创建运行到消亡的过程。线程: 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个程序至少有一个线程,一个进程可以有多个线程,这个应用程序也可以称之

2020-12-11 08:53:36 100

原创 案例题-------银行存取款系统(BSWS)软件系统模拟

​ 银行存取款系统(BSWS)软件是一款通用性能极强的银行存取款管理系统,软件功能囊括了银行从用户开户到最终销户等业务的全过程。软件适用于各级各类的银行。软件覆盖银行业的现金办理与金融转账业务,软件的各个模块操作界面简单、实用,软件帮助系统让用户可以在最短的时间内掌握软件的使用方法,帮助用户生意更上一层楼。软件系统采用银行软件业务能用的控制台操作界面,操作简单易学。系统基本模块包括:​ 功能点:​ 1.开户​ 2.存款​ 3.取款​ 4.修改密码​

2020-12-10 20:48:18 1056

原创 Comparator比较器和Comparable接口

本章内容Comparator比较器Comparable接口学习目标能够描述Comparable接口和Comparator接口的区别会自定义Comparable接口和Comparator接口比较器中的比较规则能够说出Map集合的特点使用Map集合添加方法保存数据使用键找值,键值对的方法遍历Map集合能够使用HsahMap存储自定义键值对的数据能够使用HashMap编写一些小型案例Comparator接口比较器Collections工作集中的sort() publ

2020-12-10 09:08:11 219

原创 键盘录入5个学生信息(姓名、语文成绩、数学成绩,英语成绩),按照总分从高到低输出这些学生的学生信息

创建学生类public class Student { private String name; private int ChineseScore;//语文成绩 private int MathScore;//数学成绩 private int EnglishScore;//英语成绩 private int totalScore;//总成绩 /* JavaBean标准类 */ public Student() { }

2020-12-03 21:12:45 2616

原创 泛型和泛型通配符

泛型泛型:是一种未知的数据类型,当我们不知道要是用什么样的数据类型的时候,可以使用泛型。泛型我们也可以看做是一个变量,用来接收数据类型。E e:element 元素T t: type 类型ArrayList在定义集合的时候,不知道在集合当中存储什么类型的数据,所以类型使用泛型。E: 未知的数据类型。概述:可以在类中或方法当中预知的使用未知的数据类型。一般在创建对象的时候,将未知的数据类型确定为具体的数据类型,当没有指定泛型时,默认类型是Object。使用泛型的好处避免了类型转换的麻

2020-12-03 21:02:18 305

原创 增强for循环

在JDK1.5之后,出现了一个新的循环结构,for each循环,一般也称为增强for循环,专门用来遍历数组和集合,在它内部原理其实就是有一个迭代器Iterator,在迭代过程中,不能对集合当中的元素进行增删操作。格式:for(元素类型 变量名 : Collection集合或者数组){ //操作代码...}强调:主要用于遍历Collection集合或者数组,在遍历过程中一定不要进行增删操作练习1: 遍历数组int arr[]= {1,3,5,7,9};for(int a:arr){

2020-12-01 23:19:18 112

原创 Collection集合 和 专门遍历集合和数组的迭代器

本章内容:Collection集合概述集合与数组的区别集合的框架集合框架学习方式Collection集合常用功能迭代器的使用Collection集合集合概述: 集合是一种java提供的容器,可以用来存储多个数据。集合与数组的区别:数组的长度固定,集合长度可变数组中存储的是同一种数据类型的元素,可以存储基本数据类型,也可以存储引用数据类型。集合存储的是对象,而且对象的数据类型可以不一致,在开发当中一般当对象多的时候,使用集合来存储对象。集合的框架JAVASE提供了满足各种需

2020-12-01 22:59:35 100

原创 JAVA案例题---斗地主

创建扑克牌类public class Poker { private String content;//牌底=花色+数字 public Poker() { } public Poker(String content) { this.content = content; } public String getContent() { return content; } public void .

2020-12-01 21:48:09 172

原创 Object类

Object类在Java.lang包中,类Object是类层次结构当中的根类。,每一个类像Person、Peolple、Student、Animal…都是Object类的子类,所有的对象(包括数组)都实现类Object的子类。创建学生标准类public class Student{ private String name ; private int age; public String getNmae(){ return name;}public void setName(Stri

2020-11-28 11:50:08 108

原创 内部类

内部类:如果一个事物的内部有同事包含另一个事物,那么这就是一个类的内部包含另一个类的关系。例如身体和心脏的关系 has-a关系,包含关系。心脏属于身体的一部分,身体包含心脏。分类:1.成员内部类2.局部内部类成员内部类定义格式修饰符 class 外部类名称{ //... 修饰符 class 内部类名称{ //... }}备注:内部类访问外部类信息,可以随意访问,但是当外部类想要访问内部类的信息,需要创建内部类对象,之后才可以访问。如何使用成员内部类?两种

2020-11-27 22:55:49 48

原创 final关键字的一些用法

本章内容final关键字的描述final的使用方式被final修饰的内容使用final修饰后需要注意的问题final关键字**概述:**由于Java当中提供了继承特性,子类可以在父类的基础上,改写父类的内容,比如:方法的重写,那么能不能随意的继承API当中提供的类呢?改写其内容呢?显然是不行的,为了避免这种随意更改的情况,java提供了final关键字,用于修饰不可改变的内容。final可以修饰哪些东西?final:不可变,用于修饰列,方法,变量。类:被final修饰的类,不可

2020-11-26 21:32:44 96

原创 面向对象三大特征之一---多态

本章内容多态的定义多态的前提多态的格式多态的好处访问类中成员变量的两种方式转型—向上转型、向下转型转型异常多态概述:多态是继封装继承之后面向对象的第三大特征定义: 多态指的是同一行为,具有多种不同表现形式,生活中,比如跑的动作,猫狗大象跑起来的形态是不一样的,比如飞的动作,昆虫鸟飞机的飞行动作是不一样的。可见同一行为,通过不同的事物,可以表现出不同的形态,这就是多态。前提条件继承或者实现(二选其一)父类引用指向子类对象必须有方法的重写(不重写没有意义)多态的表现格式

2020-11-25 23:21:45 86

原创 什么是接口?怎么使用接口?接口与抽象类的区别

接口概述: 接口,是java语言中的一种引用类型,是方法的集合,如果说类的内部封装了成员变量和构造方法,成员方法,那么接口的内部主要就是封装了方法。接口的定义: 接口的定义和类的定义很相似,但是不再使用class关键字进行声明,虽然它也会被编译成class文件,但一定要明确他并不是类,而是另外一种引用类型。接口就是多个类的公共规范,接口也是一种引用数据类型。接口中的内容如果是JDK1.7,那么接口中包含的内容包含常量和抽象方法如果是JDK1.8,还可以包含默认方法和静态方法如果是JDK1.9

2020-11-25 22:25:02 1305

原创 啥叫抽象类?啥叫抽象方法?杂用?????

抽象类概述: 父类中的方法,被他的子类们重写,而子类的各自实现有不一样,那么父类的方法声明和方法体,就只有声明还有意义,而方法体内容没有存在的意义。我们把这种没有方法体内容的方法称为抽象方法,java语言规定,如果一个类包含了抽象的方法,那么这个类就必须是一个抽象类。定义抽象方法: 没有方法体的方法抽象类: 包含抽象方法的类abstract关键字的使用格式抽象方法:使用abstract关键字修饰成员方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体内容。定义格式:修饰符 a

2020-11-24 22:35:59 146

原创 面向对象三大特征之一-----继承

继承概述多个类中存在相同的属性和行为时,我们可以将这些内容抽取到单独的一个类中,那么多个类就无需在定义这些属性和行为,只要去继承这个单独的类即可。其中,多个类称为子类或者派生类,单独的那一个类称为父类,超类,基类继承描述的是事物之间的所属关系,这种关系是:is-a关系。在继承关系中,子类就是一个父类,也就是说子类可以被当做父类看待 。例如:父类是员工,子类是讲师,“那么讲师就是一个员工” is-a—是一个一般情况下,父类更通用,子类更具体。我们可以通过继承,使多种事物之间形成一种关系体系定义

2020-11-24 08:51:53 63

原创 生成1000个1~33的随机数,并输出各个数字出现的个数---两种方式

问题:已知双色球中红球的数字是1~33的任意值,编写一个程序,每次从1到33中随机抽出一个数值,循环1000次,请问循环完毕后,每个数值出现的次数。import java.util.ArrayList;public class Way1{ public static void mian(String []args){ // 1.使用数组的方式 //声明一个存储33个元素的数组 int arr[]=new int[33]; //随机生成1000个1~33的随机数

2020-11-21 23:19:08 2010

原创 Math类

Math类概述java.util.Math 包含了用于执行基本数学运算的方法,如指数,幂次方,对数,平方根等。里面的方法均是静态方法,并且也不需要创建对象,调用起来很方便基本运算的方法1.public static double abs(doubel a)返回double值的绝对值 abs–absolutedouble d1=Math.abs(-5.3);//5.3double d2=Math.abs(5.3);//5.3double d3=Math.abs(0.0);//0.0

2020-11-20 22:21:18 161 1

原创 Arrays类

Arrays类概述:是一个工具包类,java.util.Arrays。此类只要是用来操作数组,里面提供了很多的操作数组的API方法,如排序和搜索功能。其中所有的方法均为静态方法,调用起来非常简单。操作数组1.public static String toString(int[ ] a)返回指定数组内容的字符串表现形式public static void main(String[] args){ //初始化一个int类型的数组,静态初始化,只指定内容,长度系统推定 int[] arr={1

2020-11-20 21:58:45 110

原创 static关键字

static关键字概述可以修饰成员变量,也可以修饰成员方法。被修饰的成员是属于类的,不单单属于某个对象,也就是说,既然属于类,就不需要通过创建对象来调用类中的成员信息定义和使用格式1.类变量当成员变量被static修饰,该变量就称为类变量,该类的每个对象都共享同一个类变量的值。任何对象都可以更改该变量的值。类变量也可以不通过创建类对象的方式进行操作,通过类也可以进行操作。2.定义格式static 数据类型 变量名;如:static int roomID;静态方法:当成员方法一旦被st

2020-11-19 21:52:06 227

原创 String类

String类创建String字符串的常见方式三种构造方法:1.public String () 创建一个空白字符串,不包含任何内容 String str=new String();//说明字符串没有任何内容 System.out.println("第一个字符串:"+str);2.public String(char[ ]array ) 根据字符数组的内容来创建对应的字符串 char[] charArray={'A','B','C'}; String str2

2020-11-19 21:23:54 77

原创 API的使用和一些常用类的使用方法

API的使用和一些常用类API概述Scanner类Random类ArrayList类String类API概述API(Application Programming Interface)应用程序编程接口。对于程序员来说就是一本可检索查找的字典,是JDK官方提供给程序开发者使用类的说明文档,这些类将底层的代码封装起来,我们不需要关注这些类底层是如何实现的,只需要知道这些是如何使用的。平常开发使用JDK类库的时候,通过查阅API的方式进行的API的使用步骤1.打开帮助文档2.点击显示,找到索

2020-11-18 23:07:12 283

原创 面向对象特征之一——封装

今日内容面向对象类与对象三大特征------封装构造方法学习目标能够理解面向对象的编程思想​ 能够明确类与对象的关系:类是对象的抽象,对象是类的实例​ 能够掌握类的定义格式​ 能够掌握创建对象的格式,并访问类中的成员 this.成员变量​ 能够根据类与对象的关系定义相关的事物​ 能够理解对象的内存图解​ 能够说出成员变量与局部变量的异同点​ 能够理解

2020-11-17 23:45:56 141

原创 Java重写与重载

重写(Override)重写是子类对父类的允许访问的方法的实现过程重新编写,返回值和形参都不能改变。重写的好处在于子类可以根据需要,自定义特定于自己的行为,也就是说子类可以根据实现父类的方法。重写的方法不能抛出新的检查异常或者比被重写方法申明更加广泛的异常。例如:父类的一个方法申明了一个检查异常IOException,但是在重写这个方法的时候不能抛出E相册旁听异常,因为Exception是IOException的父类,只能抛出IOException的子类异常。方法重写的规则参数列表与被重写方法的

2020-11-16 23:18:40 156

原创 方法

方法概念:在程序中要去实现某一个功能,需要包含很多语句,这些语句包括循环语句结构,选择语句结构等共同来处理一些事情定义方法的格式详解public static void main(String[]args){ //方法体内容}方法比喻成工厂 蒙牛工厂 产出物:奶制品 void 空的,无效的 String[] args 参数-----变量方法定义的完整格式:修饰符 返回值类型 方法名称(参数类型1,参数名称1,参数

2020-11-16 09:05:38 47

原创 数组的反转、二维数组

数组的反转定义:数组中的元素颠倒顺序,例如原始数组{1,2,3,4,5},反转之后是{5,4,3,2,1}思路:本质是考察交换两个变量的值实现反转就需要将数组最近端和最远端进行互换定义两个变量,保存数组最小索引和数组最大索引,让两个索引上的元素进行交换位置最小索引++,最大索引–,再次交换位置当最小索引>最大索引,反转结束public static void main(String []args){//准备一个需要反转的数组 int[] arr={1,2,3,4,

2020-11-13 23:13:01 1684 1

原创 数组

数组学习目标1.理解容器的概念2.掌握数组的三种定义方式3.会使用数组的索引来访问数组的元素4.了解数组的内存图解5.了解空指针异常6.掌握遍历数组7.掌握数组最值获取一:数组的定义和访问容器: 就是将多个数据存储到一起,每个数据成为该容器的元素。生活中的容器有水杯、excel、教室等。数组概念: 数组就是存储数据长度固定的容器,保证每个数据的数据类型一致。数组的定义格式第一种:数组存储的数据类型[ ] 数组名称=new 数组存储的数据类型[ 长度(正整数)];解析:

2020-11-12 22:38:00 187

原创 流程控制、循环结构

流程控制顺序结构程序是从上往下进行加载,按照代码的编写顺序进行执行选择结构(分支结构)if else语句1.if 单支情况if语句的格式:if(布尔类型表达式/布尔类型值){//语句体…}if语句(单支)的执行流程:1.首先判断布尔类型表达式看结果是true还是false2.如果是true就执行{}里的方法体内容3.如果是false就不会执行{},程序往后加载2.if else多支情况格式:if(布尔类型表达式){// 语句体内容1;}else{//语句体内容2;}

2020-11-11 23:18:13 143

空空如也

空空如也

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

TA关注的人

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